<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Libabsolute__ModCsp (libabsolute.Libabsolute__ModCsp)</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; Libabsolute__ModCsp</nav><h1>Module <code>Libabsolute__ModCsp</code></h1></header><dl><dt class="spec type" id="type-expr"><a href="#type-expr" class="anchor"></a><code><span class="keyword">type</span> expr</code><code> = </code><table class="variant"><tr id="type-expr.Neg" class="anchored"><td class="def constructor"><a href="#type-expr.Neg" class="anchor"></a><code>| </code><code><span class="constructor">Neg</span> <span class="keyword">of</span> <a href="index.html#type-expr">expr</a></code></td></tr><tr id="type-expr.Binary" class="anchored"><td class="def constructor"><a href="#type-expr.Binary" class="anchor"></a><code>| </code><code><span class="constructor">Binary</span> <span class="keyword">of</span> <a href="../Libabsolute/Expr/index.html#type-binop">Libabsolute.Expr.binop</a> * <a href="index.html#type-expr">expr</a> * <a href="index.html#type-expr">expr</a></code></td></tr><tr id="type-expr.Var" class="anchored"><td class="def constructor"><a href="#type-expr.Var" class="anchor"></a><code>| </code><code><span class="constructor">Var</span> <span class="keyword">of</span> string</code></td></tr><tr id="type-expr.Array" class="anchored"><td class="def constructor"><a href="#type-expr.Array" class="anchor"></a><code>| </code><code><span class="constructor">Array</span> <span class="keyword">of</span> string * int</code></td></tr><tr id="type-expr.Cst" class="anchored"><td class="def constructor"><a href="#type-expr.Cst" class="anchor"></a><code>| </code><code><span class="constructor">Cst</span> <span class="keyword">of</span> <a href="../Libabsolute/Q/index.html#type-t">Libabsolute.Q.t</a></code></td></tr></table></dt><dt class="spec type" id="type-bexpr"><a href="#type-bexpr" class="anchor"></a><code><span class="keyword">type</span> bexpr</code><code> = </code><table class="variant"><tr id="type-bexpr.Cmp" class="anchored"><td class="def constructor"><a href="#type-bexpr.Cmp" class="anchor"></a><code>| </code><code><span class="constructor">Cmp</span> <span class="keyword">of</span> <a href="index.html#type-expr">expr</a> * <a href="../Libabsolute/Constraint/index.html#type-cmpop">Libabsolute.Constraint.cmpop</a> * <a href="index.html#type-expr">expr</a></code></td></tr><tr id="type-bexpr.And" class="anchored"><td class="def constructor"><a href="#type-bexpr.And" class="anchor"></a><code>| </code><code><span class="constructor">And</span> <span class="keyword">of</span> <a href="index.html#type-bexpr">bexpr</a> * <a href="index.html#type-bexpr">bexpr</a></code></td></tr><tr id="type-bexpr.Or" class="anchored"><td class="def constructor"><a href="#type-bexpr.Or" class="anchor"></a><code>| </code><code><span class="constructor">Or</span> <span class="keyword">of</span> <a href="index.html#type-bexpr">bexpr</a> * <a href="index.html#type-bexpr">bexpr</a></code></td></tr><tr id="type-bexpr.Not" class="anchored"><td class="def constructor"><a href="#type-bexpr.Not" class="anchor"></a><code>| </code><code><span class="constructor">Not</span> <span class="keyword">of</span> <a href="index.html#type-bexpr">bexpr</a></code></td></tr></table></dt></dl><div class="spec module" id="module-Env"><a href="#module-Env" class="anchor"></a><code><span class="keyword">module</span> Env = <a href="../Libabsolute/Tools/index.html#module-VarMap">Libabsolute.Tools.VarMap</a></code></div><dl><dt class="spec type" id="type-env"><a href="#type-env" class="anchor"></a><code><span class="keyword">type</span> env</code><code> = </code><code>{</code><table class="record"><tr id="type-env.params" class="anchored"><td class="def field"><a href="#type-env.params" class="anchor"></a><code>params : <span><a href="index.html#type-expr">expr</a> <a href="../Libabsolute__Tools/VarMap/index.html#type-t">Env.t</a></span>;</code></td></tr><tr id="type-env.paramsarray" class="anchored"><td class="def field"><a href="#type-env.paramsarray" class="anchor"></a><code>paramsarray : <span><span><a href="index.html#type-expr">expr</a> array</span> <a href="../Libabsolute__Tools/VarMap/index.html#type-t">Env.t</a></span>;</code></td></tr></table><code>}</code></dt></dl><dl><dt class="spec value" id="val-set_param"><a href="#val-set_param" class="anchor"></a><code><span class="keyword">val</span> set_param : <a href="index.html#type-env">env</a> <span>&#45;&gt;</span> <a href="../Libabsolute__Tools/VarMap/index.html#type-key">Env.key</a> <span>&#45;&gt;</span> <a href="index.html#type-expr">expr</a> <span>&#45;&gt;</span> <a href="index.html#type-env">env</a></code></dt><dt class="spec value" id="val-param"><a href="#val-param" class="anchor"></a><code><span class="keyword">val</span> param : <a href="index.html#type-env">env</a> <span>&#45;&gt;</span> <a href="../Libabsolute__Tools/VarMap/index.html#type-key">Env.key</a> <span>&#45;&gt;</span> <a href="index.html#type-expr">expr</a></code></dt><dt class="spec value" id="val-name"><a href="#val-name" class="anchor"></a><code><span class="keyword">val</span> name : string <span>&#45;&gt;</span> int <span>&#45;&gt;</span> string</code></dt><dt class="spec value" id="val-param_i"><a href="#val-param_i" class="anchor"></a><code><span class="keyword">val</span> param_i : <a href="index.html#type-env">env</a> <span>&#45;&gt;</span> <a href="../Libabsolute__Tools/VarMap/index.html#type-key">Env.key</a> <span>&#45;&gt;</span> int <span>&#45;&gt;</span> <a href="index.html#type-expr">expr</a></code></dt><dt class="spec value" id="val-get"><a href="#val-get" class="anchor"></a><code><span class="keyword">val</span> get : <a href="index.html#type-env">env</a> <span>&#45;&gt;</span> <a href="../Libabsolute__Tools/VarMap/index.html#type-key">Env.key</a> <span>&#45;&gt;</span> int <span>&#45;&gt;</span> <a href="index.html#type-expr">expr</a></code></dt><dt class="spec value" id="val-substitute"><a href="#val-substitute" class="anchor"></a><code><span class="keyword">val</span> substitute : <a href="index.html#type-env">env</a> <span>&#45;&gt;</span> <a href="index.html#type-expr">expr</a> <span>&#45;&gt;</span> <a href="index.html#type-expr">expr</a></code></dt><dt class="spec value" id="val-substitute_constr"><a href="#val-substitute_constr" class="anchor"></a><code><span class="keyword">val</span> substitute_constr : <a href="index.html#type-env">env</a> <span>&#45;&gt;</span> <a href="index.html#type-bexpr">bexpr</a> <span>&#45;&gt;</span> <a href="index.html#type-bexpr">bexpr</a></code></dt><dt class="spec value" id="val-evaluate"><a href="#val-evaluate" class="anchor"></a><code><span class="keyword">val</span> evaluate : <a href="index.html#type-env">env</a> <span>&#45;&gt;</span> <a href="index.html#type-expr">expr</a> <span>&#45;&gt;</span> <a href="../Libabsolute/Q/index.html#type-t">Libabsolute.Q.t</a></code></dt><dt class="spec value" id="val-to_csp"><a href="#val-to_csp" class="anchor"></a><code><span class="keyword">val</span> to_csp : <a href="index.html#type-expr">expr</a> <span>&#45;&gt;</span> <a href="../Libabsolute/Expr/index.html#type-t">Libabsolute.Expr.t</a></code></dt><dt class="spec value" id="val-to_csp_constr"><a href="#val-to_csp_constr" class="anchor"></a><code><span class="keyword">val</span> to_csp_constr : <a href="index.html#type-bexpr">bexpr</a> <span>&#45;&gt;</span> <span><span>(<a href="../Libabsolute/Expr/index.html#type-t">Libabsolute.Expr.t</a> * <a href="../Libabsolute/Constraint/index.html#type-cmpop">Libabsolute.Constraint.cmpop</a> * <a href="../Libabsolute/Expr/index.html#type-t">Libabsolute.Expr.t</a>)</span> <a href="../Libabsolute/Constraint/index.html#type-boolean">Libabsolute.Constraint.boolean</a></span></code></dt></dl><dl><dt class="spec type" id="type-modstmt"><a href="#type-modstmt" class="anchor"></a><code><span class="keyword">type</span> modstmt</code><code> = </code><table class="variant"><tr id="type-modstmt.Param" class="anchored"><td class="def constructor"><a href="#type-modstmt.Param" class="anchor"></a><code>| </code><code><span class="constructor">Param</span> <span class="keyword">of</span> string * <a href="index.html#type-expr">expr</a></code></td></tr><tr id="type-modstmt.Var" class="anchored"><td class="def constructor"><a href="#type-modstmt.Var" class="anchor"></a><code>| </code><code><span class="constructor">Var</span> <span class="keyword">of</span> string * <a href="index.html#type-expr">expr</a> * <a href="index.html#type-expr">expr</a></code></td></tr><tr id="type-modstmt.ParamList" class="anchored"><td class="def constructor"><a href="#type-modstmt.ParamList" class="anchor"></a><code>| </code><code><span class="constructor">ParamList</span> <span class="keyword">of</span> string * <a href="index.html#type-set">set</a> * <a href="index.html#type-expr">expr</a> * <a href="index.html#type-expr">expr</a></code></td></tr><tr id="type-modstmt.VarList" class="anchored"><td class="def constructor"><a href="#type-modstmt.VarList" class="anchor"></a><code>| </code><code><span class="constructor">VarList</span> <span class="keyword">of</span> string * <a href="index.html#type-set">set</a> * <a href="index.html#type-expr">expr</a> * <a href="index.html#type-expr">expr</a></code></td></tr><tr id="type-modstmt.SubjectTo" class="anchored"><td class="def constructor"><a href="#type-modstmt.SubjectTo" class="anchor"></a><code>| </code><code><span class="constructor">SubjectTo</span> <span class="keyword">of</span> string * <a href="index.html#type-bexpr">bexpr</a></code></td></tr><tr id="type-modstmt.Ignore" class="anchored"><td class="def constructor"><a href="#type-modstmt.Ignore" class="anchor"></a><code>| </code><code><span class="constructor">Ignore</span></code></td></tr></table></dt><dt class="spec type" id="type-set"><a href="#type-set" class="anchor"></a><code><span class="keyword">and</span> set</code><code> = <a href="index.html#type-expr">expr</a> * <a href="index.html#type-expr">expr</a></code></dt><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = <span><a href="index.html#type-modstmt">modstmt</a> list</span></code></dt></dl><dl><dt class="spec value" id="val-eval_set"><a href="#val-eval_set" class="anchor"></a><code><span class="keyword">val</span> eval_set : <a href="index.html#type-env">env</a> <span>&#45;&gt;</span> <span>(<a href="index.html#type-expr">expr</a> * <a href="index.html#type-expr">expr</a>)</span> <span>&#45;&gt;</span> int * int</code></dt><dt class="spec value" id="val-toCsp"><a href="#val-toCsp" class="anchor"></a><code><span class="keyword">val</span> toCsp : <span><a href="index.html#type-modstmt">modstmt</a> list</span> <span>&#45;&gt;</span> <a href="../Libabsolute/Csp/index.html#type-t">Libabsolute.Csp.t</a></code></dt></dl></div></body></html>