X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fmatita%2Fcontribs%2FLAMBDA-TYPES%2FLevel-1%2FBase%2Fext%2Fpreamble.ma;h=b4c69f299f366435e7fbad576a9d2c8437580691;hb=02bd27d53c28099b9fc92917cf34ccf3bc72d696;hp=f1b0a886c3680fc6b2e4d9890c8c3d314988099a;hpb=b6c399fc59c61c1071c942f539fabda4d74bb922;p=helm.git diff --git a/helm/software/matita/contribs/LAMBDA-TYPES/Level-1/Base/ext/preamble.ma b/helm/software/matita/contribs/LAMBDA-TYPES/Level-1/Base/ext/preamble.ma index f1b0a886c..b4c69f299 100644 --- a/helm/software/matita/contribs/LAMBDA-TYPES/Level-1/Base/ext/preamble.ma +++ b/helm/software/matita/contribs/LAMBDA-TYPES/Level-1/Base/ext/preamble.ma @@ -14,37 +14,19 @@ set "baseuri" "cic:/matita/LAMBDA-TYPES/Level-1/Base/ext/preamble". -(* FG: We should include legacy/coq.ma bit it is not working *) -(* include "legacy/coq.ma". *) - -default "equality" - cic:/Coq/Init/Logic/eq.ind - cic:/Coq/Init/Logic/sym_eq.con - cic:/Coq/Init/Logic/trans_eq.con - cic:/Coq/Init/Logic/eq_ind.con - cic:/Coq/Init/Logic/eq_ind_r.con - cic:/Coq/Init/Logic/f_equal.con - cic:/Coq/Init/Logic/f_equal1.con. - -default "true" - cic:/Coq/Init/Logic/True.ind. - -default "false" - cic:/Coq/Init/Logic/False.ind. - -default "absurd" - cic:/Coq/Init/Logic/absurd.con. - -interpretation "Coq's leibnitz's equality" 'eq x y = (cic:/Coq/Init/Logic/eq.ind#xpointer(1/1) _ x y). -interpretation "Coq's not equal to (leibnitz)" 'neq x y = (cic:/Coq/Init/Logic/not.con (cic:/Coq/Init/Logic/eq.ind#xpointer(1/1) _ x y)). -interpretation "Coq's natural plus" 'plus x y = (cic:/Coq/Init/Peano/plus.con x y). -interpretation "Coq's natural 'less or equal to'" 'leq x y = (cic:/Coq/Init/Peano/le.ind#xpointer(1/1) x y). +include' "legacy/coq.ma". +(* FG: This is because "and" is a reserved keyword of the parser *) alias id "land" = "cic:/Coq/Init/Logic/and.ind#xpointer(1/1)". - + (* FG/CSC: These aliases should disappear: we would like to write something * like: "disambiguate in cic:/Coq/*" *) +alias symbol "plus" = "Coq's natural plus". +alias symbol "leq" = "Coq's natural 'less or equal to'". +alias symbol "neq" = "Coq's not equal to (leibnitz)". +alias symbol "eq" = "Coq's leibnitz's equality". + alias id "bool" = "cic:/Coq/Init/Datatypes/bool.ind#xpointer(1/1)". alias id "conj" = "cic:/Coq/Init/Logic/and.ind#xpointer(1/1/1)". alias id "eq_add_S" = "cic:/Coq/Init/Peano/eq_add_S.con". @@ -135,6 +117,13 @@ alias id "lt_trans" = "cic:/Coq/Arith/Lt/lt_trans.con". alias id "lt_n_Sn" = "cic:/Coq/Arith/Lt/lt_n_Sn.con". alias id "lt_le_trans" = "cic:/Coq/Arith/Lt/lt_le_trans.con". alias id "lt_wf_ind" = "cic:/Coq/Arith/Wf_nat/lt_wf_ind.con". +alias id "bool_ind" = "cic:/Coq/Init/Datatypes/bool_ind.con". +alias id "ex_ind" = "cic:/Coq/Init/Logic/ex_ind.con". +alias id "plus_Snm_nSm" = "cic:/Coq/Arith/Plus/plus_Snm_nSm.con". +alias id "plus_lt_le_compat" = "cic:/Coq/Arith/Plus/plus_lt_le_compat.con". +alias id "plus_lt_compat" = "cic:/Coq/Arith/Plus/plus_lt_compat.con". +alias id "lt_S_n" = "cic:/Coq/Arith/Lt/lt_S_n.con". +alias id "minus_n_n" = "cic:/Coq/Arith/Minus/minus_n_n.con". theorem f_equal: \forall A,B:Type. \forall f:A \to B. \forall x,y:A. x = y \to f x = f y. @@ -149,6 +138,12 @@ theorem sym_not_eq: \forall A:Type. \forall x,y:A. x \neq y \to y \neq x. unfold not. intros. apply H. symmetry. assumption. qed. +theorem trans_eq : ∀A:Type.∀x,y,z:A.x=y→y=z→x=z. + intros; + transitivity y; + assumption. +qed. + theorem plus_reg_l: \forall (n,m,p:nat). n + m = n + p \to m = p. intros. apply plus_reg_l; auto. qed. @@ -157,4 +152,11 @@ theorem plus_le_reg_l: \forall p,n,m. p + n <= p + m \to n <= m. intros. apply plus_le_reg_l; auto. qed. -definition sym_equal \def sym_eq. +default "equality" + cic:/Coq/Init/Logic/eq.ind + cic:/matita/LAMBDA-TYPES/Level-1/Base/ext/preamble/sym_eq.con + cic:/matita/LAMBDA-TYPES/Level-1/Base/ext/preamble/trans_eq.con + cic:/Coq/Init/Logic/eq_ind.con + cic:/Coq/Init/Logic/eq_ind_r.con + cic:/matita/LAMBDA-TYPES/Level-1/Base/ext/preamble/f_equal.con + cic:/matita/legacy/coq/f_equal1.con.