]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/lib/lambda-delta/language/item.ma
60a115dc0947968a212e51d7df6a8c902d8367f7
[helm.git] / matita / matita / lib / lambda-delta / language / item.ma
1 (*
2     ||M||  This file is part of HELM, an Hypertextual, Electronic
3     ||A||  Library of Mathematics, developed at the Computer Science
4     ||T||  Department of the University of Bologna, Italy.
5     ||I||
6     ||T||
7     ||A||  This file is distributed under the terms of the
8     \   /  GNU General Public License Version 2
9      \ /
10       V_______________________________________________________________ *)
11
12 (* THE FORMAL SYSTEM λδ - MATITA SOURCE SCRIPTS 
13  * Specification started: 2011 April 17
14  * - Patience on me so that I gain peace and perfection! -
15  * [ suggested invocation to start formal specifications with ]
16  *)
17
18 include "lambda-delta/ground.ma".
19
20 (* BINARY ITEMS *************************************************************)
21
22 (* binary binding items *)
23 inductive bind2: Type[0] ≝
24 | Abbr: bind2 (* abbreviation *)
25 | Abst: bind2 (* abstraction *)
26 .
27
28 (* binary non-binding items *)
29 inductive flat2: Type[0] ≝
30 | Appl: flat2 (* application *)
31 | Cast: flat2 (* explicit type annotation *)
32 .
33
34 (* binary items *)
35 inductive item2: Type[0] ≝
36 | Bind: bind2 → item2 (* binding item *)
37 | Flat: flat2 → item2 (* non-binding item *)
38 .
39
40 coercion item2_of_bind2: ∀I:bind2.item2 ≝ Bind on _I:bind2 to item2.
41
42 coercion item2_of_flat2: ∀I:flat2.item2 ≝ Flat on _I:flat2 to item2.
43
44 (* reduction-related categorization *****************************************)
45
46 (* binding items entitled for zeta-reduction *)
47 definition zable ≝ λI. I = Abbr.
48
49 interpretation "is entitled for zeta-reduction" 'Zeta I = (zable I).
50
51 (* non-binding items entitled for zeta-reduction *)
52 definition table ≝ λI. I = Cast.
53
54 interpretation "is entitled for tau-reduction" 'Tau I = (table I).
55
56 (* binding items entitled for theta-reduction *)
57 definition thable ≝ λI. I = Abbr.
58
59 interpretation "is entitled for theta-reduction" 'Theta I = (thable I).