changes to levels
parent
01e2b3b4a1
commit
9d1a591670
@ -1,33 +0,0 @@
|
|||||||
import TestGame.Metadata
|
|
||||||
import Mathlib
|
|
||||||
|
|
||||||
Game "TestGame"
|
|
||||||
World "Implication"
|
|
||||||
Level 20
|
|
||||||
|
|
||||||
Title "Nicht-nicht"
|
|
||||||
|
|
||||||
Introduction
|
|
||||||
"
|
|
||||||
Wenn man ein Nicht (`¬`) im Goal hat, will man meistens einen Widerspruch starten,
|
|
||||||
wie im nächsten Level dann gezeigt wird. Manchmal aber hat man Terme der Form
|
|
||||||
`¬ (¬ A)`, in welchem Fall das Lemma `not_not` nützlich ist, welches du mit
|
|
||||||
`rw` oder `apply` benützen kannst.
|
|
||||||
"
|
|
||||||
|
|
||||||
Statement
|
|
||||||
"Zeige, dass $\\neg(\\neg A)$ äquivalent zu $A$ ist."
|
|
||||||
(A : Prop) : ¬ (¬ A) ↔ A := by
|
|
||||||
rw [not_not]
|
|
||||||
|
|
||||||
Message (A : Prop) : ¬ (¬ A) ↔ A => "Da `not_not` ein Lemma der Form `X ↔ Y` ist,
|
|
||||||
kannst du wahlweise `rw [not_not]` oder `apply not_not` benützen.
|
|
||||||
|
|
||||||
- `rw` ersetzt `¬ (¬ A)` mit `A` und schliesst dann `A ↔ A` mit `rfl`.
|
|
||||||
- `apply` hingegen funktioniert hier nur, weil das gesamte Goal
|
|
||||||
genau mit der Aussage des Lemmas übereinstimmt.
|
|
||||||
"
|
|
||||||
|
|
||||||
Tactics rw apply
|
|
||||||
|
|
||||||
Lemmas not_not
|
|
@ -1 +1,9 @@
|
|||||||
import TestGame.Levels.Predicate.L01_Ring
|
import TestGame.Levels.Predicate.L01_Ring
|
||||||
|
import TestGame.Levels.Predicate.L02_Rewrite
|
||||||
|
import TestGame.Levels.Predicate.L03_Rewrite
|
||||||
|
import TestGame.Levels.Predicate.L04_Ring
|
||||||
|
import TestGame.Levels.Predicate.L05_Rfl
|
||||||
|
import TestGame.Levels.Predicate.L06_Exists
|
||||||
|
import TestGame.Levels.Predicate.L07_Forall
|
||||||
|
import TestGame.Levels.Predicate.L08_PushNeg
|
||||||
|
import TestGame.Levels.Predicate.L09_Summary
|
||||||
|
@ -0,0 +1 @@
|
|||||||
|
import TestGame.Levels.Prime.L01_Prime
|
Loading…
Reference in New Issue