]> matita.cs.unibo.it Git - helm.git/blob - helm/software/matita/core_notation.moo
cicNotationUtil: in fresh_name_generator, "\eta" replaced with "eta", which is an...
[helm.git] / helm / software / matita / core_notation.moo
1 (* exists *******************************************************************)
2
3 notation < "hvbox(\exists ident i : ty break . p)"
4  with precedence 20
5 for @{'exists (\lambda ${ident i} : $ty. $p) }.
6
7 notation < "hvbox(\exists ident i break . p)"
8  with precedence 20
9 for @{'exists (\lambda ${ident i}. $p) }.
10
11 (*
12 notation < "hvbox(\exists ident i opt (: ty) break . p)"
13   with precedence 20
14 for @{ 'exists ${default
15   @{\lambda ${ident i} : $ty. $p}
16   @{\lambda ${ident i} . $p}}}.
17 *)
18
19 notation > "\exists list1 ident x sep , : T. term 19 Px"
20   with precedence 20
21 for 
22   @{ ${ fold right @{$Px} rec acc @{'exists (λ${ident x}:$T.$acc)} } }.
23
24 notation > "\exists list1 ident x sep , . term 19 Px"
25   with precedence 20
26 for 
27   @{ ${ fold right @{$Px} rec acc @{'exists (λ${ident x}.$acc)} } }.
28
29 (*
30 notation > "\exists list1 ident x sep , opt (: T). term 19 Px"
31   with precedence 20
32   for ${ default
33           @{ ${ fold right @{$Px} rec acc @{'exists (λ${ident x}:$T.$acc)} } }
34           @{ ${ fold right @{$Px} rec acc @{'exists (λ${ident x}.$acc)} } }
35        }.
36 *)
37
38 (* sigma ********************************************************************)
39
40 notation < "hvbox(\Sigma ident i : ty break . p)"
41  with precedence 20
42 for @{'sigma (\lambda ${ident i} : $ty. $p) }.
43
44 notation < "hvbox(\Sigma ident i break . p)"
45  with precedence 20
46 for @{'sigma (\lambda ${ident i}. $p) }.
47
48 (*
49 notation < "hvbox(\Sigma ident i opt (: ty) break . p)"
50   with precedence 20
51 for @{ 'sigma ${default
52   @{\lambda ${ident i} : $ty. $p}
53   @{\lambda ${ident i} . $p}}}.
54 *)
55
56 notation > "\Sigma list1 ident x sep , : T. term 19 Px"
57   with precedence 20
58 for 
59   @{ ${ fold right @{$Px} rec acc @{'sigma (λ${ident x}:$T.$acc)} } }.
60
61 notation > "\Sigma list1 ident x sep , . term 19 Px"
62   with precedence 20
63 for 
64   @{ ${ fold right @{$Px} rec acc @{'sigma (λ${ident x}.$acc)} } }.
65
66 (*
67 notation > "\Sigma list1 ident x sep , opt (: T). term 19 Px"
68   with precedence 20
69   for ${ default
70           @{ ${ fold right @{$Px} rec acc @{'sigma (λ${ident x}:$T.$acc)} } }
71           @{ ${ fold right @{$Px} rec acc @{'sigma (λ${ident x}.$acc)} } }
72        }.
73 *)
74
75 (* other notations **********************************************************)
76
77 notation "hvbox(\langle term 19 a, break term 19 b\rangle)" 
78 with precedence 90 for @{ 'pair $a $b}.
79
80 notation "hvbox(x break \times y)" with precedence 70
81 for @{ 'product $x $y}.
82
83 notation < "\fst \nbsp term 90 x" with precedence 69 for @{'pi1a $x}.
84 notation < "\snd \nbsp term 90 x" with precedence 69 for @{'pi2a $x}.
85
86 notation < "\fst \nbsp term 90 x \nbsp term 90 y" with precedence 69 for @{'pi1b $x $y}.
87 notation < "\snd \nbsp term 90 x \nbsp term 90 y" with precedence 69 for @{'pi2b $x $y}.
88
89 notation > "\fst" with precedence 90 for @{'pi1}.
90 notation > "\snd" with precedence 90 for @{'pi2}.
91
92 notation "hvbox(a break \to b)" 
93   right associative with precedence 20
94 for @{ \forall $_:$a.$b }.
95
96 notation < "hvbox(a break \to b)" 
97   right associative with precedence 20
98 for @{ \Pi $_:$a.$b }.
99
100 notation > "hvbox(a break = b)" 
101   non associative with precedence 45
102 for @{ 'eq ? $a $b }.
103 notation < "hvbox(a break maction (=) (=\sub t) b)" 
104   non associative with precedence 45
105 for @{ 'eq $t $a $b }.
106
107 notation "hvbox(a break \leq b)" 
108   non associative with precedence 45
109 for @{ 'leq $a $b }.
110
111 notation "hvbox(a break \geq b)" 
112   non associative with precedence 45
113 for @{ 'geq $a $b }.
114
115 notation "hvbox(a break \lt b)" 
116   non associative with precedence 45
117 for @{ 'lt $a $b }.
118
119 notation "hvbox(a break \gt b)" 
120   non associative with precedence 45
121 for @{ 'gt $a $b }.
122
123 notation > "hvbox(a break \neq b)" 
124   non associative with precedence 45
125 for @{ 'neq ? $a $b }.
126
127 notation < "hvbox(a break maction (\neq) (\neq\sub t) b)" 
128   non associative with precedence 45
129 for @{ 'neq $t $a $b }.
130
131 notation "hvbox(a break \nleq b)" 
132   non associative with precedence 45
133 for @{ 'nleq $a $b }.
134
135 notation "hvbox(a break \ngeq b)" 
136   non associative with precedence 45
137 for @{ 'ngeq $a $b }.
138
139 notation "hvbox(a break \nless b)" 
140   non associative with precedence 45
141 for @{ 'nless $a $b }.
142
143 notation "hvbox(a break \ngtr b)" 
144   non associative with precedence 45
145 for @{ 'ngtr $a $b }.
146
147 notation "hvbox(a break \divides b)"
148   non associative with precedence 45
149 for @{ 'divides $a $b }.
150
151 notation "hvbox(a break \ndivides b)"
152   non associative with precedence 45
153 for @{ 'ndivides $a $b }.
154
155 notation "hvbox(a break + b)" 
156   left associative with precedence 50
157 for @{ 'plus $a $b }.
158
159 notation "hvbox(a break - b)" 
160   left associative with precedence 50
161 for @{ 'minus $a $b }.
162
163 notation "hvbox(a break * b)" 
164   left associative with precedence 55
165 for @{ 'times $a $b }.
166
167 notation "hvbox(a break \middot b)" 
168   left associative with precedence 55
169   for @{ 'middot $a $b }.
170
171 notation "hvbox(a break \mod b)" 
172   left associative with precedence 55
173 for @{ 'module $a $b }.
174
175 notation "a \frac b" 
176   non associative with precedence 90
177 for @{ 'divide $a $b }.
178
179 notation "a \over b" 
180   left associative with precedence 55
181 for @{ 'divide $a $b }.
182
183 notation "hvbox(a break / b)" 
184   left associative with precedence 55
185 for @{ 'divide $a $b }.
186
187 notation "- term 60 a" with precedence 60 
188 for @{ 'uminus $a }.
189
190 notation "a !"
191   non associative with precedence 80
192 for @{ 'fact $a }.
193
194 notation "\sqrt a" 
195   non associative with precedence 60
196 for @{ 'sqrt $a }.
197
198 notation "hvbox(a break \lor b)" 
199   left associative with precedence 30
200 for @{ 'or $a $b }.
201
202 notation "hvbox(a break \land b)" 
203   left associative with precedence 35
204 for @{ 'and $a $b }.
205
206 notation "hvbox(\lnot a)" 
207   non associative with precedence 40
208 for @{ 'not $a }.
209
210 notation > "hvbox(a break \liff b)" 
211   left associative with precedence 25
212 for @{ 'iff $a $b }.
213
214 notation "hvbox(a break \leftrightarrow b)" 
215   left associative with precedence 25
216 for @{ 'iff $a $b }.
217
218
219 notation "hvbox(\Omega \sup term 90 A)" non associative with precedence 70
220 for @{ 'powerset $A }.
221
222 notation < "hvbox({ ident i | term 19 p })" with precedence 90
223 for @{ 'subset (\lambda ${ident i} : $nonexistent . $p)}.
224
225 notation > "hvbox({ ident i | term 19 p })" with precedence 90
226 for @{ 'subset (\lambda ${ident i}. $p)}.
227
228 notation < "hvbox({ ident i ∈ s | term 19 p })" with precedence 90
229 for @{ 'comprehension $s (\lambda ${ident i} : $nonexistent . $p)}.
230
231 notation > "hvbox({ ident i ∈ s | term 19 p })" with precedence 90
232 for @{ 'comprehension $s (\lambda ${ident i}. $p)}.
233
234 notation "hvbox(a break ∈ b)" non associative with precedence 45
235 for @{ 'mem $a $b }.
236
237 notation "hvbox(a break ≬ b)" non associative with precedence 45
238 for @{ 'overlaps $a $b }. (* \between *)
239
240 notation "hvbox(a break ⊆ b)" non associative with precedence 45
241 for @{ 'subseteq $a $b }. (* \subseteq *)
242
243 notation "hvbox(a break ∩ b)" non associative with precedence 55
244 for @{ 'intersects $a $b }. (* \cap *)
245
246 notation "hvbox(a break ∪ b)" non associative with precedence 50
247 for @{ 'union $a $b }. (* \cup *)
248
249 notation "hvbox({ term 19 a })" with precedence 90 for @{ 'singl $a}.
250
251 notation "hvbox(a break \approx b)" non associative with precedence 45 
252   for @{ 'napart $a $b}.
253         
254 notation "hvbox(a break # b)" non associative with precedence 45 
255   for @{ 'apart $a $b}.
256     
257 notation "hvbox(a break \circ b)" 
258   left associative with precedence 55
259 for @{ 'compose $a $b }.
260
261 notation < "↓ \ensp a" with precedence 55 for @{ 'downarrow $a }.
262 notation > "↓ a" with precedence 55 for @{ 'downarrow $a }.
263
264 notation "hvbox(U break ↓ V)" non associative with precedence 55 for @{ 'fintersects $U $V }.
265
266 notation "↑a" with precedence 55 for @{ 'uparrow $a }.
267
268 notation "hvbox(a break ↑ b)" with precedence 55 for @{ 'funion $a $b }.
269
270 notation "a \sup term 89 b" with precedence 90 for @{ 'exp $a $b}.
271 notation > "a ^ term 89 b"  with precedence 90 for @{ 'exp $a $b}.
272 notation "s \sup (-1)" with precedence 90 for @{ 'invert $s }.
273 notation > "s ^ (-1)" with precedence 90 for @{ 'invert $s }.
274 notation < "s \sup (-1) x" with precedence 90 for @{ 'invert_appl $s $x}. 
275
276 notation "hvbox(|term 90 C|)" with precedence 69 for @{ 'card $C }.
277
278 notation "\naturals" non associative with precedence 90 for @{'N}.
279 notation "\rationals" non associative with precedence 90 for @{'Q}.
280 notation "\reals" non associative with precedence 90 for @{'R}.
281 notation "\integers" non associative with precedence 90 for @{'Z}.
282 notation "\complexes" non associative with precedence 90 for @{'C}.
283
284 notation "\ee" with precedence 90 for @{ 'neutral }. (* ⅇ *)
285
286 notation > "x ⊩ y" with precedence 45 for @{'Vdash2 $x $y ?}.
287 notation > "x ⊩_term 90 c y" with precedence 45 for @{'Vdash2 $x $y $c}.
288 notation "x (⊩ \sub term 90 c) y" with precedence 45 for @{'Vdash2 $x $y $c}.
289 notation > "⊩ " with precedence 60 for @{'Vdash ?}.
290 notation "(⊩ \sub term 90 c) " with precedence 60 for @{'Vdash $c}.
291
292 notation < "maction (mstyle color #ff0000 (­…­)) (t)" 
293 non associative with precedence 90 for @{'hide $t}.
294