blob: 19a031c604840d4f1de78ca13b147da19f537d48 [file] [edit]
theorem some_induction
{motive : Nat → Prop}
(zero : motive 0)
(succ : forall n, 0 < n → let m := n - 1; motive m → motive n) :
∀ n, motive n
| 0 => zero
| n+1 => succ (n+1) (Nat.zero_lt_succ n) (some_induction zero succ n)
example (n : Nat) : n = n := by
induction n using some_induction
case zero => rfl
case succ n _h _m _IH =>
rfl
example (n : Nat) : n = n := by
induction n using some_induction with
| zero => rfl
| succ n _h _m _IH =>
rfl