set "baseuri" "cic:/matita/nat/orders".
-include "nat/plus.ma".
+include "nat/nat.ma".
include "higher_order_defs/ordering.ma".
(* definitions *)
qed.
(* not le *)
-theorem not_le_Sn_O: \forall n:nat. \lnot (S n \leq O).
+theorem not_le_Sn_O: \forall n:nat. S n \nleq O.
intros.simplify.intros.apply leS_to_not_zero ? ? H.
qed.
-theorem not_le_Sn_n: \forall n:nat. \lnot (S n \leq n).
+theorem not_le_Sn_n: \forall n:nat. S n \nleq n.
intros.elim n.apply not_le_Sn_O.simplify.intros.cut S n1 \leq n1.
apply H.assumption.
apply le_S_S_to_le.assumption.
qed.
(* not eq *)
-theorem lt_to_not_eq : \forall n,m:nat. n<m \to \lnot (n=m).
+theorem lt_to_not_eq : \forall n,m:nat. n<m \to n \neq m.
simplify.intros.cut (le (S n) m) \to False.
apply Hcut.assumption.rewrite < H1.
apply not_le_Sn_n.
apply le_S_S_to_le.assumption.
qed.
-theorem not_le_to_lt: \forall n,m:nat. \lnot (n \leq m) \to m<n.
+theorem not_le_to_lt: \forall n,m:nat. n \nleq m \to m<n.
intros 2.
-apply nat_elim2 (\lambda n,m.\lnot (n \leq m) \to m<n).
+apply nat_elim2 (\lambda n,m.n \nleq m \to m<n).
intros.apply absurd (O \leq n1).apply le_O_n.assumption.
simplify.intros.apply le_S_S.apply le_O_n.
simplify.intros.apply le_S_S.apply H.intros.apply H1.apply le_S_S.
assumption.
qed.
-theorem lt_to_not_le: \forall n,m:nat. n<m \to \lnot (m \leq n).
+theorem lt_to_not_le: \forall n,m:nat. n<m \to m \nleq n.
simplify.intros 3.elim H.
apply not_le_Sn_n n H1.
apply H2.apply lt_to_le. apply H3.
theorem le_n_O_to_eq : \forall n:nat. n \leq O \to O=n.
intro.elim n.reflexivity.
apply False_ind.
-(* non si applica not_le_Sn_O *)
-apply (not_le_Sn_O ? H1).
+apply not_le_Sn_O.
+goal 17. apply H1.
qed.
theorem le_n_O_elim: \forall n:nat.n \leq O \to \forall P: nat \to Prop.
qed.
theorem increasing_to_le: \forall f:nat \to nat. (increasing f)
-\to \forall m:nat. ex nat (\lambda i. m \le (f i)).
+\to \forall m:nat. \exists i. m \le (f i).
intros.elim m.
apply ex_intro ? ? O.apply le_O_n.
elim H1.
theorem increasing_to_le2: \forall f:nat \to nat. (increasing f)
\to \forall m:nat. (f O) \le m \to
-ex nat (\lambda i. (f i) \le m \land m <(f (S i))).
+\exists i. (f i) \le m \land m <(f (S i)).
intros.elim H1.
apply ex_intro ? ? O.
split.apply le_n.apply H.