1 (* exists *******************************************************************)
3 notation "hvbox(∃ _ break . p)"
7 notation < "hvbox(\exists ident i : ty break . p)"
8 right associative with precedence 20
9 for @{'exists (\lambda ${ident i} : $ty. $p) }.
11 notation < "hvbox(\exists ident i break . p)"
13 for @{'exists (\lambda ${ident i}. $p) }.
16 notation < "hvbox(\exists ident i opt (: ty) break . p)"
17 right associative with precedence 20
18 for @{ 'exists ${default
19 @{\lambda ${ident i} : $ty. $p}
20 @{\lambda ${ident i} . $p}}}.
23 notation > "\exists list1 ident x sep , opt (: T). term 19 Px"
26 @{ ${ fold right @{$Px} rec acc @{'exists (λ${ident x}:$T.$acc)} } }
27 @{ ${ fold right @{$Px} rec acc @{'exists (λ${ident x}.$acc)} } }
30 notation > "hvbox(∃∃ ident x0 break . term 19 P0 break & term 19 P1)"
31 non associative with precedence 20
32 for @{ 'exists2 (λ${ident x0}.$P0) (λ${ident x0}.$P1) }.
34 notation < "hvbox(∃∃ ident x0 break . term 19 P0 break & term 19 P1)"
35 non associative with precedence 20
36 for @{ 'exists2 (λ${ident x0}:$T0.$P0) (λ${ident x0}:$T0.$P1) }.
38 (* sigma ********************************************************************)
40 notation < "hvbox(\Sigma ident i : ty break . p)"
41 left associative with precedence 20
42 for @{'sigma (\lambda ${ident i} : $ty. $p) }.
44 notation < "hvbox(\Sigma ident i break . p)"
46 for @{'sigma (\lambda ${ident i}. $p) }.
49 notation < "hvbox(\Sigma ident i opt (: ty) break . p)"
50 right associative with precedence 20
51 for @{ 'sigma ${default
52 @{\lambda ${ident i} : $ty. $p}
53 @{\lambda ${ident i} . $p}}}.
56 notation > "\Sigma list1 ident x sep , opt (: T). term 19 Px"
59 @{ ${ fold right @{$Px} rec acc @{'sigma (λ${ident x}:$T.$acc)} } }
60 @{ ${ fold right @{$Px} rec acc @{'sigma (λ${ident x}.$acc)} } }
63 notation "hvbox(« term 19 a, break term 19 b»)"
64 with precedence 90 for @{ 'dp $a $b }.
66 (* dependent pairs (i.e. Sigma with predicate in Type[0]) ********************)
68 notation < "hvbox(𝚺 ident i : ty break . p)"
69 left associative with precedence 20
70 for @{'dpair (\lambda ${ident i} : $ty. $p) }.
72 notation < "hvbox(𝚺 ident i break . p)"
74 for @{'dpair (\lambda ${ident i}. $p) }.
77 notation < "hvbox(𝚺 ident i opt (: ty) break . p)"
78 right associative with precedence 20
79 for @{ 'dpair ${default
80 @{\lambda ${ident i} : $ty. $p}
81 @{\lambda ${ident i} . $p}}}.
84 notation > "𝚺 list1 ident x sep , opt (: T). term 19 Px"
87 @{ ${ fold right @{$Px} rec acc @{'dpair (λ${ident x}:$T.$acc)} } }
88 @{ ${ fold right @{$Px} rec acc @{'dpair (λ${ident x}.$acc)} } }
91 notation "hvbox(❬ term 19 a, break term 19 b❭)"
92 with precedence 90 for @{ 'mk_DPair $a $b }.
94 (* equality, conguence ******************************************************)
96 notation > "hvbox(a break = b)"
97 non associative with precedence 45
100 notation < "hvbox(term 46 a break maction (=) (=\sub t) term 46 b)"
101 non associative with precedence 45
102 for @{ 'eq $t $a $b }.
104 notation > "hvbox(n break (≅ \sub term 90 p) m)"
105 non associative with precedence 45
106 for @{ 'congruent $n $m $p }.
108 notation < "hvbox(term 46 n break ≅ \sub p term 46 m)"
109 non associative with precedence 45
110 for @{ 'congruent $n $m $p }.
112 (* other notations **********************************************************)
114 notation "hvbox(\langle term 19 a, break term 19 b\rangle)"
115 with precedence 90 for @{ 'pair $a $b}.
117 notation "hvbox(x break \times y)" with precedence 70
118 for @{ 'product $x $y}.
120 notation < "\fst \nbsp term 90 x" with precedence 69 for @{'pi1a $x}.
121 notation < "\snd \nbsp term 90 x" with precedence 69 for @{'pi2a $x}.
123 notation < "\fst \nbsp term 90 x \nbsp term 90 y" with precedence 69 for @{'pi1b $x $y}.
124 notation < "\snd \nbsp term 90 x \nbsp term 90 y" with precedence 69 for @{'pi2b $x $y}.
126 notation > "\fst" with precedence 90 for @{'pi1}.
127 notation > "\snd" with precedence 90 for @{'pi2}.
129 notation "hvbox(a break \to b)"
130 right associative with precedence 20
131 for @{ \forall $_:$a.$b }.
133 notation < "hvbox(a break \to b)"
134 right associative with precedence 20
135 for @{ \Pi $_:$a.$b }.
137 notation "hvbox(a break \leq b)"
138 non associative with precedence 45
141 notation "hvbox(a break \geq b)"
142 non associative with precedence 45
145 notation "hvbox(a break \lt b)"
146 non associative with precedence 45
149 notation "hvbox(a break \gt b)"
150 non associative with precedence 45
153 notation > "hvbox(a break \neq b)"
154 non associative with precedence 45
155 for @{ 'neq ? $a $b }.
157 notation < "hvbox(a break maction (\neq) (\neq\sub t) b)"
158 non associative with precedence 45
159 for @{ 'neq $t $a $b }.
161 notation "hvbox(a break \nleq b)"
162 non associative with precedence 45
163 for @{ 'nleq $a $b }.
165 notation "hvbox(a break \ngeq b)"
166 non associative with precedence 45
167 for @{ 'ngeq $a $b }.
169 notation "hvbox(a break \nless b)"
170 non associative with precedence 45
171 for @{ 'nless $a $b }.
173 notation "hvbox(a break \ngtr b)"
174 non associative with precedence 45
175 for @{ 'ngtr $a $b }.
177 notation "hvbox(a break \divides b)"
178 non associative with precedence 45
179 for @{ 'divides $a $b }.
181 notation "hvbox(a break \ndivides b)"
182 non associative with precedence 45
183 for @{ 'ndivides $a $b }.
185 notation "hvbox(a break + b)"
186 left associative with precedence 55
187 for @{ 'plus $a $b }.
189 notation "hvbox(a break - b)"
190 left associative with precedence 55
191 for @{ 'minus $a $b }.
193 notation "hvbox(a break * b)"
194 left associative with precedence 60
195 for @{ 'times $a $b }.
197 notation "hvbox(a break \middot b)"
198 left associative with precedence 60
199 for @{ 'middot $a $b }.
201 notation "hvbox(a break \mod b)"
202 left associative with precedence 60
203 for @{ 'module $a $b }.
205 notation < "a \frac b"
206 non associative with precedence 90
207 for @{ 'divide $a $b }.
210 left associative with precedence 60
211 for @{ 'divide $a $b }.
213 notation "hvbox(a break / b)"
214 left associative with precedence 60
215 for @{ 'divide $a $b }.
217 notation "- term 65 a" with precedence 65
221 non associative with precedence 80
225 non associative with precedence 65
228 notation "hvbox(a break \lor b)"
229 left associative with precedence 30
232 notation "hvbox(a break \land b)"
233 left associative with precedence 35
236 notation "hvbox(\lnot a)"
237 non associative with precedence 40
240 notation > "hvbox(a break \liff b)"
241 left associative with precedence 25
244 notation "hvbox(a break \leftrightarrow b)"
245 left associative with precedence 25
249 notation "hvbox(\Omega \sup term 90 A)" non associative with precedence 90
250 for @{ 'powerset $A }.
251 notation > "hvbox(\Omega ^ term 90 A)" non associative with precedence 90
252 for @{ 'powerset $A }.
254 notation < "hvbox({ ident i | term 19 p })" with precedence 90
255 for @{ 'subset (\lambda ${ident i} : $nonexistent . $p)}.
257 notation > "hvbox({ ident i | term 19 p })" with precedence 90
258 for @{ 'subset (\lambda ${ident i}. $p)}.
260 notation < "hvbox({ ident i ∈ term 19 s | term 19 p })" with precedence 90
261 for @{ 'comprehension $s (\lambda ${ident i} : $nonexistent . $p)}.
263 notation > "hvbox({ ident i ∈ term 19 s | term 19 p })" with precedence 90
264 for @{ 'comprehension $s (\lambda ${ident i}. $p)}.
266 notation "hvbox(a break ∈ b)" non associative with precedence 45
269 notation "hvbox(a break ∉ b)" non associative with precedence 45
270 for @{ 'notmem $a $b }.
272 notation "hvbox(a break ≬ b)" non associative with precedence 45
273 for @{ 'overlaps $a $b }. (* \between *)
275 notation "hvbox(a break ⊆ b)" non associative with precedence 45
276 for @{ 'subseteq $a $b }. (* \subseteq *)
278 notation "hvbox(a break ∩ b)" left associative with precedence 60
279 for @{ 'intersects $a $b }. (* \cap *)
281 notation "hvbox(a break ∪ b)" left associative with precedence 55
282 for @{ 'union $a $b }. (* \cup *)
284 notation "hvbox({ term 19 a })" with precedence 90 for @{ 'singl $a}.
286 notation "hvbox(a break \approx b)" non associative with precedence 45
287 for @{ 'napart $a $b}.
289 notation "hvbox(a break # b)" non associative with precedence 45
290 for @{ 'apart $a $b}.
292 notation "hvbox(a break \circ b)"
293 left associative with precedence 60
294 for @{ 'compose $a $b }.
296 notation < "↓ \ensp a" with precedence 60 for @{ 'downarrow $a }.
297 notation > "↓ a" with precedence 60 for @{ 'downarrow $a }.
299 notation "hvbox(U break ↓ V)" non associative with precedence 60 for @{ 'fintersects $U $V }.
301 notation "↑a" with precedence 60 for @{ 'uparrow $a }.
303 notation "hvbox(a break ↑ b)" with precedence 60 for @{ 'funion $a $b }.
305 notation < "term 76 a \sup term 90 b" non associative with precedence 75 for @{ 'exp $a $b}.
306 notation > "a \sup term 90 b" non associative with precedence 75 for @{ 'exp $a $b}.
307 notation > "a ^ term 90 b" non associative with precedence 75 for @{ 'exp $a $b}.
308 notation "s \sup (-1)" non associative with precedence 75 for @{ 'invert $s }.
309 notation > "s ^ (-1)" non associative with precedence 75 for @{ 'invert $s }.
310 notation < "s \sup (-1) x" non associative with precedence 90 for @{ 'invert_appl $s $x}.
312 notation "| term 19 C |" with precedence 70 for @{ 'card $C }.
314 notation "\naturals" non associative with precedence 90 for @{'N}.
315 notation "\rationals" non associative with precedence 90 for @{'Q}.
316 notation "\reals" non associative with precedence 90 for @{'R}.
317 notation "\integers" non associative with precedence 90 for @{'Z}.
318 notation "\complexes" non associative with precedence 90 for @{'C}.
320 notation "\ee" with precedence 90 for @{ 'neutral }. (* ⅇ *)
322 notation > "x ⊩ y" with precedence 45 for @{'Vdash2 $x $y ?}.
323 notation > "x ⊩⎽ term 90 c y" with precedence 45 for @{'Vdash2 $x $y $c}.
324 notation "x (⊩ \sub term 90 c) y" with precedence 45 for @{'Vdash2 $x $y $c}.
325 notation > "⊩ " with precedence 65 for @{'Vdash ?}.
326 notation "(⊩ \sub term 90 c) " with precedence 65 for @{'Vdash $c}.
328 notation < "maction (mstyle color #ff0000 (…)) (t)"
329 non associative with precedence 90 for @{'hide $t}.