merge addition of Lemma statements

This commit is contained in:
Jon Eugster
2022-12-12 20:54:31 +01:00
parent b2727eef89
commit 46848d8a93
43 changed files with 113 additions and 64 deletions
@@ -21,7 +21,7 @@ ersten offenen Goal zu machen.
Wenn der Beweis komplett ist, erscheint \"goals accomplished\".
"
Statement "Zeige `42 = 42`." : 42 = 42 := by
Statement "Zeige $ 42 = 42 $." : 42 = 42 := by
rfl
Message : 42 = 42 =>
@@ -16,10 +16,8 @@ ob die Aussage `A` wahr oder falsch ist. Mit einer Annahme `(hA : A)` nimmt man
-- 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.
"
"Sei $ A $ eine logische Aussage und sei `hA` ein Beweis für $A$.
Zeige, dass $ A $ wahr ist."
(A : Prop) (hA : A) : A := by
assumption
@@ -22,10 +22,8 @@ Auf Papier würde man schreiben, \"es genügt zu zeigen, dass `A` stimmt, denn `
"
Statement
"
Seien `A`, `B` logische Aussagen, wobei `A` wahr ist und `A` impliziert `B`.
Zeige, dass `B` wahr ist.
"
"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
@@ -18,10 +18,8 @@ Beweise Aussage `F`.
"
Statement
"
Seien `A`, `B` logische Aussagen, wobei `A` wahr ist und `A` impliziert `B`.
Zeige, dass `B` wahr ist.
"
"Seien `A`, `B` logische Aussagen, wobei `A` wahr ist und `A` impliziert `B`.
Zeige, dass `B` wahr ist."
(A B C D E F : Prop) (hA : A) (f : A → B) (g : C → B) (h : B → E)
(i : D → E) (k : E → F) (m : C → F) : F := by
apply k
@@ -16,6 +16,7 @@ und das Goal wird zu `B`.
"
Statement
""
(A B C : Prop) (f : A → B) (g : B → C) : A → C := by
intro hA
apply g
@@ -21,9 +21,7 @@ Gleichungen von natürlichen Zahlen.
"
Statement
"
Zeige dass `B ↔ C`.
"
"Zeige dass `B ↔ C`."
(A B C D : Prop) (h₁ : C ↔ D) (h₂ : A ↔ B) (h₃ : A ↔ D) : B ↔ C := by
rw [h₁]
rw [←h₂]
@@ -17,9 +17,7 @@ Wenn das Goal `A ↔ B` ist, kann man mit der `constructor` Taktik, dieses in di
"
Statement
"
Zeige dass `B ↔ C`.
"
"Zeige dass `B ↔ C`."
(A B : Prop) (mp : A → B) (mpr : B → A) : A ↔ B := by
constructor
assumption
@@ -20,6 +20,7 @@ man explizit an, wie die neuen Annahmen heissen sollen, die Klammern sind `\\<`
"
Statement
""
(A B : Prop) : (A ↔ B) → (A → B) := by
intro h
rcases h
@@ -17,9 +17,7 @@ Implikation `A → B` auf ein Goal `B` anwenden.
"
Statement
"
Benütze nur `apply` und `assumption` um das gleiche Resultat zu zeigen.
"
"Benütze nur `apply` und `assumption` um das gleiche Resultat zu zeigen."
(A B C : Prop) (h : A ↔ B) (g : B → C) : A → C := by
intro hA
apply g
@@ -20,6 +20,7 @@ Man can also genau gleich `constructor` und `rcases` anwenden, ebenso kann man
"
Statement
""
(A B : Prop) : (A ∧ (A → B)) ↔ (A ∧ B) := by
constructor
intro h
@@ -18,7 +18,7 @@ Wenn das Goal ein `∨` ist kann man mit `left` oder `right` entscheiden,
welche Seite man beweisen möchte.
"
Statement (A B : Prop) (hA : A) : A ∨ (¬ B) := by
Statement "" (A B : Prop) (hA : A) : A ∨ (¬ B) := by
left
assumption
@@ -25,6 +25,7 @@ Diese Annahme benennt man dann mit `rcases h with hA | hB`.
"
Statement
""
(A B C D : Prop) (h : (A ∧ B) ∨ (D ∨ C)) : (A ∧ B) ∨ (C ∨ D) := by
rcases h with ⟨ha, hb⟩ | (h | h)
left
@@ -16,7 +16,7 @@ Introduction
"
Statement and_or_imp
"Benutze alle vier Methoden mit UND und ODER umzugehen um folgende Aussage zu beweisen."
"Benutze alle vier Methoden mit UND und ODER umzugehen um folgende Aussage zu beweisen."
(A B C : Prop) (h : (A ∧ B) ∨ (A → C)) (hA : A) : (B ∨ (C ∧ A)) := by
rcases h with h₁ | h₂
left