Index: /reasoner/reasoner.tex
===================================================================
--- /reasoner/reasoner.tex	(revision 64)
+++ /reasoner/reasoner.tex	(revision 65)
@@ -432,4 +432,6 @@
 If there is finally a default value expression to be recorded in the constraint base, we have to distinguish whether the actual variable is a constraint variable or an usual variable. In the first case, we apply Algorithm \ref{algCreateConstraintVariableConstraint} (cf. Section \ref{sectConstraintVariables}). In the second case, we turn the default value expression into an assignment expression, through the compound accessor if it currently represents \IVML{self}, or the variable. Then, we substitute \IVML{self} and the actual variable mapping on the complete constraint expression and turn the result into a default constraint. We either either it to $\deferredDefaultConstraints$ if the constraint may override a complete value assignment (\IVML{self} is used referring to another variable in the same compound or $d$ is an overridden slot that may accidentally be overriden by a complex compound value) or in all other cases to the usual default constraints set $\defaultConstraints$.
 
+Adding constraints or sets of constraints to the constraint base involves constraint filtering. We will discuss these operations in Section \ref{sectContainerBase}.
+
 \begin{algorithm}[H]
   \SetAlgoLined
@@ -697,4 +699,36 @@
 
 
+\subsection{Constraint variables}\label{sectConstraintVariables}
+
+Constraint variables can be created by taking the respective default/actual variable, performing the variable substitution with $\variableMapping$ and, if available, a respective value for \IVMLself, turning the resulting expression into a constraint and adding it to the set of other constraints $\otherConstraints$. Moreover, the relationship between the underlying variable $v$ and the constraint must be recorded for efficient update of the constraint base upon value change (cf. Algorithm \ref{algVarChange}).
+
+\begin{algorithm}[H]
+  \SetAlgoLined
+  \KwIn{constraint expression $c$, actual value for \IVMLself $s$, variable $v$}
+  \KwData{other constraints $\otherConstraints$, relevant constraints $\relevantConstraints$}
+
+      $c \assng \createConstraint{\varSubstitutionSelfVarMapping{c}{s}}$\;
+      $add(\otherConstraints, \set{c}, true)$\;
+      \MISSING{map v to c for dynamic value type change}\;
+      $\relevantConstraints \assng \relevantConstraints \addMap \mapEntry{c}{v}$
+      
+      
+      %    $add(\otherConstraints, \set{\createConstraint{\varSubstitutionSelfVarMapping{default(s)}{d}}}, true)$\;
+                  %$add(\otherConstraints, \createConstraint{dflt}, true)$\;
+                  %$\relevantConstraints \assng \relevantConstraints \addMap \mapEntry{\createConstraint{dflt}}{v}$
+
+
+      %\If{$isConstraint(type(s)) \wedge default(s) \neq \undef$}{
+      %}
+
+%  $cs \assng \bigcup_{t \in allBase(t} constraints(t)$\;
+%  $add(\topLevelConstraints, \setWith{\createConstraint{\closedCases{d, & \text{if } ca = \undef \\ ca, &\text{else}}\rightarrow\IVML{forAll}(i|\text{ }\varSubstitution{c}{decl(c)=d})}}{c \in cs}, true)$\;
+ \caption{Creating constraints for constraint variables (\IVML{createConstraintVariableConstraint}).}\label{algCreateConstraintVariableConstraint}
+\end{algorithm}
+
+
+\subsection{Constraint base operations}\label{sectContainerBase}
+
+
 \begin{algorithm}[H]
   \KwIn{constraint sequence $s$, constraint $c$, perform initializers $check$}
@@ -737,32 +771,4 @@
   }
  \caption{Records and analyzes a constraint sequence.}\label{algAddConstraints}
-\end{algorithm}
-
-\subsection{Constraint variables}\label{sectConstraintVariables}
-
-Constraint variables can be created by taking the respective default/actual variable, performing the variable substitution with $\variableMapping$ and, if available, a respective value for \IVMLself, turning the resulting expression into a constraint and adding it to the set of other constraints $\otherConstraints$. Moreover, the relationship between the underlying variable $v$ and the constraint must be recorded for efficient update of the constraint base upon value change (cf. Algorithm \ref{algVarChange}).
-
-\begin{algorithm}[H]
-  \SetAlgoLined
-  \KwIn{constraint expression $c$, actual value for \IVMLself $s$, variable $v$}
-  \KwData{other constraints $\otherConstraints$, relevant constraints $\relevantConstraints$}
-
-      $c \assng \createConstraint{\varSubstitutionSelfVarMapping{c}{s}}$\;
-      $add(\otherConstraints, \set{c}, true)$\;
-      \MISSING{map v to c for dynamic value type change}\;
-      $\relevantConstraints \assng \relevantConstraints \addMap \mapEntry{c}{v}$
-      
-      
-      %    $add(\otherConstraints, \set{\createConstraint{\varSubstitutionSelfVarMapping{default(s)}{d}}}, true)$\;
-                  %$add(\otherConstraints, \createConstraint{dflt}, true)$\;
-                  %$\relevantConstraints \assng \relevantConstraints \addMap \mapEntry{\createConstraint{dflt}}{v}$
-
-
-      %\If{$isConstraint(type(s)) \wedge default(s) \neq \undef$}{
-      %}
-
-%  $cs \assng \bigcup_{t \in allBase(t} constraints(t)$\;
-%  $add(\topLevelConstraints, \setWith{\createConstraint{\closedCases{d, & \text{if } ca = \undef \\ ca, &\text{else}}\rightarrow\IVML{forAll}(i|\text{ }\varSubstitution{c}{decl(c)=d})}}{c \in cs}, true)$\;
- \caption{Creating constraints for constraint variables (\IVML{createConstraintVariableConstraint}).}\label{algCreateConstraintVariableConstraint}
 \end{algorithm}
 
