Fix last errors spotted by Guido

+1
.vscode/ltex.dictionary.en-GB.txt
··· 53 53 Schutt 54 54 Banda 55 55 Gange 56 + Half-Reifications
+9
.vscode/ltex.hiddenFalsePositives.en-GB.txt
··· 382 382 {"rule":"MORFOLOGIK_RULE_EN_GB","sentence":"^\\QThe function [fontsize=]minizinc set2bool is used to transform the set decision variable into an array of Boolean variables that represent whether an element is present in the set.\\E$"} 383 383 {"rule":"EN_A_VS_AN","sentence":"^\\QAn \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q graph \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q where chained implications have been removed.\\E$"} 384 384 {"rule":"EN_A_VS_AN","sentence":"^\\QAn expression \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q can be \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q when every to the \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q is also a if \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q is replaced by \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q.\\E$"} 385 + {"rule":"UPPERCASE_SENTENCE_START","sentence":"^\\Qscip name=SCIP, description=A well-known open source MIP \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q.,\\E$"} 386 + {"rule":"UPPERCASE_SENTENCE_START","sentence":"^\\Qsicstus name=SICStus Prolog, description=A well-known implementation of the Prolog CLP language and constraint modelling environment \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q.,\\E$"} 387 + {"rule":"MORFOLOGIK_RULE_EN_GB","sentence":"^\\Qgls-opl name=optimization modelling language (OPL), description=A \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q aimed at combining the powers of mathematical programming and CP.\\E$"} 388 + {"rule":"MORFOLOGIK_RULE_EN_GB","sentence":"^\\Qopenwbo name=OpenWBO, description=A well-known MaxSAT \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q.,\\E$"} 389 + {"rule":"UPPERCASE_SENTENCE_START","sentence":"^\\Qcplex name=CPLEX, description=A well-known proprietary MIP \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q developed by IBM \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q.,\\E$"} 390 + {"rule":"UPPERCASE_SENTENCE_START","sentence":"^\\Qaccap amaze city-position community-detection depot-placement freepizza groupsplitter kidney-exchange multi-knapsack nonogram nside rcpsp-wet road-cons roster stack-cuttingstock steelmillslab triangular\\E$"} 391 + {"rule":"UPPERCASE_SENTENCE_START","sentence":"^\\Qaccap amaze code-generator fox-geese-corn groupsplitter hrc kidney-exchange liner-sf-repositioning lot-sizing median-string multi-knapsack nside ptv rcpsp-wet-diverse rotating-workforce stack-cuttingstock steelmillslab stochastic-vrp triangular zephyrus\\E$"} 392 + {"rule":"UPPERCASE_SENTENCE_START","sentence":"^\\Qbnn-planner cabletreewiring code-generator collaborative-construction gbac hoist-benchmark is lot-sizing minimal-decision-sets p1f-pjs pentominoes pillars-and-planks racp radiation sdn-change skill-allocation soccer-computational stable-goods towerchallenge whirlpool\\E$"} 393 + {"rule":"UPPERCASE_SENTENCE_START","sentence":"^\\Qgbac radiation steelmillslab rcpsp-wet\\E$"}
+1 -1
assets/listing/rew_elem_safe.mzn
··· 12 12 % Otherwise, give xs the value m instead to avoid a free variable 13 13 constraint not total -> xs = m; 14 14 % element constraint that is guaranteed to be total 15 - tuple(var bool, var int): res = (total, element(a, xs)); 15 + tuple(var bool, var int): ret = (total, element(a, xs)); 16 16 } in ret;
+1 -1
chapters/3_rewriting.tex
··· 72 72 Function declarations without an expression body are used to mark functions that are \gls{native} to the target \solver{}. 73 73 We have omitted the definitions of \syntax{<mzn-type-inst>} and \syntax{<ident>}, which can be assumed to be the same as the definition of \syntax{<type-inst>} and \syntax{<ident>} in the \minizinc{} grammar, see \cref{ch:minizinc-grammar}. 74 74 While we omit the typing rules here for space reasons, we will assume that in well-typed \microzinc{} programs conditions of expressions are \parameters{}. 75 - This means that the where conditions \syntax{<exp>} in \glspl{comprehension}, the conditions \syntax{<exp>} in \gls{conditional} expressions, and the \syntax{<literal>} index in \gls{array} accesses must have parametric type. 75 + This means that the where conditions \syntax{<exp>} in \glspl{comprehension}, the conditions \syntax{<exp>} in \gls{conditional} expressions, and the \syntax{<literal>} index in \gls{array} accesses must have \mzninline{par} type. 76 76 In \minizinc{} the use of \variables{} in these positions is allowed, and these expressions are rewritten to function calls. 77 77 We will discuss how the same transformation takes place when translating \minizinc{} to \microzinc{}. 78 78
+3 -3
chapters/4_half_reif.tex
··· 65 65 \end{mzn} 66 66 67 67 However, independent of the value of \mzninline{x = 5}, if \mzninline{y = 5} takes the value \true{}, then it can never make the disjunction \false{}. 68 - Therefore, all \glspl{sol} is still a \gls{sol} when \mzninline{y = 5} (or \mzninline{x = 5}) is replaced by \true{}. 68 + Therefore, all \glspl{sol} are still \glspl{sol} when \mzninline{y = 5} (or \mzninline{x = 5}) is replaced by \true{}. 69 69 Consequently, this means using \gls{half-reif} is \gls{eqsat}. 70 70 \Gls{rewriting} using \gls{half-reif} will result in the following model. 71 71 ··· 90 90 \end{mzn} 91 91 92 92 Making the left-hand side of the \constraint{} larger will only ever help satisfy the \constraint{}. 93 - This means that all \glspl{sol} will still be \glspl{sol} if any expression \mzninline{x = 5} is replaced by \true{}. 93 + This means that all \glspl{sol} will still be \glspl{sol} if any expression \mzninline{x = 5} is replaced by \true{}. 94 94 Similar to \cref{ex:hr-disjunction}, the \gls{rewriting} process can thus use \glspl{half-reif} instead of \glspl{reif} for the \mzninline{x = 5} expressions. 95 95 \end{example} 96 96 ··· 247 247 Similarly, in \negc{} context we can make the \gls{propagator} \mzninline{b -> pred(@...@)} run at the lowest priority. 248 248 This means that the \glspl{cvar} are still \gls{fixed} at the same time, but there is less overhead. 249 249 250 - In \cref{sec:half-experiments} we assess \glspl{propagator} implementations for the \glspl{half-reif} of \mzninline{all_different} and \mzninline{element} based on these principles. 250 + In \cref{sec:half-experiments} we assess \gls{propagator} implementations for the \glspl{half-reif} of \mzninline{all_different} and \mzninline{element} based on these principles. 251 251 252 252 \section{Decomposition and Half-Reification}% 253 253 \label{sec:half-decomposition}