bump mathlib and use Even/Odd.
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
import TestGame.Metadata
|
||||
import Mathlib.Data.Nat.Prime
|
||||
|
||||
import Std.Tactic.RCases
|
||||
import Mathlib.Tactic.LeftRight
|
||||
import Mathlib.Tactic.Contrapose
|
||||
@@ -8,44 +10,30 @@ import Mathlib.Tactic.Ring
|
||||
import TestGame.ToBePorted
|
||||
|
||||
Game "TestGame"
|
||||
World "Proving"
|
||||
World "Prime"
|
||||
Level 1
|
||||
|
||||
Title "Ad absurdum"
|
||||
Title "Primzahlen"
|
||||
|
||||
Introduction
|
||||
"
|
||||
In diesem Kapitel lernen wir die wichtigsten Beweistechniken kennen.
|
||||
|
||||
Zuerst repetieren wir, dass man vorhandene Lemmas mit `rw` und `apply` benützen kann.
|
||||
|
||||
|
||||
Aber, die Aussagen müssen wirklich exakte Gegenteile sein.
|
||||
|
||||
Hier musst du zuerst eines der folgenden Lemmas benützen, um einer der Terme umzuschreiben.
|
||||
|
||||
```
|
||||
lemma not_odd (n : ℕ): ¬ odd n ↔ even n := by
|
||||
...
|
||||
|
||||
lemma not_even (n : ℕ): ¬ even n ↔ odd n := by
|
||||
...
|
||||
```
|
||||
"
|
||||
|
||||
Statement
|
||||
"Sei $n$ eine natürliche Zahl die sowohl gerade wie auch ungerade ist.
|
||||
Zeige, dass daraus $n = 42$ folgt. (oder, tatsächlich $n = x$ für jedes beliebige $x$)."
|
||||
(n : ℕ) (h_even : even n) (h_odd : odd n) : n = 42 := by
|
||||
rw [← not_even] at h_odd
|
||||
contradiction
|
||||
|
||||
Message (n : ℕ) (h_even : even n) (h_odd : odd n) : n = 42 =>
|
||||
"Schreibe zuerst eine der Aussagen mit `rw [←not_even] at h_odd` um, damit diese genaue
|
||||
Gegenteile werden."
|
||||
"TODO"
|
||||
(n : ℕ) : ∃! (n : ℕ), Nat.Prime n ∧ Even n := by
|
||||
use (2 : ℕ)
|
||||
constructor
|
||||
simp only [true_and]
|
||||
use 1
|
||||
intro y
|
||||
rintro ⟨h₁, h₂⟩
|
||||
rw [← Nat.Prime.even_iff]
|
||||
assumption
|
||||
assumption
|
||||
|
||||
Conclusion ""
|
||||
|
||||
Tactics contradiction rw
|
||||
Tactics
|
||||
|
||||
Lemmas even odd not_even not_odd
|
||||
Lemmas
|
||||
|
||||
Reference in New Issue
Block a user