This commit is contained in:
Jon Eugster
2023-02-27 12:20:01 +01:00
parent 695903f5d8
commit 8a9b1a25e8
7 changed files with 232 additions and 0 deletions
@@ -0,0 +1,52 @@
import TestGame.Metadata
import Mathlib.Tactic.Ring
Game "TestGame"
World "Prime"
Level 1
Title "Teilbarkeit"
Introduction
"
Die Aussage \"$m$ teilt $n$.\" wird in Lean als `m | n` (`\\|`) geschrieben.
**Wichtig:** `∣` (Teilbarkeit) ist ein spezielles Unicode Symbol, das nicht dem
senkrechten Strich auf der Tastatur (`|`) entspricht. Man erhält es mit `\\|`.
`m ∣ n` bedeutet `∃ c, n = m * c`, das heisst, man kann damit genau gleich umgehen
wie mit einem `∃`-Quantifier.
"
Statement dvd_add
"Wenn $m$ ein Teiler von $n$ und $k$ ist, dann teilt es die Summe."
(n m k : ℕ) (h : m ∣ n) (g : m ∣ k) : m ∣ n + k := by
rcases h with ⟨x, h⟩
rcases g with ⟨y, g⟩
use x + y
rw [h, g]
ring
HiddenHint (n : ℕ) (m : ℕ) (k : ℕ) (h : m ∣ n) (g : m ∣ k) : m ∣ n + k =>
"
Wenn man explizit mit der Definition von Teilbarkeit arbeiten will,
sollte man als erstes alle Annahmen der Form `x ∣ y` mit `rcases` aufteilen.
"
HiddenHint (n : ℕ) (m : ℕ) (k : ℕ) (x : ℕ) (h : n = m * x) (g : m ∣ k) : m ∣ n + k =>
"
Wenn man explizit mit der Definition von Teilbarkeit arbeiten will,
sollte man als erstes alle Annahmen der Form `x ∣ y` mit `rcases` aufteilen.
"
HiddenHint (n : ℕ) (m : ℕ) (k : ℕ) (y : ℕ) (h : m ∣ n) (g : k = m * y) : m ∣ n + k =>
"
Wenn man explizit mit der Definition von Teilbarkeit arbeiten will,
sollte man als erstes alle Annahmen der Form `x ∣ y` mit `rcases` aufteilen.
"
HiddenHint (n : ℕ) (m : ℕ) (k : ℕ) (x : ℕ) (y : ℕ) (h : n = m * x) (g : k = m * y) : m ∣ n + k =>
"
Jetzt kannst du mit `use` eine Zahl angeben, so dass $m * X = n + k$.
"