/- 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