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.
lean4game/server/testgame/TestGame/Levels/Prime/L01_Dvd.lean

53 lines
1.6 KiB
Plaintext

2 years ago
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$.
"