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