+(* exists *******************************************************************)
+
+notation "hvbox(∃ _ break . p)"
+ with precedence 20
+for @{'exists $p }.
+
+notation < "hvbox(\exists ident i : ty break . p)"
+ right associative with precedence 20
+for @{'exists (\lambda ${ident i} : $ty. $p) }.
+
+notation < "hvbox(\exists ident i break . p)"
+ with precedence 20
+for @{'exists (\lambda ${ident i}. $p) }.
+
+(*
notation < "hvbox(\exists ident i opt (: ty) break . p)"
right associative with precedence 20
for @{ 'exists ${default
@{\lambda ${ident i} : $ty. $p}
@{\lambda ${ident i} . $p}}}.
+*)
notation > "\exists list1 ident x sep , opt (: T). term 19 Px"
with precedence 20
@{ ${ fold right @{$Px} rec acc @{'exists (λ${ident x}.$acc)} } }
}.
+(* sigma ********************************************************************)
+
+notation < "hvbox(\Sigma ident i : ty break . p)"
+ left associative with precedence 20
+for @{'sigma (\lambda ${ident i} : $ty. $p) }.
+
+notation < "hvbox(\Sigma ident i break . p)"
+ with precedence 20
+for @{'sigma (\lambda ${ident i}. $p) }.
+
+(*
notation < "hvbox(\Sigma ident i opt (: ty) break . p)"
right associative with precedence 20
for @{ 'sigma ${default
@{\lambda ${ident i} : $ty. $p}
@{\lambda ${ident i} . $p}}}.
+*)
notation > "\Sigma list1 ident x sep , opt (: T). term 19 Px"
with precedence 20
@{ ${ fold right @{$Px} rec acc @{'sigma (λ${ident x}.$acc)} } }
}.
+(* other notations **********************************************************)
+
notation "hvbox(\langle term 19 a, break term 19 b\rangle)"
with precedence 90 for @{ 'pair $a $b}.
right associative with precedence 20
for @{ \Pi $_:$a.$b }.
-notation "hvbox(a break = b)"
+notation > "hvbox(a break = b)"
+ non associative with precedence 45
+for @{ 'eq ? $a $b }.
+notation < "hvbox(a break maction (=) (=\sub t) b)"
non associative with precedence 45
-for @{ 'eq $a $b }.
+for @{ 'eq $t $a $b }.
notation "hvbox(a break \leq b)"
non associative with precedence 45
non associative with precedence 45
for @{ 'gt $a $b }.
-notation "hvbox(a break \neq b)"
+notation > "hvbox(a break \neq b)"
+ non associative with precedence 45
+for @{ 'neq ? $a $b }.
+
+notation < "hvbox(a break maction (\neq) (\neq\sub t) b)"
non associative with precedence 45
-for @{ 'neq $a $b }.
+for @{ 'neq $t $a $b }.
notation "hvbox(a break \nleq b)"
non associative with precedence 45
left associative with precedence 55
for @{ 'compose $a $b }.
-notation "↓a" with precedence 55 for @{ 'downarrow $a }.
+notation < "↓ \ensp a" with precedence 55 for @{ 'downarrow $a }.
+notation > "↓ a" with precedence 55 for @{ 'downarrow $a }.
notation "hvbox(U break ↓ V)" non associative with precedence 55 for @{ 'fintersects $U $V }.
notation "hvbox(a break ↑ b)" with precedence 55 for @{ 'funion $a $b }.
-notation "a \sup b" left associative with precedence 90 for @{ 'exp $a $b}.
+notation "a \sup term 89 b" with precedence 90 for @{ 'exp $a $b}.
+notation > "a ^ term 89 b" with precedence 90 for @{ 'exp $a $b}.
notation "s \sup (-1)" with precedence 90 for @{ 'invert $s }.
notation > "s ^ (-1)" with precedence 90 for @{ 'invert $s }.
notation < "s \sup (-1) x" with precedence 90 for @{ 'invert_appl $s $x}.
notation "\complexes" non associative with precedence 90 for @{'C}.
notation "\ee" with precedence 90 for @{ 'neutral }. (* ⅇ *)
+
+notation > "x ⊩ y" with precedence 45 for @{'Vdash2 $x $y ?}.
+notation > "x ⊩_term 90 c y" with precedence 45 for @{'Vdash2 $x $y $c}.
+notation "x (⊩ \sub term 90 c) y" with precedence 45 for @{'Vdash2 $x $y $c}.
+notation > "⊩ " with precedence 60 for @{'Vdash ?}.
+notation "(⊩ \sub term 90 c) " with precedence 60 for @{'Vdash $c}.
+
+notation < "maction (mstyle color #ff0000 (…)) (t)"
+non associative with precedence 90 for @{'hide $t}.
+