% Carsten Schuermann
% Logic macros

%fonts
% \newcommand{\R}[1]{\textsf{\upshape {#1}}}
\newcommand{\LF}[1]{\textrm{\upshape {#1}}}
\newcommand{\Const}[1]{\R{\upshape {#1}}}
\newcommand{\BVar}[1]{{#1}}
\newcommand{\Def}[1]{\textrm{\upshape {#1}}}
\newcommand{\rspace}{\hspace{0.5cm}}

%Syntactic categories
\newcommand{\Imp}{\supset}
\newcommand{\And}{\wedge}
\newcommand{\Or}{\vee}
\newcommand{\True}{\top}
\newcommand{\False}{\bot}
\newcommand{\Proj}[2]{\pi_{#1}({#2})}
\newcommand{\Pair}[2]{\langle{#1};{#2}\rangle}
\newcommand{\All}[1]{\forall{#1}.\,}
\newcommand{\Ex}[1]{\exists{#1}.\,}
\newcommand{\PI}[1]{\Pi{#1}.\,}
\newcommand{\LAM}[1]{\lambda{#1}.\,}
\newcommand{\Some}[1]{\mbox{\upshape some}\;{#1}\;}
\newcommand{\Block}[1]{\mbox{\upshape block}\;{#1}}
\newcommand{\Type}{\mbox{\upshape type}}
\newcommand{\Id}{\mbox{\upshape id}}
\newcommand{\Lang}[1]{{\mathcal{L}}({#1})}
\newcommand{\Fun}[1]{\Lambda{#1}.\,}
\newcommand{\Rec}[1]{\mu{#1}.\,}
\newcommand{\Unit}{\langle\rangle}
\newcommand{\Case}{\mbox{\upshape case}\;}
\newcommand{\Of}{\;\mbox{\upshape of}\;}
\newcommand{\Let}{\mbox{\upshape let}\;}
\newcommand{\In}{\;\mbox{\upshape in}\;}
\newcommand{\Fst}{\;\mbox{\upshape fst}\;}
\newcommand{\Snd}{\;\mbox{\upshape snd}\;}
\newcommand{\Left}{\mbox{\upshape left}\;}
\newcommand{\Right}{\mbox{\upshape right}\;}

% Operations
\newcommand{\New}[1]{{\nu} {#1}.\,}
\newcommand{\Bind}[1]{{\kappa} {#1}.\,}


%Judgments
\newcommand{\Kind}{\;\mbox{kind}}
\newcommand{\Ctx}{\;\mbox{ctx}}
\newcommand{\For}{\;\mbox{for}}
\newcommand{\World}{\;\mbox{world}}
\newcommand{\Sig}{\;\mbox{sig}}
\newcommand{\Strict}{\;\mbox{strict}}


\newcommand{\MLam}[1]{\Lambda {#1}.\,}
\newcommand{\Mlam}[1]{\lambda {#1}.\,}
\newcommand{\Munit}{\langle\rangle}
\newcommand{\Mlet}{\mbox{\bf let}\;}
\newcommand{\Min}{\;\mbox{\bf in}\;}
\newcommand{\Mnew}[1]{\;\mbox{\bf new}\;{#1}.\,}
\newcommand{\Mmu}[1]{\mu {#1}.\,}
\newcommand{\Mof}{\;\mbox{\bf of}\;}
\newcommand{\Mcase}{\mbox{\bf case}\;}
\newcommand{\Mtri}{\triangleright}
\newcommand{\Msel}{\mapsto}

\newcommand{\valida}[1]{\vdash {#1}}
\newcommand{\validb}[2]{{#1} \vdash {#2}}
\newcommand{\validc}[3]{{#1} \vdash_{\!_{#2}} {#3}}
\newcommand{\validC}[3]{{#1} \vdash_{\!^{#2}} {#3}}
\newcommand{\validd}[4]{{#1} \vdash^{\!^{#2}}_{\!_{#3}} {#4}}

\def\AA{{\mathcal{A}}}
\def\BB{{\mathcal{B}}}
\def\CC{{\mathcal{C}}}
\def\DD{{\mathcal{D}}}
\def\EE{{\mathcal{E}}}
\def\FF{{\mathcal{F}}}
\def\GG{{\mathcal{G}}}
\def\HH{{\mathcal{H}}}
\def\II{{\mathcal{I}}}
\def\LL{{\mathcal{L}}}
\def\MM{{\mathcal{M}}}
\def\PP{{\mathcal{P}}}
\def\RR{{\mathcal{R}}}
\def\QQ{{\mathcal{Q}}}
\def\SS{{\mathcal{S}}}
\def\TT{{\mathcal{T}}}
\def\VV{{\mathcal{V}}}

\def\uu{\underline{u}}
\def\ux{\underline{x}}
\def\uy{\underline{y}}
\def\uz{\underline{z}}

\def\xx{\mathbf{x}}
\def\yy{\mathbf{y}}
\def\zz{\mathbf{z}}
