]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/legacy/coq.ma
- the theory of delifting substitution is done
[helm.git] / matita / matita / legacy / coq.ma
1 (**************************************************************************)
2 (*       ___                                                              *)
3 (*      ||M||                                                             *)
4 (*      ||A||       A project by Andrea Asperti                           *)
5 (*      ||T||                                                             *)
6 (*      ||I||       Developers:                                           *)
7 (*      ||T||       A.Asperti, C.Sacerdoti Coen,                          *)
8 (*      ||A||       E.Tassi, S.Zacchiroli                                 *)
9 (*      \   /                                                             *)
10 (*       \ /        This file is distributed under the terms of the       *)
11 (*        v         GNU Lesser General Public License Version 2.1         *)
12 (*                                                                        *)
13 (**************************************************************************)
14
15 default "equality"
16  cic:/Coq/Init/Logic/eq.ind
17  cic:/Coq/Init/Logic/sym_eq.con
18  cic:/Coq/Init/Logic/trans_eq.con
19  cic:/Coq/Init/Logic/eq_ind.con
20  cic:/Coq/Init/Logic/eq_ind_r.con
21  cic:/Coq/Init/Logic/eq_rec.con
22  cic:/Coq/Init/Logic/eq_rec_r.con
23  cic:/Coq/Init/Logic/eq_rect.con
24  cic:/Coq/Init/Logic/eq_rect_r.con
25  cic:/Coq/Init/Logic/f_equal.con
26  cic:/matita/legacy/coq/f_equal1.con.
27
28 default "true"
29  cic:/Coq/Init/Logic/True.ind. 
30 default "false"
31  cic:/Coq/Init/Logic/False.ind. 
32 default "absurd"
33  cic:/Coq/Init/Logic/absurd.con. 
34
35 (* aritmetic operators *)
36
37 interpretation "Coq's natural plus" 'plus x y = (cic:/Coq/Init/Peano/plus.con x y).
38 interpretation "Coq's real plus" 'plus x y = (cic:/Coq/Reals/Rdefinitions/Rplus.con x y).
39 interpretation "Coq's binary integer plus" 'plus x y = (cic:/Coq/ZArith/BinInt/Zplus.con x y).
40 interpretation "Coq's binary positive plus" 'plus x y = (cic:/Coq/NArith/BinPos/Pplus.con x y).
41 interpretation "Coq's natural minus" 'minus x y = (cic:/Coq/Init/Peano/minus.con x y).
42 interpretation "Coq's real minus" 'minus x y = (cic:/Coq/Reals/Rdefinitions/Rminus.con x y).
43 interpretation "Coq's binary integer minus" 'minus x y = (cic:/Coq/ZArith/BinInt/Zminus.con x y).
44 interpretation "Coq's binary positive minus" 'minus x y = (cic:/Coq/NArith/BinPos/Pminus.con x y).
45 interpretation "Coq's natural times" 'times x y = (cic:/Coq/Init/Peano/mult.con x y).
46 interpretation "Coq's real times" 'times x y = (cic:/Coq/Reals/Rdefinitions/Rmult.con x y).
47 interpretation "Coq's binary positive times" 'times x y = (cic:/Coq/NArith/BinPos/Pmult.con x y).
48 interpretation "Coq's binary integer times" 'times x y = (cic:/Coq/ZArith/BinInt/Zmult.con x y).
49 interpretation "Coq's real power" 'power x y = (cic:/Coq/Reals/Rfunctions/pow.con x y).
50 interpretation "Coq's integer power" 'power x y = (cic:/Coq/ZArith/Zpower/Zpower.con x y).
51 interpretation "Coq's real divide" 'divide x y = (cic:/Coq/Reals/Rdefinitions/Rdiv.con x y).
52 interpretation "Coq's real unary minus" 'uminus x = (cic:/Coq/Reals/Rdefinitions/Ropp.con x).
53 interpretation "Coq's binary integer negative sign" 'uminus x = (cic:/Coq/ZArith/BinInt/Z.ind#xpointer(1/1/3) x).
54 interpretation "Coq's binary integer unary minus" 'uminus x = (cic:/Coq/ZArith/BinInt/Zopp.con x).
55
56 (* logical operators *)
57
58 interpretation "Coq's logical and" 'and x y = (cic:/Coq/Init/Logic/and.ind#xpointer(1/1) x y).
59 interpretation "Coq's logical or" 'or x y = (cic:/Coq/Init/Logic/or.ind#xpointer(1/1) x y).
60 interpretation "Coq's logical not" 'not x = (cic:/Coq/Init/Logic/not.con x).
61 interpretation "Coq's exists" 'exists \eta.x = (cic:/Coq/Init/Logic/ex.ind#xpointer(1/1) _ x).
62
63 (* relational operators *)
64
65 interpretation "Coq's natural 'less or equal to'" 'leq x y = (cic:/Coq/Init/Peano/le.ind#xpointer(1/1) x y).
66 interpretation "Coq's real 'less or equal to'" 'leq x y = (cic:/Coq/Reals/Rdefinitions/Rle.con x y).
67 interpretation "Coq's natural 'greater or equal to'" 'geq x y = (cic:/Coq/Init/Peano/ge.con x y).
68 interpretation "Coq's real 'greater or equal to'" 'geq x y = (cic:/Coq/Reals/Rdefinitions/Rge.con x y).
69 interpretation "Coq's natural 'less than'" 'lt x y = (cic:/Coq/Init/Peano/lt.con x y).
70 interpretation "Coq's real 'less than'" 'lt x y = (cic:/Coq/Reals/Rdefinitions/Rlt.con x y).
71 interpretation "Coq's natural 'greater than'" 'gt x y = (cic:/Coq/Init/Peano/gt.con x y).
72 interpretation "Coq's real 'greater than'" 'gt x y = (cic:/Coq/Reals/Rdefinitions/Rgt.con x y).
73
74 interpretation "Coq's leibnitz's equality" 'eq x y = (cic:/Coq/Init/Logic/eq.ind#xpointer(1/1) _ x y).
75 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)).
76
77 interpretation "Coq's natural 'not less or equal than'"
78  'nleq x y = (cic:/Coq/Init/Logic/not.con 
79                (cic:/Coq/Init/Peano/le.ind#xpointer(1/1) x y)).
80                
81 theorem f_equal1 : \forall A,B:Type.\forall f:A\to B.\forall x,y:A.
82   x = y \to (f y) = (f x).
83   intros.
84   symmetry.
85   apply cic:/Coq/Init/Logic/f_equal.con.
86   assumption.
87 qed.
88 (* aliases *)
89
90 (* FG: This is because "and" is a reserved keyword of the parser *)
91 alias id "land" = "cic:/Coq/Init/Logic/and.ind#xpointer(1/1)".
92