You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
import TestGame.Metadata
|
|
|
|
|
import Std.Tactic.RCases
|
|
|
|
|
import Mathlib.Tactic.Cases
|
|
|
|
|
import Mathlib.Logic.Basic
|
|
|
|
|
|
|
|
|
|
Game "TestGame"
|
|
|
|
|
World "Implication"
|
|
|
|
|
Level 11
|
|
|
|
|
|
|
|
|
|
Title "Lemmas"
|
|
|
|
|
|
|
|
|
|
Introduction
|
|
|
|
|
"
|
|
|
|
|
Wenn die Aussage eines Lemmas eine Äquivalenz ist, kann man dieses auch mit `rw` brauchen,
|
|
|
|
|
wie du es von Äquivalenzen kennst.
|
|
|
|
|
|
|
|
|
|
Ein wichtiges Lemma ist dass $\\neg(\\neg A))$ und $A$ äquivalent sind:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
lemma not_not (A : Prop) : ¬¬A ↔ A := by
|
|
|
|
|
...
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Mit `rw [not_not]` sucht Lean also im Goal ein Term `¬¬(·)` und entfernt dort das `¬¬`.
|
|
|
|
|
"
|
|
|
|
|
|
|
|
|
|
Statement
|
|
|
|
|
"Zeige, dass $A ∨ (¬¬B) ∧ C$ und $A ∨ B ∧ C$ äquivalent sind."
|
|
|
|
|
(A B C : Prop) : A ∨ (¬¬B) ∧ C ↔ A ∨ B ∧ C := by
|
|
|
|
|
rw [not_not]
|
|
|
|
|
|
|
|
|
|
Conclusion
|
|
|
|
|
"
|
|
|
|
|
`rw` hat automatisch `rfl` ausgeführt und dadurch den Beweis beendet.
|
|
|
|
|
"
|
|
|
|
|
|
|
|
|
|
NewTactic rw
|
|
|
|
|
|
|
|
|
|
NewLemma not_not not_or_of_imp
|