first_levels
parent
e43a2e2e9f
commit
5bf0cd9775
@ -1,6 +1,7 @@
|
||||
import TestGame.Metadata
|
||||
import TestGame.Levels.Level1
|
||||
import TestGame.Levels.Level2
|
||||
import TestGame.Levels.Level3
|
||||
import TestGame.Levels.Level4
|
||||
import TestGame.Levels.Level5
|
||||
import TestGame.Levels.Logic.L01_Rfl
|
||||
import TestGame.Levels.Logic.L02_Rfl
|
||||
import TestGame.Levels.Logic.L03_Assumption
|
||||
import TestGame.Levels.Logic.L03b_Assumption
|
||||
import TestGame.Levels.Logic.L04_Rewrite
|
||||
import TestGame.Levels.Logic.L05_Apply
|
||||
|
@ -0,0 +1,28 @@
|
||||
import TestGame.Metadata
|
||||
import Mathlib.Data.Nat.Basic -- TODO
|
||||
|
||||
Game "TestGame"
|
||||
World "TestWorld"
|
||||
Level 4
|
||||
|
||||
Title "Logische Aussagen: `Prop`"
|
||||
|
||||
Introduction
|
||||
"
|
||||
Eine allgemeine logische Aussage definiert man mit `(A : Prop)`. Damit sagt man noch nicht,
|
||||
ob die Aussage `A` wahr oder falsch ist. Mit einer Annahme `(hA : A)` nimmt man an, dass
|
||||
`A` wahr ist: `hA` ist ein Beweis der Aussage `A`.
|
||||
"
|
||||
|
||||
-- TODO: Macht es Sinn mehrere Aufgaben auf einer Seite zu haben?
|
||||
Statement mehr_triviales
|
||||
"
|
||||
Sei `A` eine logische Aussage und angenommen man hat einen Beweis für `A`.
|
||||
Zeige, dass `A` wahr ist.
|
||||
"
|
||||
(A : Prop) (hA : A) : A := by
|
||||
assumption
|
||||
|
||||
Conclusion ""
|
||||
|
||||
Tactics assumption
|
@ -0,0 +1,33 @@
|
||||
import TestGame.Metadata
|
||||
|
||||
Game "TestGame"
|
||||
World "TestWorld"
|
||||
Level 6
|
||||
|
||||
Title "Implikation"
|
||||
|
||||
Introduction
|
||||
"
|
||||
Wie wir schon gesehen haben, wir eine logische Aussage als `(A : Prop)` geschrieben, und
|
||||
die Annahme, dass `A` wahr ist als `(hA : A)`, also `hA` ist sozusagens ein Beweis der
|
||||
Aussage `A`.
|
||||
|
||||
Logische Aussagen können einander implizieren. Wir kennen hauptsächlich zwei Zeichen dafür:
|
||||
`A ↔ B` (`\\iff`) bedeutet \"Genau dann wenn\" und `A → B` (`\\to`) bedeutet \"`A` impliziert `B`\".
|
||||
|
||||
Wenn man Aussage `B` beweisen will und eine Implikationsannahme `(h : A → B)` hat, dann kann man
|
||||
diese mit `apply h` anwenden.
|
||||
Auf Papier würde man schreiben, \"es genügt zu zeigen, dass `A` stimmt, denn `A` impliziert `B`\".
|
||||
"
|
||||
|
||||
Statement
|
||||
"
|
||||
Seien `A`, `B` logische Aussagen, wobei `A` wahr ist und `A` impliziert `B`.
|
||||
Zeige, dass `B` wahr ist.
|
||||
"
|
||||
(A B : Prop) (hA : A) (g : A → B) : B := by
|
||||
apply g
|
||||
assumption
|
||||
|
||||
Tactics apply
|
||||
Tactics assumption
|
Loading…
Reference in New Issue