\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}}