X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fmatita%2Flibrary%2Fnat%2Fcompare.ma;h=4c44c74e0b61e8e84faea821e7b771b8dab56759;hb=e880d6eab5e1700f4a625ddcd7d0fa8f0cce2dcc;hp=78dc50318197c3dbc449c50d3e757e868aec527d;hpb=af130d273b6be7fbcc2fb2504f3b28ef8fa2344f;p=helm.git diff --git a/helm/software/matita/library/nat/compare.ma b/helm/software/matita/library/nat/compare.ma index 78dc50318..4c44c74e0 100644 --- a/helm/software/matita/library/nat/compare.ma +++ b/helm/software/matita/library/nat/compare.ma @@ -12,8 +12,6 @@ (* *) (**************************************************************************) -set "baseuri" "cic:/matita/nat/compare". - include "datatypes/bool.ma". include "datatypes/compare.ma". include "nat/orders.ma". @@ -126,6 +124,23 @@ apply nat_elim2; intros; simplify ] qed. +theorem leb_true_to_le:\forall n,m. +leb n m = true \to (n \le m). +intros 2. +apply leb_elim + [intros.assumption + |intros.destruct H1. + ] +qed. + +theorem leb_false_to_not_le:\forall n,m. +leb n m = false \to \lnot (n \le m). +intros 2. +apply leb_elim + [intros.destruct H1 + |intros.assumption + ] +qed. (* theorem decidable_le: \forall n,m. n \leq m \lor n \nleq m. intros. @@ -302,3 +317,14 @@ apply ((H H3)). apply ((H1 H3)). apply ((H2 H3)). qed. + +inductive cmp_cases (n,m:nat) : CProp ≝ + | cmp_le : n ≤ m → cmp_cases n m + | cmp_gt : m < n → cmp_cases n m. + +lemma cmp_nat: ∀n,m.cmp_cases n m. +intros; generalize in match (nat_compare_to_Prop n m); +cases (nat_compare n m); intros; +[constructor 1;apply lt_to_le|constructor 1;rewrite > H|constructor 2] +try assumption; apply le_n; +qed.