<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Csp_helper (libabsolute.Csp_helper)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> â€“ <a href="../index.html">libabsolute</a> &#x00BB; Csp_helper</nav><h1>Module <code>Csp_helper</code></h1><nav class="toc"><ul><li><a href="#expression-constructors">Expression Constructors</a></li><li><a href="#constraint-constructor">Constraint constructor</a></li><li><a href="#predicates">Predicates</a></li><li><a href="#operations">Operations</a></li></ul></nav></header><dl><dt class="spec value" id="val-one"><a href="#val-one" class="anchor"></a><code><span class="keyword">val</span> one : <a href="../Csp/index.html#type-expr">Csp.expr</a></code></dt><dd><h2 id="constants"><a href="#constants" class="anchor"></a>Constants</h2></dd></dl><dl><dt class="spec value" id="val-zero"><a href="#val-zero" class="anchor"></a><code><span class="keyword">val</span> zero : <a href="../Csp/index.html#type-expr">Csp.expr</a></code></dt><dt class="spec value" id="val-two"><a href="#val-two" class="anchor"></a><code><span class="keyword">val</span> two : <a href="../Csp/index.html#type-expr">Csp.expr</a></code></dt></dl><section><header><h2 id="expression-constructors"><a href="#expression-constructors" class="anchor"></a>Expression Constructors</h2></header><dl><dt class="spec value" id="val-of_int"><a href="#val-of_int" class="anchor"></a><code><span class="keyword">val</span> of_int : int <span>&#45;&gt;</span> <a href="../Csp/index.html#type-expr">Csp.expr</a></code></dt><dd><p>builds an expression from an integer</p></dd></dl><dl><dt class="spec value" id="val-of_float"><a href="#val-of_float" class="anchor"></a><code><span class="keyword">val</span> of_float : float <span>&#45;&gt;</span> <a href="../Csp/index.html#type-expr">Csp.expr</a></code></dt><dd><p>builds an expression from an float</p></dd></dl><dl><dt class="spec value" id="val-of_mpqf"><a href="#val-of_mpqf" class="anchor"></a><code><span class="keyword">val</span> of_mpqf : <a href="../Csp/index.html#type-i">Csp.i</a> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-expr">Csp.expr</a></code></dt><dd><p>builds an expression from an Mpqf.t</p></dd></dl><dl><dt class="spec value" id="val-square"><a href="#val-square" class="anchor"></a><code><span class="keyword">val</span> square : <a href="../Csp/index.html#type-expr">Csp.expr</a> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-expr">Csp.expr</a></code></dt><dd><p>given an expression <code>e</code> builds the expresspion for <code>e*e</code></p></dd></dl></section><section><header><h2 id="constraint-constructor"><a href="#constraint-constructor" class="anchor"></a>Constraint constructor</h2></header><dl><dt class="spec value" id="val-leq"><a href="#val-leq" class="anchor"></a><code><span class="keyword">val</span> leq : <span class="type-var">'a</span> <span>&#45;&gt;</span> <span class="type-var">'b</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span> * <a href="../Csp/index.html#type-cmpop">Csp.cmpop</a> * <span class="type-var">'b</span>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span></code></dt><dd><h3 id="comparisons"><a href="#comparisons" class="anchor"></a>comparisons</h3></dd></dl><dl><dt class="spec value" id="val-lt"><a href="#val-lt" class="anchor"></a><code><span class="keyword">val</span> lt : <span class="type-var">'a</span> <span>&#45;&gt;</span> <span class="type-var">'b</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span> * <a href="../Csp/index.html#type-cmpop">Csp.cmpop</a> * <span class="type-var">'b</span>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span></code></dt><dt class="spec value" id="val-geq"><a href="#val-geq" class="anchor"></a><code><span class="keyword">val</span> geq : <span class="type-var">'a</span> <span>&#45;&gt;</span> <span class="type-var">'b</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span> * <a href="../Csp/index.html#type-cmpop">Csp.cmpop</a> * <span class="type-var">'b</span>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span></code></dt><dt class="spec value" id="val-gt"><a href="#val-gt" class="anchor"></a><code><span class="keyword">val</span> gt : <span class="type-var">'a</span> <span>&#45;&gt;</span> <span class="type-var">'b</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span> * <a href="../Csp/index.html#type-cmpop">Csp.cmpop</a> * <span class="type-var">'b</span>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span></code></dt><dt class="spec value" id="val-eq"><a href="#val-eq" class="anchor"></a><code><span class="keyword">val</span> eq : <span class="type-var">'a</span> <span>&#45;&gt;</span> <span class="type-var">'b</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span> * <a href="../Csp/index.html#type-cmpop">Csp.cmpop</a> * <span class="type-var">'b</span>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span></code></dt><dt class="spec value" id="val-neq"><a href="#val-neq" class="anchor"></a><code><span class="keyword">val</span> neq : <span class="type-var">'a</span> <span>&#45;&gt;</span> <span class="type-var">'b</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span> * <a href="../Csp/index.html#type-cmpop">Csp.cmpop</a> * <span class="type-var">'b</span>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span></code></dt><dt class="spec value" id="val-assign"><a href="#val-assign" class="anchor"></a><code><span class="keyword">val</span> assign : <a href="../Csp/index.html#type-var">Csp.var</a> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-i">Csp.i</a> <span>&#45;&gt;</span> <span><span>(<a href="../Csp/index.html#type-expr">Csp.expr</a> * <a href="../Csp/index.html#type-cmpop">Csp.cmpop</a> * <a href="../Csp/index.html#type-expr">Csp.expr</a>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span></code></dt><dd><p>constraint for variable assignment by a constant</p></dd></dl><dl><dt class="spec value" id="val-inside"><a href="#val-inside" class="anchor"></a><code><span class="keyword">val</span> inside : <span class="type-var">'a</span> <span>&#45;&gt;</span> <span class="type-var">'b</span> <span>&#45;&gt;</span> <span class="type-var">'b</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span> * <a href="../Csp/index.html#type-cmpop">Csp.cmpop</a> * <span class="type-var">'b</span>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span></code></dt><dd><p>constraint for 'e \in <code>low;high</code>'</p></dd></dl><dl><dt class="spec value" id="val-outside"><a href="#val-outside" class="anchor"></a><code><span class="keyword">val</span> outside : <span class="type-var">'a</span> <span>&#45;&gt;</span> <span class="type-var">'b</span> <span>&#45;&gt;</span> <span class="type-var">'b</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span> * <a href="../Csp/index.html#type-cmpop">Csp.cmpop</a> * <span class="type-var">'b</span>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span></code></dt><dd><p>constraint for 'not (v \in <code>low;high</code>)'</p></dd></dl><dl><dt class="spec value" id="val-inside_cst"><a href="#val-inside_cst" class="anchor"></a><code><span class="keyword">val</span> inside_cst : <a href="../Csp/index.html#type-var">Csp.var</a> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-i">Csp.i</a> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-i">Csp.i</a> <span>&#45;&gt;</span> <span><span>(<a href="../Csp/index.html#type-expr">Csp.expr</a> * <a href="../Csp/index.html#type-cmpop">Csp.cmpop</a> * <a href="../Csp/index.html#type-expr">Csp.expr</a>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span></code></dt><dd><p>same as inside but with constants instead of expressions'</p></dd></dl><dl><dt class="spec value" id="val-outside_cst"><a href="#val-outside_cst" class="anchor"></a><code><span class="keyword">val</span> outside_cst : <a href="../Csp/index.html#type-var">Csp.var</a> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-i">Csp.i</a> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-i">Csp.i</a> <span>&#45;&gt;</span> <span><span>(<a href="../Csp/index.html#type-expr">Csp.expr</a> * <a href="../Csp/index.html#type-cmpop">Csp.cmpop</a> * <a href="../Csp/index.html#type-expr">Csp.expr</a>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span></code></dt><dd><p>constraint for 'not (v \in <code>low;high</code>)'</p></dd></dl></section><section><header><h2 id="predicates"><a href="#predicates" class="anchor"></a>Predicates</h2></header><dl><dt class="spec value" id="val-has_variable"><a href="#val-has_variable" class="anchor"></a><code><span class="keyword">val</span> has_variable : <a href="../Csp/index.html#type-expr">Csp.expr</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>checks if an expression contains a variable</p></dd></dl><dl><dt class="spec value" id="val-is_linear"><a href="#val-is_linear" class="anchor"></a><code><span class="keyword">val</span> is_linear : <a href="../Csp/index.html#type-expr">Csp.expr</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>checks if an expression is linear</p></dd></dl><dl><dt class="spec value" id="val-is_zero"><a href="#val-is_zero" class="anchor"></a><code><span class="keyword">val</span> is_zero : <span>Mpq.f Mpqf.tt</span> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-is_neg"><a href="#val-is_neg" class="anchor"></a><code><span class="keyword">val</span> is_neg : <span><span class="type-var">'a</span> Mpqf.tt</span> <span>&#45;&gt;</span> bool</code></dt></dl></section><section><header><h2 id="operations"><a href="#operations" class="anchor"></a>Operations</h2></header><dl><dt class="spec value" id="val-inv"><a href="#val-inv" class="anchor"></a><code><span class="keyword">val</span> inv : <a href="../Csp/index.html#type-cmpop">Csp.cmpop</a> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-cmpop">Csp.cmpop</a></code></dt><dd><p>cmp operator inversion</p></dd></dl><dl><dt class="spec value" id="val-neg"><a href="#val-neg" class="anchor"></a><code><span class="keyword">val</span> neg : <a href="../Csp/index.html#type-cmpop">Csp.cmpop</a> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-cmpop">Csp.cmpop</a></code></dt><dd><p>comparison operator negation</p></dd></dl><dl><dt class="spec value" id="val-domain_to_constraints"><a href="#val-domain_to_constraints" class="anchor"></a><code><span class="keyword">val</span> domain_to_constraints : <a href="../Csp/index.html#type-decl">Csp.decl</a> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-bexpr">Csp.bexpr</a></code></dt><dd><p>converts a domain representation to a constraint</p></dd></dl><dl><dt class="spec value" id="val-iter_expr"><a href="#val-iter_expr" class="anchor"></a><code><span class="keyword">val</span> iter_expr : <span>(<a href="../Csp/index.html#type-expr">Csp.expr</a> <span>&#45;&gt;</span> unit)</span> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-expr">Csp.expr</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>iter on expr</p></dd></dl><dl><dt class="spec value" id="val-iter_constr"><a href="#val-iter_constr" class="anchor"></a><code><span class="keyword">val</span> iter_constr : <span>(<a href="../Csp/index.html#type-expr">Csp.expr</a> <span>&#45;&gt;</span> unit)</span> <span>&#45;&gt;</span> <span>(<span><span>(<a href="../Csp/index.html#type-expr">Csp.expr</a> * <span class="type-var">'a</span> * <a href="../Csp/index.html#type-expr">Csp.expr</a>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span> <span>&#45;&gt;</span> unit)</span> <span>&#45;&gt;</span> <span><span>(<a href="../Csp/index.html#type-expr">Csp.expr</a> * <span class="type-var">'a</span> * <a href="../Csp/index.html#type-expr">Csp.expr</a>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span> <span>&#45;&gt;</span> unit</code></dt><dd><p>iter on constraints</p></dd></dl><dl><dt class="spec value" id="val-map_constr"><a href="#val-map_constr" class="anchor"></a><code><span class="keyword">val</span> map_constr : <span>(<span class="type-var">'a</span> <span>&#45;&gt;</span> <span class="type-var">'b</span>)</span> <span>&#45;&gt;</span> <span><span class="type-var">'a</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span> <span>&#45;&gt;</span> <span><span class="type-var">'b</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span></code></dt><dd><p>boolean formulae map</p></dd></dl><dl><dt class="spec value" id="val-neg_bexpr"><a href="#val-neg_bexpr" class="anchor"></a><code><span class="keyword">val</span> neg_bexpr : <span><span>(<span class="type-var">'a</span> * <a href="../Csp/index.html#type-cmpop">Csp.cmpop</a> * <span class="type-var">'b</span>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span> * <a href="../Csp/index.html#type-cmpop">Csp.cmpop</a> * <span class="type-var">'b</span>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span></code></dt><dd><p>constraint negation</p></dd></dl><dl><dt class="spec value" id="val-remove_not"><a href="#val-remove_not" class="anchor"></a><code><span class="keyword">val</span> remove_not : <span><span>(<span class="type-var">'a</span> * <a href="../Csp/index.html#type-cmpop">Csp.cmpop</a> * <span class="type-var">'b</span>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span> * <a href="../Csp/index.html#type-cmpop">Csp.cmpop</a> * <span class="type-var">'b</span>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span></code></dt><dd><p>rewrites a constraint into an equivalent constraint without 'Not'</p></dd></dl><dl><dt class="spec value" id="val-apply"><a href="#val-apply" class="anchor"></a><code><span class="keyword">val</span> apply : <span>(<span class="type-var">'a</span> <span>&#45;&gt;</span> <span class="type-var">'b</span> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-expr">Csp.expr</a> * bool)</span> <span>&#45;&gt;</span> <span class="type-var">'a</span> <span>&#45;&gt;</span> <span class="type-var">'a</span> <span>&#45;&gt;</span> <span class="type-var">'b</span> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-binop">Csp.binop</a> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-expr">Csp.expr</a> * bool</code></dt><dt class="spec value" id="val-distribute"><a href="#val-distribute" class="anchor"></a><code><span class="keyword">val</span> distribute : <span>(<a href="../Csp/index.html#type-binop">Csp.binop</a> * <a href="../Csp/index.html#type-expr">Csp.expr</a>)</span> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-expr">Csp.expr</a> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-expr">Csp.expr</a></code></dt><dt class="spec value" id="val-expand"><a href="#val-expand" class="anchor"></a><code><span class="keyword">val</span> expand : <a href="../Csp/index.html#type-expr">Csp.expr</a> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-expr">Csp.expr</a></code></dt><dt class="spec value" id="val-simplify_expr"><a href="#val-simplify_expr" class="anchor"></a><code><span class="keyword">val</span> simplify_expr : <a href="../Csp/index.html#type-expr">Csp.expr</a> <span>&#45;&gt;</span> bool <span>&#45;&gt;</span> <a href="../Csp/index.html#type-expr">Csp.expr</a> * bool</code></dt><dt class="spec value" id="val-simplify_fp"><a href="#val-simplify_fp" class="anchor"></a><code><span class="keyword">val</span> simplify_fp : <a href="../Csp/index.html#type-expr">Csp.expr</a> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-expr">Csp.expr</a></code></dt><dd><p>calls simplify until it reaches a fixpoint</p></dd></dl><dl><dt class="spec value" id="val-simplify_bexpr"><a href="#val-simplify_bexpr" class="anchor"></a><code><span class="keyword">val</span> simplify_bexpr : <span><span>(<a href="../Csp/index.html#type-expr">Csp.expr</a> * <span class="type-var">'a</span> * <a href="../Csp/index.html#type-expr">Csp.expr</a>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span> <span>&#45;&gt;</span> <span><span>(<a href="../Csp/index.html#type-expr">Csp.expr</a> * <span class="type-var">'a</span> * <a href="../Csp/index.html#type-expr">Csp.expr</a>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span></code></dt><dt class="spec value" id="val-left_hand_side"><a href="#val-left_hand_side" class="anchor"></a><code><span class="keyword">val</span> left_hand_side : <span>(<a href="../Csp/index.html#type-expr">Csp.expr</a> * <a href="../Csp/index.html#type-cmpop">Csp.cmpop</a> * <a href="../Csp/index.html#type-expr">Csp.expr</a>)</span> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-cmpop">Csp.cmpop</a> * <a href="../Csp/index.html#type-expr">Csp.expr</a></code></dt><dt class="spec value" id="val-left_hand"><a href="#val-left_hand" class="anchor"></a><code><span class="keyword">val</span> left_hand : <span><span>(<a href="../Csp/index.html#type-expr">Csp.expr</a> * <a href="../Csp/index.html#type-cmpop">Csp.cmpop</a> * <a href="../Csp/index.html#type-expr">Csp.expr</a>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-cmpop">Csp.cmpop</a> * <a href="../Csp/index.html#type-expr">Csp.expr</a></code></dt><dt class="spec value" id="val-flatten_pow"><a href="#val-flatten_pow" class="anchor"></a><code><span class="keyword">val</span> flatten_pow : <a href="../Csp/index.html#type-expr">Csp.expr</a> <span>&#45;&gt;</span> int <span>&#45;&gt;</span> <a href="../Csp/index.html#type-expr">Csp.expr</a></code></dt><dt class="spec value" id="val-derivate"><a href="#val-derivate" class="anchor"></a><code><span class="keyword">val</span> derivate : <a href="../Csp/index.html#type-expr">Csp.expr</a> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-var">Csp.var</a> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-expr">Csp.expr</a></code></dt><dt class="spec value" id="val-derivative"><a href="#val-derivative" class="anchor"></a><code><span class="keyword">val</span> derivative : <span><span>(<a href="../Csp/index.html#type-expr">Csp.expr</a> * <span class="type-var">'a</span> * <a href="../Csp/index.html#type-expr">Csp.expr</a>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-var">Csp.var</a> <span>&#45;&gt;</span> <span><span>(<a href="../Csp/index.html#type-expr">Csp.expr</a> * <span class="type-var">'a</span> * <a href="../Csp/index.html#type-expr">Csp.expr</a>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span></code></dt><dt class="spec value" id="val-is_arith"><a href="#val-is_arith" class="anchor"></a><code><span class="keyword">val</span> is_arith : <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span> * <span class="type-var">'c</span>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-ctr_jacobian"><a href="#val-ctr_jacobian" class="anchor"></a><code><span class="keyword">val</span> ctr_jacobian : <span><span>(<a href="../Csp/index.html#type-expr">Csp.expr</a> * <a href="../Csp/index.html#type-cmpop">Csp.cmpop</a> * <a href="../Csp/index.html#type-expr">Csp.expr</a>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'a</span> * <a href="../Csp/index.html#type-var">Csp.var</a> * <span class="type-var">'b</span>)</span> list</span> <span>&#45;&gt;</span> <span><span>(<a href="../Csp/index.html#type-var">Csp.var</a> * <a href="../Csp/index.html#type-expr">Csp.expr</a>)</span> list</span></code></dt><dt class="spec value" id="val-compute_jacobian"><a href="#val-compute_jacobian" class="anchor"></a><code><span class="keyword">val</span> compute_jacobian : <a href="../Csp/index.html#type-prog">Csp.prog</a> <span>&#45;&gt;</span> <span><span>(<a href="../Csp/index.html#type-bexpr">Csp.bexpr</a> * <span><span>(<a href="../Csp/index.html#type-var">Csp.var</a> * <a href="../Csp/index.html#type-expr">Csp.expr</a>)</span> list</span>)</span> list</span></code></dt><dt class="spec value" id="val-empty"><a href="#val-empty" class="anchor"></a><code><span class="keyword">val</span> empty : <a href="../Csp/index.html#type-prog">Csp.prog</a></code></dt><dt class="spec value" id="val-get_vars"><a href="#val-get_vars" class="anchor"></a><code><span class="keyword">val</span> get_vars : <a href="../Csp/index.html#type-prog">Csp.prog</a> <span>&#45;&gt;</span> <span><a href="../Csp/index.html#type-var">Csp.var</a> list</span></code></dt><dt class="spec value" id="val-add_real_var"><a href="#val-add_real_var" class="anchor"></a><code><span class="keyword">val</span> add_real_var : <a href="../Csp/index.html#type-prog">Csp.prog</a> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-var">Csp.var</a> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-i">Csp.i</a> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-i">Csp.i</a> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-prog">Csp.prog</a></code></dt><dt class="spec value" id="val-add_constr"><a href="#val-add_constr" class="anchor"></a><code><span class="keyword">val</span> add_constr : <a href="../Csp/index.html#type-prog">Csp.prog</a> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-bexpr">Csp.bexpr</a> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-prog">Csp.prog</a></code></dt><dt class="spec value" id="val-replace_cst_expr"><a href="#val-replace_cst_expr" class="anchor"></a><code><span class="keyword">val</span> replace_cst_expr : <span>(<a href="../Csp/index.html#type-var">Csp.var</a> * <a href="../Csp/index.html#type-i">Csp.i</a>)</span> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-expr">Csp.expr</a> <span>&#45;&gt;</span> <a href="../Csp/index.html#type-expr">Csp.expr</a></code></dt><dt class="spec value" id="val-replace_cst_bexpr"><a href="#val-replace_cst_bexpr" class="anchor"></a><code><span class="keyword">val</span> replace_cst_bexpr : <span>(<a href="../Csp/index.html#type-var">Csp.var</a> * <a href="../Csp/index.html#type-i">Csp.i</a>)</span> <span>&#45;&gt;</span> <span><span>(<a href="../Csp/index.html#type-expr">Csp.expr</a> * <span class="type-var">'a</span> * <a href="../Csp/index.html#type-expr">Csp.expr</a>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span> <span>&#45;&gt;</span> <span><span>(<a href="../Csp/index.html#type-expr">Csp.expr</a> * <span class="type-var">'a</span> * <a href="../Csp/index.html#type-expr">Csp.expr</a>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span></code></dt><dt class="spec value" id="val-get_vars_expr"><a href="#val-get_vars_expr" class="anchor"></a><code><span class="keyword">val</span> get_vars_expr : <a href="../Csp/index.html#type-expr">Csp.expr</a> <span>&#45;&gt;</span> <span><a href="../Csp/index.html#type-var">Csp.var</a> list</span></code></dt><dt class="spec value" id="val-get_vars_set_expr"><a href="#val-get_vars_set_expr" class="anchor"></a><code><span class="keyword">val</span> get_vars_set_expr : <a href="../Csp/index.html#type-expr">Csp.expr</a> <span>&#45;&gt;</span> <a href="../Tools/VarSet/index.html#type-t">Tools.VarSet.t</a></code></dt><dt class="spec value" id="val-get_vars_bexpr"><a href="#val-get_vars_bexpr" class="anchor"></a><code><span class="keyword">val</span> get_vars_bexpr : <span><span>(<a href="../Csp/index.html#type-expr">Csp.expr</a> * <span class="type-var">'a</span> * <a href="../Csp/index.html#type-expr">Csp.expr</a>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span> <span>&#45;&gt;</span> <span><a href="../Csp/index.html#type-var">Csp.var</a> list</span></code></dt><dt class="spec value" id="val-get_vars_set_bexpr"><a href="#val-get_vars_set_bexpr" class="anchor"></a><code><span class="keyword">val</span> get_vars_set_bexpr : <span><span>(<a href="../Csp/index.html#type-expr">Csp.expr</a> * <span class="type-var">'a</span> * <a href="../Csp/index.html#type-expr">Csp.expr</a>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span> <span>&#45;&gt;</span> <a href="../Tools/VarSet/index.html#type-t">Tools.VarSet.t</a></code></dt><dt class="spec value" id="val-get_vars_jacob"><a href="#val-get_vars_jacob" class="anchor"></a><code><span class="keyword">val</span> get_vars_jacob : <span><span>(<span><span>(<a href="../Csp/index.html#type-expr">Csp.expr</a> * <span class="type-var">'a</span> * <a href="../Csp/index.html#type-expr">Csp.expr</a>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span> * <span class="type-var">'b</span>)</span> list</span> <span>&#45;&gt;</span> <span><span>(<span><span>(<a href="../Csp/index.html#type-expr">Csp.expr</a> * <span class="type-var">'a</span> * <a href="../Csp/index.html#type-expr">Csp.expr</a>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span> * <a href="../Tools/VarSet/index.html#type-t">Tools.VarSet.t</a> * <span class="type-var">'b</span>)</span> list</span></code></dt><dt class="spec value" id="val-replace_cst_jacob"><a href="#val-replace_cst_jacob" class="anchor"></a><code><span class="keyword">val</span> replace_cst_jacob : <span>(<a href="../Tools/VarSet/index.html#type-elt">Tools.VarSet.elt</a> * <a href="../Csp/index.html#type-i">Csp.i</a>)</span> <span>&#45;&gt;</span> <span><span>(<span><span>(<a href="../Csp/index.html#type-expr">Csp.expr</a> * <span class="type-var">'a</span> * <a href="../Csp/index.html#type-expr">Csp.expr</a>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span> * <a href="../Tools/VarSet/index.html#type-t">Tools.VarSet.t</a> * <span class="type-var">'b</span>)</span> list</span> <span>&#45;&gt;</span> <span><span>(<span><span>(<a href="../Csp/index.html#type-expr">Csp.expr</a> * <span class="type-var">'a</span> * <a href="../Csp/index.html#type-expr">Csp.expr</a>)</span> <a href="../Csp/index.html#type-boolean">Csp.boolean</a></span> * <a href="../Tools/VarSet/index.html#type-t">Tools.VarSet.t</a> * <span class="type-var">'b</span>)</span> list</span></code></dt><dt class="spec value" id="val-from_cst_to_expr"><a href="#val-from_cst_to_expr" class="anchor"></a><code><span class="keyword">val</span> from_cst_to_expr : <span>(<a href="../Csp/index.html#type-var">Csp.var</a> * <span>(<a href="../Csp/index.html#type-i">Csp.i</a> * <a href="../Csp/index.html#type-i">Csp.i</a>)</span>)</span> <span>&#45;&gt;</span> <span><span>(<a href="../Csp/index.html#type-expr">Csp.expr</a> * <a href="../Csp/index.html#type-cmpop">Csp.cmpop</a> * <a href="../Csp/index.html#type-expr">Csp.expr</a>)</span> list</span></code></dt><dt class="spec value" id="val-csts_to_expr"><a href="#val-csts_to_expr" class="anchor"></a><code><span class="keyword">val</span> csts_to_expr : <span><span>(<a href="../Csp/index.html#type-var">Csp.var</a> * <span>(<a href="../Csp/index.html#type-i">Csp.i</a> * <a href="../Csp/index.html#type-i">Csp.i</a>)</span>)</span> list</span> <span>&#45;&gt;</span> <span><span>(<a href="../Csp/index.html#type-expr">Csp.expr</a> * <a href="../Csp/index.html#type-cmpop">Csp.cmpop</a> * <a href="../Csp/index.html#type-expr">Csp.expr</a>)</span> list</span></code></dt></dl></section></div></body></html>