This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
import NNG.Metadata
import NNG.MyNat.Multiplication
Game "NNG"
World "Tutorial"
Level 1
Title "The rfl tactic"
Introduction
"
Each level in this game involves proving a mathematical statement. In this first level
you have three natural numbers $x, y, z$ (listed under \"Objects\") and you want to prove
$x \\cdot y + z = x \\cdot y + z$ (displayed under \"Goal\").
You can modify the Goal using *Tactics* until you can close (i.e. prove) it.
The first tactic is called `rfl`, which stands for \"reflexivity\",
a fancy way of saying that it will prove any goal of the form `A = A`. It doesn't matter how
complicated `A` is, all that matters is that the left hand side is exactly equal to the right hand
side (a computer scientist would say \"definitionally equal\"). I really mean \"press the same buttons
on your computer in the same order\" equal. For example, `x * y + z = x * y + z` can be proved by `rfl`,
but `x + y = y + x` cannot.
"
Statement
"For all natural numbers $x, y$ and $z$, we have $xy + z = xy + z$."
(x y z : ℕ) : x * y + z = x * y + z := by
Hint "In order to use the tactic `rfl` you can enter it above and hit \"Execute\"."
rfl
NewTactic rfl
NewDefinition MyNat
Conclusion
"
Congratulations! You completed your first verified proof!
If you want to be reminded about the `rfl` tactic, your inventory on the right contains useful