compiling and tutorial world approx finished

This commit is contained in:
Kevin Buzzard
2023-08-05 06:16:37 +01:00
parent aff078d995
commit d8f5785d78
12 changed files with 174 additions and 185 deletions

View File

@@ -5,16 +5,19 @@ namespace MyNat
open MyNat
def add : MyNat MyNat MyNat
| a, 0 => a
| a, zero => a
| a, MyNat.succ b => MyNat.succ (MyNat.add a b)
instance : Add MyNat where
instance instAdd : Add MyNat where
add := MyNat.add
/--
This theorem proves that if you add zero to a MyNat you get back the same number.
`add_zero a` is a proof of `a + 0 = a`.
`add_zero` is a `simp` lemma, because if you see `a + 0`
you usually want to simplify it to `a`.
-/
theorem add_zero (a : MyNat) : a + 0 = a := by rfl
@[simp] theorem add_zero (a : MyNat) : a + 0 = a := by rfl
/--
This theorem proves that (a + (d + 1)) = ((a + d) + 1) for a,d in MyNat.

View File

@@ -7,6 +7,6 @@ example (a b : ) (h : (succ a) = b) : succ (succ a) = succ b := by
simp
sorry
axiom succ_inj {a b : } : succ a = succ b a = b
--axiom succ_inj {a b : } : succ a = succ b → a = b
axiom zero_ne_succ (a : ) : 0 succ a
--axiom zero_ne_succ (a : ) : 0 ≠ succ a

View File

@@ -1,4 +1,4 @@
import Game.Levels.Tutorial.L02rw-- makes simps work?
import Game.MyNat.Addition-- makes simps work?
import Mathlib.Tactic
namespace MyNat
@@ -51,7 +51,7 @@ We need to learn how to deal wiht a goal of the form `P → Q`
-/
theorem succ_inj (a b : ) (h : succ a = succ b) : a = b := by
theorem succ_inj {a b : } (h : succ a = succ b) : a = b := by
apply_fun pred at h
simpa
@@ -90,7 +90,7 @@ congrArg pred
-/
@[simp] theorem succ_eq_succ_iff : succ a = succ b a = b := by
constructor
· exact succ_inj a b
· exact succ_inj
· simp
/-