+set "baseuri" "cic:/matita/tests/inversion/".
+
inductive nat : Set \def
O : nat
| S : nat \to nat.
leO : le n n
| leS : \forall m. le n m \to le n (S m).
-alias symbol "eq" (instance 0) = "leibnitz's equality".
+alias symbol "eq" (instance 0) = "Coq's leibnitz's equality".
theorem test_inversion: \forall n. le n O \to n=O.
intros.
(* goal 2: 0 = 0 *)
goal 7. reflexivity.
(* goal 1 *)
- generalize Hcut.
+ generalize in match Hcut.
apply (le_ind ? (\lambda x. O=x \to n=x) ? ? ? H).
(* first goal (left open) *)
- intro. rewrite right H1.
+ intro. rewrite < H1.
clear Hcut.
(* second goal (closed) *)
goal 14.
theorem test_inversion2: \forall n. le n O \to n=O.
intros.
(* inversion begins *)
- generalize (refl_equal nat O).
+ generalize in match (refl_equal nat O).
apply (le_ind ? (\lambda x. O=x \to n=x) ? ? ? H).
(* first goal (left open) *)
- intro. rewrite right H1.
+ intro. rewrite < H1.
(* second goal (closed) *)
goal 13.
simplify. intros.