1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 set "baseuri" "cic:/matita/RELATIONAL/NLE/props".
19 theorem nle_zero_1: \forall q. zero <= q.
23 theorem nle_succ_succ: \forall p,q. p <= q \to succ p <= succ q.
24 intros. elim H. clear H. auto.
27 theorem nle_ind: \forall P:(Nat \to Nat \to Prop).
28 (\forall n:Nat.P zero n) \to
30 n <= n1 \to P n n1 \to P (succ n) (succ n1)
32 \forall n,n1:Nat. n <= n1 \to P n n1.
33 intros 4. elim n; clear n;
35 | lapply linear nle_inv_succ_1 to H3. decompose; subst.
40 theorem nle_refl: \forall x. x <= x.
41 intros 1; elim x; clear x; intros; auto.
44 theorem nle_trans_succ: \forall x,y. x <= y \to x <= succ y.
45 intros. elim H using nle_ind; clear H x y; auto.
48 theorem nle_false: \forall x,y. x <= y \to y < x \to False.
49 intros 3; elim H using nle_ind; clear H x y; auto.
52 theorem nle_trans: \forall x,y. x <= y \to
53 \forall z. y <= z \to x <= z.
54 intros 3. elim H using nle_ind; clear H x y;
56 | lapply linear nle_inv_succ_1 to H3. decompose. subst.
61 theorem nle_lt_or_eq: \forall y,x. x <= y \to x < y \lor x = y.
62 intros. elim H using nle_ind; clear H x y;
63 [ elim n; clear n; auto
64 | decompose; subst; auto