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=b3d0572d29e7acc96434a7ca82030d424923427a;hpb=19cbfb5402fa3aa9419ab5dd7b5e82ce8e2593e1;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 b3d0572d2..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,11 +14,19 @@ set "baseuri" "cic:/matita/LAMBDA-TYPES/Level-1/Base/ext/preamble". -include "legacy/coq.ma". +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". @@ -114,6 +122,8 @@ 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. @@ -128,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. @@ -136,12 +152,10 @@ 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:/Coq/Init/Logic/trans_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