]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/contribs/LAMBDA-TYPES/Level-1/Base/ext/preamble.ma
we removed about 100 match-with costruction turning them into applications
[helm.git] / helm / software / matita / contribs / LAMBDA-TYPES / Level-1 / Base / ext / preamble.ma
index 4e37576d20ca04a51569ea5255cd539a6027db58..b4c69f299f366435e7fbad576a9d2c8437580691 100644 (file)
 
 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".
@@ -136,6 +118,12 @@ 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.
@@ -150,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.
@@ -158,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.