X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Flib%2Flambda-delta%2Fground.ma;h=54f9da02a162a1e307e99a4e72ea143c9dbfbe22;hb=dde568d876a5d2e1b6e554a526c98b09b145d25a;hp=f4279588b251aa360158fab7826fc6f3b4abbc19;hpb=95aa0f13b906e2b145c60bde078b752869976e7f;p=helm.git diff --git a/matita/matita/lib/lambda-delta/ground.ma b/matita/matita/lib/lambda-delta/ground.ma index f4279588b..54f9da02a 100644 --- a/matita/matita/lib/lambda-delta/ground.ma +++ b/matita/matita/lib/lambda-delta/ground.ma @@ -12,39 +12,94 @@ include "basics/list.ma". include "lambda-delta/xoa_defs.ma". include "lambda-delta/xoa_notation.ma". -include "lambda-delta/notation.ma". (* ARITHMETICAL PROPERTIES **************************************************) lemma plus_plus_comm_23: ∀m,n,p. m + n + p = m + p + n. // qed. +lemma minus_plus_comm: ∀a,b,c. a - b - c = a - (c + b). +// qed. + +lemma arith8: ∀a,b. a < a + b + 1. +// qed. + +lemma arith9: ∀a,b,c. c < a + (b + c + 1) + 1. +// qed. + lemma minus_le: ∀m,n. m - n ≤ m. /2/ qed. lemma plus_plus_minus_m_m: ∀e1,e2,d. e1 ≤ e2 → d + e1 + (e2 - e1) = d + e2. /2/ qed. +lemma le_O_to_eq_O: ∀n. n ≤ 0 → n = 0. +/2/ qed. + +lemma plus_le_minus: ∀a,b,c. a + b ≤ c → a ≤ c - b. +/2/ qed. + lemma le_plus_minus_comm: ∀n,m,p. p ≤ m → (m + n) - p = (m - p) + n. #n #m #p #lepm @plus_to_minus (commutative_plus p) (le_O_to_eq_O … H) -H // +| #m #IHm #p elim p -p // + #p #_ #n #Hpm minus_plus