<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <link rel="stylesheet" href="style.css" type="text/css"> <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"> <link rel="Start" href="index.html"> <link rel="previous" href="Fcl_var.html"> <link rel="next" href="Fcl_invariant.html"> <link rel="Up" href="index.html"> <link title="Index of types" rel=Appendix href="index_types.html"> <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> <link title="Index of values" rel=Appendix href="index_values.html"> <link title="Index of modules" rel=Appendix href="index_modules.html"> <link title="Index of module types" rel=Appendix href="index_module_types.html"> <link title="Fcl_genesis" rel="Chapter" href="Fcl_genesis.html"> <link title="Fcl_debug" rel="Chapter" href="Fcl_debug.html"> <link title="Fcl_misc" rel="Chapter" href="Fcl_misc.html"> <link title="Fcl_float" rel="Chapter" href="Fcl_float.html"> <link title="Fcl_stak" rel="Chapter" href="Fcl_stak.html"> <link title="Fcl_domain" rel="Chapter" href="Fcl_domain.html"> <link title="Fcl_setDomain" rel="Chapter" href="Fcl_setDomain.html"> <link title="Fcl_data" rel="Chapter" href="Fcl_data.html"> <link title="Fcl_cstr" rel="Chapter" href="Fcl_cstr.html"> <link title="Fcl_var" rel="Chapter" href="Fcl_var.html"> <link title="Fcl_reify" rel="Chapter" href="Fcl_reify.html"> <link title="Fcl_invariant" rel="Chapter" href="Fcl_invariant.html"> <link title="Fcl_boolean" rel="Chapter" href="Fcl_boolean.html"> <link title="Fcl_alldiff" rel="Chapter" href="Fcl_alldiff.html"> <link title="Fcl_linear" rel="Chapter" href="Fcl_linear.html"> <link title="Fcl_nonlinear" rel="Chapter" href="Fcl_nonlinear.html"> <link title="Fcl_expr" rel="Chapter" href="Fcl_expr.html"> <link title="Fcl_arith" rel="Chapter" href="Fcl_arith.html"> <link title="Fcl_interval" rel="Chapter" href="Fcl_interval.html"> <link title="Fcl_gcc" rel="Chapter" href="Fcl_gcc.html"> <link title="Fcl_fdArray" rel="Chapter" href="Fcl_fdArray.html"> <link title="Fcl_conjunto" rel="Chapter" href="Fcl_conjunto.html"> <link title="Fcl_sorting" rel="Chapter" href="Fcl_sorting.html"> <link title="Fcl_goals" rel="Chapter" href="Fcl_goals.html"> <link title="Fcl_opti" rel="Chapter" href="Fcl_opti.html"> <link title="Facile" rel="Chapter" href="Facile.html"><title>Fcl_reify</title> </head> <body> <div class="navbar"><a class="pre" href="Fcl_var.html" title="Fcl_var">Previous</a> <a class="up" href="index.html" title="Index">Up</a> <a class="post" href="Fcl_invariant.html" title="Fcl_invariant">Next</a> </div> <h1>Module <a href="type_Fcl_reify.html">Fcl_reify</a></h1> <pre><span class="keyword">module</span> Fcl_reify: <code class="code">sig</code> <a href="Fcl_reify.html">..</a> <code class="code">end</code></pre><div class="info module top"> Constraints Reification<br> </div> <hr width="100%"> <br> All the reification functions and operators only work on <b>reifiable</b> constraints, i.e. constraints endowed with a <code class="code">check</code> function <b>and</b> a <code class="code">not</code> function (or built-in constraints for which the documentation does not mention "Not reifiable"). Otherwise a <code class="code">Failure</code> (fatal error) exception is raised.<br> <pre><span id="VALboolean"><span class="keyword">val</span> boolean</span> : <code class="type">?delay_on_negation:bool -> <a href="Fcl_cstr.html#TYPEt">Fcl_cstr.t</a> -> Fcl_var.Fd.t</code></pre><div class="info "> <code class="code">boolean ~delay_on_negation:true c</code> returns a boolean (0..1) variable associated to the constraint <code class="code">c</code>. The constraint is satisfied iff the boolean variable is instantiated to 1. Conversely, its negation is satisfied iff it is instantiated to 0. The waking conditions of the contraint relating <code class="code">c</code> and the boolean variable are the ones set by the <code class="code">delay</code> function of <code class="code">c</code> (set by the <code class="code">delay</code> argument of <code class="code">Cstr.create</code>). If the optional argument <code class="code">delay_on_negation</code> is set to <code class="code">true</code>, the new constraint is also attached to the events that awake the negation of <code class="code">c</code> (i.e. the constraint returned by the <code class="code">not</code> function of <code class="code">c</code>), otherwise it is not. <code class="code">delay_on_negation</code> default value is <code class="code">true</code>.<br> </div> <pre><span id="VALcstr"><span class="keyword">val</span> cstr</span> : <code class="type">?delay_on_negation:bool -> <a href="Fcl_cstr.html#TYPEt">Fcl_cstr.t</a> -> Fcl_var.Fd.t -> <a href="Fcl_cstr.html#TYPEt">Fcl_cstr.t</a></code></pre><div class="info "> <code class="code">cstr ~delay_on_negation:true c b</code> is equivalent to the constraint <code class="code">boolean ?delay_on_negation c =~ b</code>. <code class="code">delay_on_negation</code> default value is <code class="code">true</code>.<br> </div> <br> <br> <pre><span id="VAL(&&~~)"><span class="keyword">val</span> (&&~~)</span> : <code class="type"><a href="Fcl_cstr.html#TYPEt">Fcl_cstr.t</a> -> <a href="Fcl_cstr.html#TYPEt">Fcl_cstr.t</a> -> <a href="Fcl_cstr.html#TYPEt">Fcl_cstr.t</a></code></pre> <pre><span id="VAL(||~~)"><span class="keyword">val</span> (||~~)</span> : <code class="type"><a href="Fcl_cstr.html#TYPEt">Fcl_cstr.t</a> -> <a href="Fcl_cstr.html#TYPEt">Fcl_cstr.t</a> -> <a href="Fcl_cstr.html#TYPEt">Fcl_cstr.t</a></code></pre> <pre><span id="VAL(=>~~)"><span class="keyword">val</span> (=>~~)</span> : <code class="type"><a href="Fcl_cstr.html#TYPEt">Fcl_cstr.t</a> -> <a href="Fcl_cstr.html#TYPEt">Fcl_cstr.t</a> -> <a href="Fcl_cstr.html#TYPEt">Fcl_cstr.t</a></code></pre> <pre><span id="VAL(<=>~~)"><span class="keyword">val</span> (<=>~~)</span> : <code class="type"><a href="Fcl_cstr.html#TYPEt">Fcl_cstr.t</a> -> <a href="Fcl_cstr.html#TYPEt">Fcl_cstr.t</a> -> <a href="Fcl_cstr.html#TYPEt">Fcl_cstr.t</a></code></pre> <pre><span id="VALxor"><span class="keyword">val</span> xor</span> : <code class="type"><a href="Fcl_cstr.html#TYPEt">Fcl_cstr.t</a> -> <a href="Fcl_cstr.html#TYPEt">Fcl_cstr.t</a> -> <a href="Fcl_cstr.html#TYPEt">Fcl_cstr.t</a></code></pre> <pre><span id="VALnot"><span class="keyword">val</span> not</span> : <code class="type"><a href="Fcl_cstr.html#TYPEt">Fcl_cstr.t</a> -> <a href="Fcl_cstr.html#TYPEt">Fcl_cstr.t</a></code></pre><div class="info "> Logical reification operators on constraints, namely and, or, implies, equivalent, exclusive or, not.<br> </div> </body></html>