X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Flibrary%2Fnat%2Fexp.ma;h=193478c0fd6706ddc075aa2d6402051f553489e8;hb=6ff5322f46c2e88e07b4c345bc45edda7042128a;hp=e40844e3f9b837a20226e0619780267b816bf763;hpb=e53c9d7cf1a5d3d33c41cad5b046b018a62a9d2d;p=helm.git diff --git a/matita/library/nat/exp.ma b/matita/library/nat/exp.ma index e40844e3f..193478c0f 100644 --- a/matita/library/nat/exp.ma +++ b/matita/library/nat/exp.ma @@ -15,6 +15,7 @@ set "baseuri" "cic:/matita/nat/exp". include "nat/div_and_mod.ma". +include "nat/lt_arith.ma". let rec exp n m on m\def match m with @@ -95,3 +96,76 @@ qed. variant inj_exp_r: \forall p:nat. (S O) < p \to \forall n,m:nat. p \sup n = p \sup m \to n = m \def injective_exp_r. + +theorem le_exp: \forall n,m,p:nat. O < p \to n \le m \to exp p n \le exp p m. +apply nat_elim2 + [intros. + apply lt_O_exp.assumption + |intros. + apply False_ind. + apply (le_to_not_lt ? ? ? H1). + apply le_O_n + |intros. + simplify. + apply le_times + [apply le_n + |apply H[assumption|apply le_S_S_to_le.assumption] + ] + ] +qed. + +theorem lt_exp: \forall n,m,p:nat. S O < p \to n < m \to exp p n < exp p m. +apply nat_elim2 + [intros. + apply (lt_O_n_elim ? H1).intro. + simplify.unfold lt. + rewrite > times_n_SO. + apply le_times + [assumption + |apply lt_O_exp. + apply (trans_lt ? (S O))[apply le_n|assumption] + ] + |intros. + apply False_ind. + apply (le_to_not_lt ? ? ? H1). + apply le_O_n + |intros.simplify. + apply lt_times_r1 + [apply (trans_lt ? (S O))[apply le_n|assumption] + |apply H + [apply H1 + |apply le_S_S_to_le.assumption + ] + ] + ] +qed. + +theorem le_exp_to_le: +\forall a,n,m. S O < a \to exp a n \le exp a m \to n \le m. +intro. +apply nat_elim2;intros + [apply le_O_n + |apply False_ind. + apply (le_to_not_lt ? ? H1). + simplify. + rewrite > times_n_SO. + apply lt_to_le_to_lt_times + [assumption + |apply lt_O_exp.apply lt_to_le.assumption + |apply lt_O_exp.apply lt_to_le.assumption + ] + |simplify in H2. + apply le_S_S. + apply H + [assumption + |apply (le_times_to_le a) + [apply lt_to_le.assumption|assumption] + ] + ] +qed. + + + + + + \ No newline at end of file