lean2/tests/lean/run/inversion1.lean

24 lines
553 B
Text
Raw Normal View History

open nat
inductive fin : nat → Type :=
| fz : Π n, fin (succ n)
| fs : Π {n}, fin n → fin (succ n)
namespace fin
definition z_cases_on2 (C : fin zero → Type) (p : fin zero) : C p :=
by cases p
definition nz_cases_on2 {C : Π n, fin (succ n) → Type}
(H₁ : Π n, C n (fz n))
(H₂ : Π n (f : fin n), C n (fs f))
{n : nat}
(f : fin (succ n)) : C n f :=
begin
cases f,
apply (H₁ n),
apply (H₂ n a)
end
end fin