|
|
|
import TestGame.Metadata
|
|
|
|
import TestGame.Levels.Logic.L02_Rfl
|
|
|
|
import TestGame.Levels.Logic.L04_Rewrite
|
|
|
|
import TestGame.Levels.Logic.L04b_Rewrite
|
|
|
|
import TestGame.Levels.Logic.L05_Apply
|
|
|
|
import TestGame.Levels.Logic.L05b_Apply
|
|
|
|
import TestGame.Levels.Logic.L05c_Apply
|
|
|
|
import TestGame.Levels.Logic.L06_Iff
|
|
|
|
import TestGame.Levels.Logic.L06b_Iff
|
|
|
|
import TestGame.Levels.Logic.L06c_Iff
|
|
|
|
import TestGame.Levels.Logic.L06d_Iff
|
|
|
|
import TestGame.Levels.Naturals.L01_Ring
|
|
|
|
import TestGame.Levels.Naturals.L02_Ring
|
|
|
|
import TestGame.Levels.Naturals.L03_Exists
|
|
|
|
import TestGame.Levels.Naturals.L04_Forall
|
|
|
|
import TestGame.Levels.Naturals.L31_Sum
|
|
|
|
import TestGame.Levels.Naturals.L32_Induction
|
|
|
|
import TestGame.Levels.Naturals.L33_Prime
|
|
|
|
import TestGame.Levels.Naturals.L34_ExistsUnique
|
|
|
|
import TestGame.Levels.Negation.L03_Contra
|
|
|
|
import TestGame.Levels.Negation.L04_Contra
|
|
|
|
import TestGame.Levels.Negation.L05_Not
|
|
|
|
import TestGame.Levels.Negation.L06_ByContra
|
|
|
|
import TestGame.Levels.Negation.L07_Contrapose
|
|
|
|
import TestGame.Levels.Negation.L08_Contrapose
|
|
|
|
import TestGame.Levels.Negation.L09_PushNeg
|
|
|
|
|
|
|
|
import TestGame.Levels.Proposition
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Game "TestGame"
|
|
|
|
|
|
|
|
Title "Lean 4 game"
|
|
|
|
|
|
|
|
Introduction
|
|
|
|
"Work in progress. Hier sind die Kommentare, aufgeteilt in drei Kategorien
|
|
|
|
|
|
|
|
### Levels / Spielinhalt
|
|
|
|
Levels, die spielbar sind:
|
|
|
|
|
|
|
|
- Logic
|
|
|
|
- Contradiction
|
|
|
|
|
|
|
|
Die anderen Levels gehen noch grössere Veränderungen durch.
|
|
|
|
Kommentare zu den spielbaren Levels:
|
|
|
|
|
|
|
|
- Taktik-Beschreibungen sind nicht gemacht, aber es sollten die richtigen
|
|
|
|
Taktiken & Lemmas angezeigt werden
|
|
|
|
- Noch mehr kurze Aufgaben?
|
|
|
|
- Mehr zur Implikation `→`?
|
|
|
|
- Ringschluss (noch nicht in Lean4)
|
|
|
|
- `tauto` (noch nicht in Lean4). Am Anfang?
|
|
|
|
- `trivial`: wann einführen? Ist ja ein Mix von verschiedenen Taktiken.
|
|
|
|
- Wann führen wir `have h : f ha` ein? (ist jetzt mal in `by_contra` reingequetscht, sollte
|
|
|
|
aber eigenständig sein)
|
|
|
|
- Nicht erklärt, wann `rw` nur eines umschreibt und wann mehrere Male. Sollten wir das tun?
|
|
|
|
|
|
|
|
### Spieler-Führung
|
|
|
|
|
|
|
|
- Keine Möglichkeit zurück zu gehen
|
|
|
|
- Fehlermeldungen sind nicht besonders Benutzerfreundlich: Ganz unverständliche sammeln,
|
|
|
|
damit wir diese später modifizieren können.
|
|
|
|
- Kann man Taktiken blockieren?
|
|
|
|
- Ich (J) bin kein Fan von der Autoergänzung, da diese im Moment viel unrelevantes anbietet.
|
|
|
|
- BUG: Kann `suffices` & `have` nicht als Taktik anzeigen.
|
|
|
|
- BUG: `¬ odd n` wird als Objekt gelistet, nicht als Assumption.
|
|
|
|
- FEAT: Brauche ein `Message'` das nur aktiv ist, wenn keine zusätzlichen Annahmen vorhanden
|
|
|
|
sind.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Benutzerinterface
|
|
|
|
Das graphische wurde noch nicht wirklich angegangen, hier sind vorallem gröbere
|
|
|
|
Ideen wie Seitenaufteilung hilfreich. Details werden dann aber später angegangen.
|
|
|
|
|
|
|
|
- Spielstand wir noch nicht gespeichert.
|
|
|
|
- Die Lean-Version der Aufgaben sieht rudimentär aus: Syntax highlighting?
|
|
|
|
|
|
|
|
"
|
|
|
|
|
|
|
|
Conclusion
|
|
|
|
"There is nothing else so far. Thanks for rescuing natural numbers!"
|
|
|
|
|
|
|
|
|
|
|
|
Path Proposition → Implication → Predicate → Proving
|
|
|
|
Path Predicate → Nat2
|