\newcommand{\eg}{e.g.,\xspace{}}
\newcommand{\ie}{i.e.,\xspace{}}

\newcommand{\cmls}{\gls{constraint-modelling} languages\xspace{}}
\newcommand{\cml}{\gls{constraint-modelling} language\xspace{}}
\newcommand{\constraints}{\glspl{constraint}\xspace{}}
\newcommand{\constraint}{\gls{constraint}\xspace{}}
\newcommand{\flatzinc}{\gls{flatzinc}\xspace{}}
\newcommand{\microzinc}{\gls{microzinc}\xspace{}}
\newcommand{\minisearch}{\gls{minisearch}\xspace{}}
\newcommand{\minizinc}{\gls{minizinc}\xspace{}}
\newcommand{\nanozinc}{\gls{nanozinc}\xspace{}}
\newcommand{\parameters}{\glspl{parameter}\xspace{}}
\newcommand{\parameter}{\gls{parameter}\xspace{}}
\newcommand{\solvers}{\glspl{solver}\xspace{}}
\newcommand{\solver}{\gls{solver}\xspace{}}
\newcommand{\variables}{\glspl{variable}\xspace{}}
\newcommand{\variable}{\gls{variable}\xspace{}}
\newcommand{\zinc}{\gls{zinc}\xspace{}}

% Semantic shorthands (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 shorthands (half-reification)
\newcommand{\rootc}{\textit{root}}
\newcommand{\posc}{\textit{pos}}
\newcommand{\negc}{\textit{neg}}
\newcommand{\mixc}{\textit{mix}}
\newcommand{\changepos}{\ensuremath{+}}
\newcommand{\changeneg}{\ensuremath{-}}

\newcommand{\undefined}{\ensuremath{\bot}}
