% General math overrides
\renewcommand*{\implies}{\rightarrow}

% Academic writing
\newcommand*{\eg}{e.g.,\xspace}
\newcommand*{\ie}{i.e.,\xspace}
\newcommand*{\wrt}{w.r.t.\xspace}

% Glossary entries
\newcommand*{\Cmls}{\Glspl{cml}}
\newcommand*{\cmls}{\glspl{cml}}
\newcommand*{\cml}{\gls{cml}}
\newcommand*{\compiler}{\gls{compiler}\xspace}
\newcommand*{\constraint}{\gls{constraint}\xspace}
\newcommand*{\Constraint}{\Gls{constraint}\xspace}
\newcommand*{\constraints}{\glspl{constraint}\xspace}
\newcommand*{\Constraints}{\Glspl{constraint}\xspace}
\newcommand*{\domain}{\gls{domain}\xspace}
\newcommand*{\domains}{\glspl{domain}\xspace}
\newcommand*{\flatzinc}{\gls{flatzinc}\xspace}
\newcommand*{\interpreter}{\gls{interpreter}\xspace}
\newcommand*{\instance}{\gls{instance}\xspace}
\newcommand*{\instances}{\glspl{instance}\xspace}
\newcommand*{\microzinc}{\gls{microzinc}\xspace}
\newcommand*{\minisearch}{\gls{minisearch}\xspace}
\newcommand*{\minizinc}{\gls{minizinc}\xspace}
\newcommand*{\cmodel}{\gls{model}\xspace}
\newcommand*{\cmodels}{\glspl{model}\xspace}
\newcommand*{\nanozinc}{\gls{nanozinc}\xspace}
\newcommand*{\prbpar}{\gls{prb-par}\xspace}
\newcommand*{\prbpars}{\glspl{prb-par}\xspace}
\newcommand*{\parameters}{\glspl{parameter}\xspace}
\newcommand*{\parameter}{\gls{parameter}\xspace}
\newcommand*{\solvers}{\glspl{solver}\xspace}
\newcommand*{\solver}{\gls{solver}\xspace}
\newcommand*{\Solvers}{\Glspl{solver}\xspace}
\newcommand*{\Solver}{\Gls{solver}\xspace}
\newcommand*{\variable}{\gls{variable}\xspace}
\newcommand*{\Variable}{\Gls{variable}\xspace}
\newcommand*{\variables}{\glspl{variable}\xspace}
\newcommand*{\Variables}{\Glspl{variable}\xspace}
\newcommand*{\zinc}{\gls{zinc}\xspace}

% Semantic syntax (rewriting)
\renewcommand{\phi}{\varphi}
\newcommand*{\tuple}[1]{\ensuremath{\langle #1 \rangle}}
\newcommand*{\Prog}{\ensuremath{\mathcal{P}}}
\newcommand*{\Ctx}{\ensuremath{\phi}}
\newcommand*{\Env}{\ensuremath{\sigma}}
\newcommand*{\Sem}[2]{\ptinline{[\!\![#1]\!\!]\tuple{#2}}}
\newcommand*{\Cbind}{\ensuremath{\wedge}}

% Context syntax (half-reification)
\newcommand*{\rootc}{\gls{root}}
\newcommand*{\posc}{\gls{pos}}
\newcommand*{\negc}{\gls{neg}}
\newcommand*{\mixc}{\gls{mix}}
\newcommand*{\mayberootc}{\textit{root?}}
\newcommand*{\changepos}{\ensuremath{+}}
\newcommand*{\changeneg}{\ensuremath{-}}

% Context analysis syntax
\newcommand*{\ctxeval}[2]{\ensuremath{\mathbb{M}\left(#2\right)\left\|~#1~\right\|}}
\newcommand*{\ctxfunc}[2]{\ensuremath{\mathbb{F}\left(#2\right)\left\|~#1~\right\|}}
\newcommand*{\ctxitem}[1]{\ensuremath{\mathbb{m}\left\|~#1~\right\|}}
