lean4-htt/tests/lean/run/def10.lean
2022-03-28 17:17:01 -07:00

30 lines
725 B
Text

def f : Bool → Bool → Nat
| true, true => 0
| _, _ => 3
example : f true true = 0 :=
rfl
def g : Bool → Bool → Bool → Nat
| true, _, true => 1
| _, false, false => 2
| a, _, b => f a b
theorem ex1 : g true true true = 1 := rfl
theorem ex2 : g true false true = 1 := rfl
theorem ex3 : g true false false = 2 := rfl
theorem ex4 : g false false false = 2 := rfl
theorem ex5 : g false true true = 3 := rfl
theorem f_eq (h : a = true → b = true → False) : f a b = 3 := by
simp (config := { iota := false }) [f]
split
· contradiction
· rfl
theorem ex6 : g x y z > 0 := by
simp [g]
split
next => decide
next => decide
next a b c h₁ h₂ => simp [f_eq h₁]