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/Logic/L04_Rewrite.lean

51 lines
1.5 KiB
Plaintext

2 years ago
import TestGame.Metadata
2 years ago
import Mathlib
2 years ago
2 years ago
Game "TestGame"
World "Logic"
2 years ago
Level 5
2 years ago
Title "Rewrite"
Introduction
"
2 years ago
Oft sind aber die Annahmen nicht genau das, was man zeigen will, sondern man braucht
mehrere Schritte im Beweis.
2 years ago
2 years ago
Wenn man eine Annahme `(h : X = Y)` hat,
kann die Taktik `rw [h]` im Goal $X$ durch $Y$ ersetzen.
2 years ago
(`rw` steht für *rewrite*)
2 years ago
"
Statement umschreiben
2 years ago
"Angenommen man hat die Gleichheiten
$$ \\begin{aligned}
a &= b \\\\\\\\
a &= d \\\\\\\\
c &= d
\\end{aligned} $$
2 years ago
Zeige dass $b = c$."
(a b c d : ) (h₁ : c = d) (h₂ : a = b) (h₃ : a = d) : b = c := by
rw [h₁]
rw [←h₂]
2 years ago
assumption
Message (a : ) (b : ) (c : ) (d : ) (h₁ : c = d) (h₂ : a = b) (h₃ : a = d) : b = c =>
2 years ago
"Die kleinen Zahlen `h₁ h₂ h₃` werden in Lean oft verwendet und man tippt diese mit
`\\1`, `\\2`, `\\3`, …"
Hint (a : ) (b : ) (c : ) (d : ) (h₁ : c = d) (h₂ : a = b) (h₃ : a = d) : b = c =>
2 years ago
"Im Goal kommt `c` vor und `h₁` sagt `c = d`.
Probiers doch mit `rw [h₁]`."
Message (a : ) (b : ) (c : ) (d : ) (h₁ : c = d) (h₂ : a = b) (h₃ : a = d) : b = d =>
2 years ago
" Man kann auch rückwärts umschreiben: `h₂` sagt `a = b` mit
`rw [←h₂]` ersetzt man im Goal `b` durch `a` (`\\l`, also ein kleines L)"
Hint (a : ) (b : ) (h : a = b) : a = b =>
"Schau mal durch die Annahmen durch."
Conclusion "Übrigens, mit `rw [h₁, ←h₂]` könnte man mehrere `rw` zusammenfassen."
2 years ago
2 years ago
Tactics assumption rw