def foo (n : Nat) : Nat := if n = 0 then 0 else let x := n - 1 have := match () with | _ => trivial foo x termination_by n decreasing_by sorry theorem ex : foo 0 = 0 := by unfold foo sorry /-- info: foo.eq_def (n : Nat) : foo n = if n = 0 then 0 else have x := n - 1; have this := foo._proof_2; foo x -/ #guard_msgs in #check foo.eq_def /-- info: foo.eq_unfold : foo = fun n => if n = 0 then 0 else have x := n - 1; have this := foo._proof_2; foo x -/ #guard_msgs in #check foo.eq_unfold