26 lines
529 B
Text
26 lines
529 B
Text
/- split tactic -/
|
|
|
|
def f (x y z : Nat) : Nat :=
|
|
match x, y, z with
|
|
| 5, _, _ => y
|
|
| _, 5, _ => y
|
|
| _, _, 5 => y
|
|
| _, _, _ => 1
|
|
|
|
example : x ≠ 5 → y ≠ 5 → z ≠ 5 → z = w → f x y w = 1 := by
|
|
intros
|
|
simp [f]
|
|
split
|
|
. contradiction
|
|
. contradiction
|
|
. contradiction
|
|
. rfl
|
|
|
|
def g (xs ys : List Nat) : Nat :=
|
|
match xs, ys with
|
|
| [a, b], _ => a+b+1
|
|
| _, [b, c] => b+1
|
|
| _, _ => 1
|
|
|
|
example (xs ys : List Nat) (h : g xs ys = 0) : False := by
|
|
unfold g at h; split at h <;> simp_arith at h
|