wip
parent
5cb0ff4ccf
commit
e43a2e2e9f
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"editor.insertSpaces": true,
|
||||||
|
"editor.tabSize": 2,
|
||||||
|
"editor.rulers" : [100],
|
||||||
|
"files.encoding": "utf8",
|
||||||
|
"files.eol": "\n",
|
||||||
|
"files.insertFinalNewline": true,
|
||||||
|
"files.trimFinalNewlines": true,
|
||||||
|
"files.trimTrailingWhitespace": true
|
||||||
|
}
|
||||||
@ -0,0 +1,35 @@
|
|||||||
|
import TestGame.Metadata
|
||||||
|
|
||||||
|
Game "Introduction"
|
||||||
|
World "Tactic"
|
||||||
|
Level 1
|
||||||
|
|
||||||
|
Title "Aller Anfang ist... ein Einzeiler?"
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
Willkommen zum Lean-Crashkurs wo du lernst wie man mathematische Beweise vom Computer
|
||||||
|
unterstützt und verifiziert schreiben kann.
|
||||||
|
|
||||||
|
Ein Beweis besteht in Lean aus verschiedenen **Taktiken**, welche ungefähr einem
|
||||||
|
logischen Schritt entsprechen, den man auf Papier aufschreiben würde.
|
||||||
|
|
||||||
|
Rechts im **Infoview** siehst den Status des aktuellen Beweis.
|
||||||
|
Du siehst ein oder mehrere offene **Goals** (mit einem `⊢` davor), die du noch zeigen musst.
|
||||||
|
Wenn du eine Taktik hinschreibst, dann versucht Lean diesen Schritt beim
|
||||||
|
ersten offenen Goal zu machen.
|
||||||
|
Wenn der Beweis komplett ist, erscheint \"goals accomplished\".
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement : 42 = 42 := by
|
||||||
|
rfl
|
||||||
|
|
||||||
|
Message : 42 = 42 =>
|
||||||
|
"Die erste Taktik ist `rfl`, die ein Goal von der Form `A = A` beweist."
|
||||||
|
|
||||||
|
Hint : 42 = 42 =>
|
||||||
|
"Man schreibt eine Taktik pro Zeile, also gib 'rfl' ein gefolgt von ENTER."
|
||||||
|
|
||||||
|
Conclusion "Bravo!"
|
||||||
|
|
||||||
|
Tactics rfl
|
||||||
@ -0,0 +1,28 @@
|
|||||||
|
import TestGame.Metadata
|
||||||
|
|
||||||
|
Game "Introduction"
|
||||||
|
World "Tactic"
|
||||||
|
Level 2
|
||||||
|
|
||||||
|
Title "Definitionally equal"
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
Achtung: `refl` kann auch Gleichungen beweisen, wenn die beiden Terme Lean-intern gleich
|
||||||
|
definiert sind, auch wenn diese unterschiedlich dargestellt werden.
|
||||||
|
So sind `1 + 1` und `2` per Definition das Gleiche, da sie beide von Lean als `0.succ.succ`
|
||||||
|
gelesen werden.
|
||||||
|
|
||||||
|
Das kann anfänglich verwirrend sein und das Verhalten hängt von der Lean-Implementation ab.
|
||||||
|
"
|
||||||
|
|
||||||
|
Statement : 1 + 1 = 2 := by
|
||||||
|
rfl
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"
|
||||||
|
Im weiteren führen die meisten anderen Taktiken `refl` automatisch am Ende aus,
|
||||||
|
deshalb musst du dieses häufig gar nicht mehr schreiben.
|
||||||
|
"
|
||||||
|
|
||||||
|
Tactics rfl
|
||||||
Loading…
Reference in New Issue