@ciao-lang/ts-ciao-interface
Version:
Simple Ciao interface for node.
107 lines • 25.3 kB
HTML
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta name="theme-color" content="#273f79"/><link rel="stylesheet" href="lpdoc.css" type="text/css"/><script type="text/javascript" src="lpdoc.js"></script><title>Finite domain solver runtime — The Ciao System v1.22</title></head><body><div class="lpdoc-page fixleftbar"><a href="#" id="sidebar-toggle-button" class="lpdoc-navbutton"><span id="sidebar-button-arrow">☰</span></a><div id="sidebar" class="lpdoc-sidebar"><div style="height: 40px; margin-left: auto; margin-right: auto"><img src="ciao-logo_autofig.png" width=auto height=100%></div><div class="lpdoc-nav"><span class="lpdoc-on-right"><a class="lpdoc-navbutton" href="clpfd_doc.html">↑</a><a class="lpdoc-navbutton" href="clpfd_doc.html">←</a><a class="lpdoc-navbutton" href="tabling_doc.html">→</a><a class="lpdoc-navbutton" href="ciaosearch.html">🔍</a></span><span><a href="ciaofulltoc.html">TOC</a></span></div><hr></hr><ul class="lpdoc-itemize-sectpath"><li><a href="ciao.html">The Ciao System</a> »<br/> </li><li><a href="ExtendLang.html">PART IV - Language extensions</a> »<br/> </li><li><a href="clpfd_doc.html">Constraint programming over finite domains (new)</a> »<br/> </li><li><a href=""><strong>Finite domain solver runtime</strong></a></li></ul><hr></hr><em>ON THIS PAGE</em><ul><li><a href="#Usage and interface">Usage and interface</a></li><li><a href="#Documentation on exports">Documentation on exports</a></li><li><a href="#Documentation on multifiles">Documentation on multifiles</a></li><li><a href="#Documentation on imports">Documentation on imports</a></li></ul></div><div class="lpdoc-main"><div id=""><h1>Finite domain solver runtime</h1><a class="lpdoc-idx-anchor" href="ciaosearch.html#clpfd_rt"></a>
<strong>Author(s):</strong> <a class="lpdoc-idx-anchor" id="Emilio Jesus Gallego Arias" href="ciaosearch.html#Emilio Jesus Gallego Arias">Emilio Jesús Gallego Arias</a>, <a class="lpdoc-idx-anchor" id="Remy Haemmerle" href="ciaosearch.html#Remy Haemmerle">Rémy Haemmerlé</a>.<p>
This module provides Finite Domain (FD) constraints and enumerating predicates for FD variables. See <a class="lpdoc-idx-anchor" id="0" href="ciaosearch.html#clpfd_doc"><tt>clpfd_doc</tt></a> for more details about the Ciao FD solver.<p>This module provides two kinds of contraints: <em>basic constraints</em> (such as <a class="lpdoc-idx-anchor" id="1" href="#domain/3"><tt>domain/3</tt></a>, <a class="lpdoc-idx-anchor" id="2" href="#all_different/1"><tt>all_different/1</tt></a>, ...) that deal with FD variables or lists of FD variables, and <em>meta-contraints</em> (such as <a class="lpdoc-idx-anchor" id="3" href="##=/2"><tt>#=/2</tt></a>, <a class="lpdoc-idx-anchor" id="4" href="##=</2"><tt>#=</2</tt></a>, ...) that deal with arithmetic expressions over FD variables, called in the following FD expressions. Meta-constraints of this module behave as described in package <a class="lpdoc-idx-anchor" id="5" href="clpfd_doc.html"><tt>clpfd</tt></a>, except that their arguments are interpreted at run time.<p><br/><div id="Usage and interface"><h2>Usage and interface</h2><div class="lpdoc-cartouche"><ul><li><strong>Library usage:</strong><br/><tt>:- use_module(library(clpfd/clpfd_rt)).</tt><li><strong>Exports:</strong><br/><ul class="lpdoc-itemize-minus"><li><em>Predicates:</em><br/><a class="lpdoc-idx-anchor" id="6" href="modes_doc.html#in/2"><tt>in/2</tt></a>, <a class="lpdoc-idx-anchor" id="7" href="##=/2"><tt>#=/2</tt></a>, <a class="lpdoc-idx-anchor" id="8" href="##\=/2"><tt>#\=/2</tt></a>, <a class="lpdoc-idx-anchor" id="9" href="##</2"><tt>#</2</tt></a>, <a class="lpdoc-idx-anchor" id="10" href="##=</2"><tt>#=</2</tt></a>, <a class="lpdoc-idx-anchor" id="11" href="##>/2"><tt>#>/2</tt></a>, <a class="lpdoc-idx-anchor" id="12" href="##>=/2"><tt>#>=/2</tt></a>, <a class="lpdoc-idx-anchor" id="13" href="#domain/3"><tt>domain/3</tt></a>, <a class="lpdoc-idx-anchor" id="14" href="modes_doc.html#in/2"><tt>in/2</tt></a>, <a class="lpdoc-idx-anchor" id="15" href="#all_different/1"><tt>all_different/1</tt></a>, <a class="lpdoc-idx-anchor" id="16" href="#labeling/2"><tt>labeling/2</tt></a>, <a class="lpdoc-idx-anchor" id="17" href="#indomain/1"><tt>indomain/1</tt></a>, <a class="lpdoc-idx-anchor" id="18" href="#label/1"><tt>label/1</tt></a>, <a class="lpdoc-idx-anchor" id="19" href="#labeling/2"><tt>labeling/2</tt></a>, <a class="lpdoc-idx-anchor" id="20" href="#minimize/2"><tt>minimize/2</tt></a>, <a class="lpdoc-idx-anchor" id="21" href="#maximize/2"><tt>maximize/2</tt></a>, <a class="lpdoc-idx-anchor" id="22" href="#wrapper/2"><tt>wrapper/2</tt></a>.
<li><em>Regular Types:</em><br/><a class="lpdoc-idx-anchor" id="23" href="#fdvar/1"><tt>fdvar/1</tt></a>, <a class="lpdoc-idx-anchor" id="24" href="#fd_range_expr/1"><tt>fd_range_expr/1</tt></a>, <a class="lpdoc-idx-anchor" id="25" href="#fd_expr/1"><tt>fd_expr/1</tt></a>.
<li><em>Multifiles:</em><br/><a class="lpdoc-idx-anchor" id="26" href="#attr_rt:unify_hook/3"><tt>attr_rt:unify_hook/3</tt></a>, <a class="lpdoc-idx-anchor" id="27" href="#attr_rt:attribute_goals/4"><tt>attr_rt:attribute_goals/4</tt></a>.
</ul></ul></div></div><div id="Documentation on exports"><h2>Documentation on exports</h2><div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="in/2" href="ciaosearch.html#in/2">in/2</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>in(Var,Range)</tt>
</span><p>Constrains <span class="lpdoc-var">Var</span> to take its value in the domain described by <span class="lpdoc-var">Range</span>.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="28" href="#fdvar/1"><tt>clpfd_rt:fdvar/1</tt></a>)</span><span><span class="lpdoc-var">Var</span> is a variable or an integer.
</span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="29" href="#fd_range_expr/1"><tt>clpfd_rt:fd_range_expr/1</tt></a>)</span><span><span class="lpdoc-var">Range</span> is a range expression.
</span>
</ul></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">REGTYPE</span><a class="lpdoc-idx-anchor" id="fdvar/1" href="ciaosearch.html#fdvar/1">fdvar/1</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>fdvar(X)</tt>
</span><p><span class="lpdoc-var">X</span> is a variable or an integer.</p><ul class="lpdoc-itemize-minus"></ul></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">REGTYPE</span><a class="lpdoc-idx-anchor" id="fd_range_expr/1" href="ciaosearch.html#fd_range_expr/1">fd_range_expr/1</a></div><div class="lpdoc-deftext">A term denoting a range expression: <pre class="lpdoc-codeblock">fd_range_expr(I) :-
integer(I).
fd_range_expr(..(Min,Max)) :-
integer(Min),
integer(Max).
fd_range_expr(A\/B) :-
fd_range_expr(A),
fd_range_expr(B).
</pre> an integer stands for a singleton range, <span class="lpdoc-var">Min..Max</span> for the closed interval from <span class="lpdoc-var">Min</span> to <span class="lpdoc-var">Max</span>, and <span class="lpdoc-var">A\/B</span> for the union of ranges <span class="lpdoc-var">A</span> and <span class="lpdoc-var">B</span>. Range expressions are used by the <a class="lpdoc-idx-anchor" id="30" href="modes_doc.html#in/2"><tt>in/2</tt></a> predciate.<p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>fd_range_expr(Expr)</tt>
</span><p><span class="lpdoc-var">Expr</span> is a range expression.</p><ul class="lpdoc-itemize-minus"></ul></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">REGTYPE</span><a class="lpdoc-idx-anchor" id="fd_expr/1" href="ciaosearch.html#fd_expr/1">fd_expr/1</a></div><div class="lpdoc-deftext">A term denoting an arithmetic expression over FD variables: <pre class="lpdoc-codeblock">fd_expr(Var) :-
var(Var).
fd_expr(I*Exp) :-
int(I),
fd_expr(Exp).
fd_expr(Exp*I) :-
int(I),
fd_expr(Exp).
fd_expr(Exp1+Exp2) :-
fd_expr(Exp1),
fd_expr(Exp2).
fd_expr(Exp1-Exp2) :-
fd_expr(Exp1),
fd_expr(Exp2).
fd_expr(-Exp) :-
fd_expr(Exp).
</pre> FD expressions are used by meta-constraints.<p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>fd_expr(Expr)</tt>
</span><p><span class="lpdoc-var">Expr</span> is an FD expression.</p><ul class="lpdoc-itemize-minus"></ul></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="#=/2" href="ciaosearch.html##=/2">#=/2</a></div><div class="lpdoc-deftext">Meta-constraint "equal".<p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>#=(A,B)</tt>
</span><p>Constrains the interpretation of <span class="lpdoc-var">A</span> to be equal to the interpretation of <span class="lpdoc-var">B</span>.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="31" href="#fd_expr/1"><tt>clpfd_rt:fd_expr/1</tt></a>)</span><span><span class="lpdoc-var">A</span> is an FD expression.
</span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="32" href="#fd_expr/1"><tt>clpfd_rt:fd_expr/1</tt></a>)</span><span><span class="lpdoc-var">B</span> is an FD expression.
</span>
</ul></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="#\=/2" href="ciaosearch.html##\=/2">#\=/2</a></div><div class="lpdoc-deftext">Meta-constraint "not equal".<p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>#\=(A,B)</tt>
</span><p>Constrains the interpretation of <span class="lpdoc-var">A</span> to be different from the interpretation of <span class="lpdoc-var">B</span></p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="33" href="#fd_expr/1"><tt>clpfd_rt:fd_expr/1</tt></a>)</span><span><span class="lpdoc-var">A</span> is an FD expression.
</span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="34" href="#fd_expr/1"><tt>clpfd_rt:fd_expr/1</tt></a>)</span><span><span class="lpdoc-var">B</span> is an FD expression.
</span>
</ul></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="#</2" href="ciaosearch.html##</2">#</2</a></div><div class="lpdoc-deftext">Meta-constraint "smaller than".<p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>#<(A,B)</tt>
</span><p>Constrains the interpretation of <span class="lpdoc-var">A</span> to be smaller than the interpretation of <span class="lpdoc-var">B</span>.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="35" href="#fd_expr/1"><tt>clpfd_rt:fd_expr/1</tt></a>)</span><span><span class="lpdoc-var">A</span> is an FD expression.
</span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="36" href="#fd_expr/1"><tt>clpfd_rt:fd_expr/1</tt></a>)</span><span><span class="lpdoc-var">B</span> is an FD expression.
</span>
</ul></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="#=</2" href="ciaosearch.html##=</2">#=</2</a></div><div class="lpdoc-deftext">Meta-constraint "smaller or equal".<p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>#=<(A,B)</tt>
</span><p>Constrains <span class="lpdoc-var">A</span> to be smaller or equal to <span class="lpdoc-var">B</span>.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="37" href="#fd_expr/1"><tt>clpfd_rt:fd_expr/1</tt></a>)</span><span><span class="lpdoc-var">A</span> is an FD expression.
</span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="38" href="#fd_expr/1"><tt>clpfd_rt:fd_expr/1</tt></a>)</span><span><span class="lpdoc-var">B</span> is an FD expression.
</span>
</ul></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="#>/2" href="ciaosearch.html##>/2">#>/2</a></div><div class="lpdoc-deftext">Meta-constraint "greater than".<p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>#>(A,B)</tt>
</span><p>Constrains the interpretation of <span class="lpdoc-var">A</span> to be greater than the interpretation of <span class="lpdoc-var">B</span>.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="39" href="#fd_expr/1"><tt>clpfd_rt:fd_expr/1</tt></a>)</span><span><span class="lpdoc-var">A</span> is an FD expression.
</span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="40" href="#fd_expr/1"><tt>clpfd_rt:fd_expr/1</tt></a>)</span><span><span class="lpdoc-var">B</span> is an FD expression.
</span>
</ul></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="#>=/2" href="ciaosearch.html##>=/2">#>=/2</a></div><div class="lpdoc-deftext">Meta-constraint "greater or equal".<p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>#>=(A,B)</tt>
</span><p>Constrains the interpretation of <span class="lpdoc-var">A</span> to be greater or equal than the interpretation of <span class="lpdoc-var">B</span>.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="41" href="#fd_expr/1"><tt>clpfd_rt:fd_expr/1</tt></a>)</span><span><span class="lpdoc-var">A</span> is an FD expression.
</span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="42" href="#fd_expr/1"><tt>clpfd_rt:fd_expr/1</tt></a>)</span><span><span class="lpdoc-var">B</span> is an FD expression.
</span>
</ul></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="domain/3" href="ciaosearch.html#domain/3">domain/3</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>domain(Vars,Min,Max)</tt>
</span><p>Constrains each element of <span class="lpdoc-var">Vars</span> to take its value between <span class="lpdoc-var">Min</span> and <span class="lpdoc-var">Max</span> (included). This predicate is generally used to set the initial domain of an interval</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="43" href="basic_props.html#list/2"><tt>basic_props:list/2</tt></a>)</span><span><span class="lpdoc-var">Vars</span> is a list of <span class="lpdoc-var">fdvar</span>s.
</span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="44" href="basic_props.html#int/1"><tt>basic_props:int/1</tt></a>)</span><span><span class="lpdoc-var">Min</span> is an integer.
</span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="45" href="basic_props.html#int/1"><tt>basic_props:int/1</tt></a>)</span><span><span class="lpdoc-var">Max</span> is an integer.
</span>
</ul></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="in/2" href="ciaosearch.html#in/2">in/2</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>in(Var,Range)</tt>
</span><p>Constrains <span class="lpdoc-var">Var</span> to take its value in the domain described by <span class="lpdoc-var">Range</span>.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="46" href="#fdvar/1"><tt>clpfd_rt:fdvar/1</tt></a>)</span><span><span class="lpdoc-var">Var</span> is a variable or an integer.
</span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="47" href="#fd_range_expr/1"><tt>clpfd_rt:fd_range_expr/1</tt></a>)</span><span><span class="lpdoc-var">Range</span> is a range expression.
</span>
</ul></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="all_different/1" href="ciaosearch.html#all_different/1">all_different/1</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>all_different(Vars)</tt>
</span><p>Constrains all elements in <span class="lpdoc-var">Vars</span> to take distinct values. This is equivalent to posting an inequality constraint for each pair of variables. This constraint is triggered when a variable becomes ground, removing its value from the domain of the other variables.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="48" href="basic_props.html#list/2"><tt>basic_props:list/2</tt></a>)</span><span><span class="lpdoc-var">Vars</span> is a list of <span class="lpdoc-var">fdvar</span>s.
</span>
</ul></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="labeling/2" href="ciaosearch.html#labeling/2">labeling/2</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>labeling(Options,Vars)</tt>
</span><p>Assigns a value to each variable in <span class="lpdoc-var">Vars</span> according to the labeling options given by <span class="lpdoc-var">Options</span>. This predicate is re-executable on backtracking.<p>The different options are : <ul> <p><li><span class="lpdoc-var">[]</span>: the leftmost variables is selected first. Its values are enumerating from the smallest to the greatest.<p><li><span class="lpdoc-var">[ff]</span>: the variable with the smallest number of elements in its domain is selected first. Its values are then enumerated from the smallest to the greatest.<p><li><span class="lpdoc-var">[step]</span>: the variable with the smallest number of elements in its domain is selected first. The minimal value of the domainis assigned, on bactracking the value is pruned form the domain and a new variable is selected.<p></ul> </p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="49" href="basic_props.html#list/2"><tt>basic_props:list/2</tt></a>)</span><span><span class="lpdoc-var">Vars</span> is a list of <span class="lpdoc-var">fdvar</span>s.
</span>
</ul></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="indomain/1" href="ciaosearch.html#indomain/1">indomain/1</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.</div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="label/1" href="ciaosearch.html#label/1">label/1</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.</div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="labeling/2" href="ciaosearch.html#labeling/2">labeling/2</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>labeling(Options,Vars)</tt>
</span><p>Assigns a value to each variable in <span class="lpdoc-var">Vars</span> according to the labeling options given by <span class="lpdoc-var">Options</span>. This predicate is re-executable on backtracking.<p>The different options are : <ul> <p><li><span class="lpdoc-var">[]</span>: the leftmost variables is selected first. Its values are enumerating from the smallest to the greatest.<p><li><span class="lpdoc-var">[ff]</span>: the variable with the smallest number of elements in its domain is selected first. Its values are then enumerated from the smallest to the greatest.<p><li><span class="lpdoc-var">[step]</span>: the variable with the smallest number of elements in its domain is selected first. The minimal value of the domainis assigned, on bactracking the value is pruned form the domain and a new variable is selected.<p></ul> </p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="50" href="basic_props.html#list/2"><tt>basic_props:list/2</tt></a>)</span><span><span class="lpdoc-var">Vars</span> is a list of <span class="lpdoc-var">fdvar</span>s.
</span>
</ul></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="minimize/2" href="ciaosearch.html#minimize/2">minimize/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
<em>Meta-predicate</em> with arguments: <tt>minimize(goal,?)</tt>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="maximize/2" href="ciaosearch.html#maximize/2">maximize/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
<em>Meta-predicate</em> with arguments: <tt>maximize(goal,?)</tt>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="wrapper/2" href="ciaosearch.html#wrapper/2">wrapper/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.</div></div><p>
</div><div id="Documentation on multifiles"><h2>Documentation on multifiles</h2><div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="attr_rt:unify_hook/3" href="ciaosearch.html#attr_rt:unify_hook/3">attr_rt:unify_hook/3</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="attr_rt:attribute_goals/4" href="ciaosearch.html#attr_rt:attribute_goals/4">attr_rt:attribute_goals/4</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
</div><div id="Documentation on imports"><h2>Documentation on imports</h2>This module has the following direct dependencies:<ul class="lpdoc-itemize-minus"><li><em>System library modules:</em><br/><a class="lpdoc-idx-anchor" id="51" href="ciaosearch.html#clpfd_debug_rt"><tt>clpfd_debug_rt</tt></a>, <a class="lpdoc-idx-anchor" id="52" href="ciaosearch.html#fd_term"><tt>fd_term</tt></a>, <a class="lpdoc-idx-anchor" id="53" href="ciaosearch.html#fd_constraints"><tt>fd_constraints</tt></a>, <a class="lpdoc-idx-anchor" id="54" href="ciaosearch.html#fd_labeling"><tt>fd_labeling</tt></a>, <a class="lpdoc-idx-anchor" id="55" href="ciaosearch.html#fd_optim"><tt>fd_optim</tt></a>, <a class="lpdoc-idx-anchor" id="56" href="attr_rt.html"><tt>attr_rt</tt></a>.
<li><em>Packages:</em><br/><a class="lpdoc-idx-anchor" id="57" href="ciaosearch.html#prelude"><tt>prelude</tt></a>, <a class="lpdoc-idx-anchor" id="58" href="ciaosearch.html#initial"><tt>initial</tt></a>, <a class="lpdoc-idx-anchor" id="59" href="condcomp_doc.html"><tt>condcomp</tt></a>, <a class="lpdoc-idx-anchor" id="60" href="assertions_doc.html"><tt>assertions</tt></a>, <a class="lpdoc-idx-anchor" id="61" href="ciaosearch.html#assertions/assertions_basic"><tt>assertions/assertions_basic</tt></a>, <a class="lpdoc-idx-anchor" id="62" href="regtypes_doc.html"><tt>regtypes</tt></a>, <a class="lpdoc-idx-anchor" id="63" href="fsyntax_doc.html"><tt>fsyntax</tt></a>, <a class="lpdoc-idx-anchor" id="64" href="dcg_doc.html"><tt>dcg</tt></a>, <a class="lpdoc-idx-anchor" id="65" href="ciaosearch.html#clpfd/clpfd_debug"><tt>clpfd/clpfd_debug</tt></a>, <a class="lpdoc-idx-anchor" id="66" href="ciaosearch.html#clpfd/clpfd_options"><tt>clpfd/clpfd_options</tt></a>, <a class="lpdoc-idx-anchor" id="67" href="attr_doc.html"><tt>attr</tt></a>.
</ul></div></div><div class="lpdoc-footer">Generated with LPdoc using Ciao</div></div><div class="lpdoc-clearer"></div></div></body></html>