]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/lib/lambda-delta/syntax/item.ma
c9673b47eae3f3c93bf7e3b73ac195452231076c
[helm.git] / matita / matita / lib / lambda-delta / syntax / 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 include "lambda-delta/xoa_defs.ma".
20 include "lambda-delta/xoa_notation.ma".
21 include "lambda-delta/notation.ma".
22
23 (* BINARY ITEMS *************************************************************)
24
25 (* binary binding items *)
26 inductive bind2: Type[0] ≝
27 | Abbr: bind2 (* abbreviation *)
28 | Abst: bind2 (* abstraction *)
29 .
30
31 (* binary non-binding items *)
32 inductive flat2: Type[0] ≝
33 | Appl: flat2 (* application *)
34 | Cast: flat2 (* explicit type annotation *)
35 .
36
37 (* binary items *)
38 inductive item2: Type[0] ≝
39 | Bind: bind2 → item2 (* binding item *)
40 | Flat: flat2 → item2 (* non-binding item *)
41 .
42
43 coercion item2_of_bind2: ∀I:bind2.item2 ≝ Bind on _I:bind2 to item2.
44
45 coercion item2_of_flat2: ∀I:flat2.item2 ≝ Flat on _I:flat2 to item2.