### A.9.1 Solver predicates

The following predicates are provided to work with constraints:**{}**(`+Constraints`)- Adds the constraints given by
`Constraints`to the constraint store. **entailed**(`+Constraint`)- Succeeds if
`Constraint`is necessarily true within the current constraint store. This means that adding the negation of the constraint to the store results in failure. **inf**(`+Expression, -Inf`)- Computes the infimum of
`Expression`within the current state of the constraint store and returns that infimum in`Inf`. This predicate does not change the constraint store. **sup**(`+Expression, -Sup`)- Computes the supremum of
`Expression`within the current state of the constraint store and returns that supremum in`Sup`. This predicate does not change the constraint store. **minimize**(`+Expression`)- Minimizes
`Expression`within the current constraint store. This is the same as computing the infimum and equating the expression to that infimum. **maximize**(`+Expression`)- Maximizes
`Expression`within the current constraint store. This is the same as computing the supremum and equating the expression to that supremum. **bb_inf**(`+Ints, +Expression, -Inf, -Vertex, +Eps`)- This predicate is offered in CLP(R) only. It computes the infimum of
`Expression`within the current constraint store, with the additional constraint that in that infimum, all variables in`Ints`have integral values.`Vertex`will contain the values of`Ints`in the infimum.`Eps`denotes how much a value may differ from an integer to be considered an integer. E.g. when`Eps`= 0.001, then X = 4.999 will be considered as an integer (5 in this case).`Eps`should be between 0 and 0.5. **bb_inf**(`+Ints, +Expression, -Inf, -Vertex`)- This predicate is offered in CLP(Q) only. It behaves the same as bb_inf/5 but does not use an error margin.
**bb_inf**(`+Ints, +Expression, -Inf`)- The same as bb_inf/5 or bb_inf/4 but without returning the values of the integers. In CLP(R), an error margin of 0.001 is used.
**dump**(`+Target, +Newvars, -CodedAnswer`)- Returns the constraints on
`Target`in the list`CodedAnswer`where all variables of`Target`have been replaced by`NewVars`. This operation does not change the constraint store. E.g. indump([X,Y,Z],[x,y,z],Cons)

`Cons`

will contain the constraints on X, Y and Z, where these variables have been replaced by atoms x, y and z.