first_levels
parent
e43a2e2e9f
commit
5bf0cd9775
@ -1,6 +1,7 @@
|
|||||||
import TestGame.Metadata
|
import TestGame.Metadata
|
||||||
import TestGame.Levels.Level1
|
import TestGame.Levels.Logic.L01_Rfl
|
||||||
import TestGame.Levels.Level2
|
import TestGame.Levels.Logic.L02_Rfl
|
||||||
import TestGame.Levels.Level3
|
import TestGame.Levels.Logic.L03_Assumption
|
||||||
import TestGame.Levels.Level4
|
import TestGame.Levels.Logic.L03b_Assumption
|
||||||
import TestGame.Levels.Level5
|
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