This commit is contained in:
c-cube 2021-06-29 01:41:24 +00:00
parent fad57a7ee0
commit 3131b5fb51
302 changed files with 332 additions and 270 deletions

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Lit (sidekick-arith.Sidekick_arith_lra.Make.1-A.S.Lit)</title><link rel="stylesheet" href="../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../index.html">Make</a> &#x00BB; <a href="../../index.html">1-A</a> &#x00BB; <a href="../index.html">S</a> &#x00BB; Lit</nav><h1>Module <code>S.Lit</code></h1></header><dl><dt class="spec module" id="module-T"><a href="#module-T" class="anchor"></a><code><span class="keyword">module</span> T = <a href="../index.html#module-T">T</a></code></dt><dd><p>Literals depend on terms</p></dd></dl><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt><dd><p>A literal</p></dd></dl><dl><dt class="spec value" id="val-term"><a href="#val-term" class="anchor"></a><code><span class="keyword">val</span> term : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="T/Term/index.html#type-t">T.Term.t</a></code></dt><dd><p>Get the (positive) term</p></dd></dl><dl><dt class="spec value" id="val-sign"><a href="#val-sign" class="anchor"></a><code><span class="keyword">val</span> sign : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Get the sign. A negated literal has sign <code>false</code>.</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="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p>Take negation of literal. <code>sign (neg lit) = not (sign lit)</code>.</p></dd></dl><dl><dt class="spec value" id="val-abs"><a href="#val-abs" class="anchor"></a><code><span class="keyword">val</span> abs : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p><code>abs lit</code> is like <code>lit</code> but always positive, i.e. <code>sign (abs lit) = true</code></p></dd></dl><dl><dt class="spec value" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span class="keyword">val</span> equal : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-hash"><a href="#val-hash" class="anchor"></a><code><span class="keyword">val</span> hash : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><a href="index.html#type-t">t</a> <a href="../../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Lit (sidekick-arith.Sidekick_arith_lra.Make.1-A.S.Lit)</title><link rel="stylesheet" href="../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../index.html">Make</a> &#x00BB; <a href="../../index.html">1-A</a> &#x00BB; <a href="../index.html">S</a> &#x00BB; Lit</nav><h1>Module <code>S.Lit</code></h1></header><dl><dt class="spec module" id="module-T"><a href="#module-T" class="anchor"></a><code><span class="keyword">module</span> T = <a href="../index.html#module-T">T</a></code></dt><dd><p>Literals depend on terms</p></dd></dl><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt><dd><p>A literal</p></dd></dl><dl><dt class="spec value" id="val-term"><a href="#val-term" class="anchor"></a><code><span class="keyword">val</span> term : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="T/Term/index.html#type-t">T.Term.t</a></code></dt><dd><p>Get the (positive) term</p></dd></dl><dl><dt class="spec value" id="val-sign"><a href="#val-sign" class="anchor"></a><code><span class="keyword">val</span> sign : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Get the sign. A negated literal has sign <code>false</code>.</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="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p>Take negation of literal. <code>sign (neg lit) = not (sign lit)</code>.</p></dd></dl><dl><dt class="spec value" id="val-abs"><a href="#val-abs" class="anchor"></a><code><span class="keyword">val</span> abs : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p><code>abs lit</code> is like <code>lit</code> but always positive, i.e. <code>sign (abs lit) = true</code></p></dd></dl><dl><dt class="spec value" id="val-signed_term"><a href="#val-signed_term" class="anchor"></a><code><span class="keyword">val</span> signed_term : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="T/Term/index.html#type-t">T.Term.t</a> * bool</code></dt><dt class="spec value" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span class="keyword">val</span> equal : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-hash"><a href="#val-hash" class="anchor"></a><code><span class="keyword">val</span> hash : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><a href="index.html#type-t">t</a> <a href="../../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt></dl></div></body></html>

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Quip (sidekick-arith.Sidekick_arith_lra.Make.1-A.S.P.Quip)</title><link rel="stylesheet" href="../../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../../index.html">Make</a> &#x00BB; <a href="../../../index.html">1-A</a> &#x00BB; <a href="../../index.html">S</a> &#x00BB; <a href="../index.html">P</a> &#x00BB; Quip</nav><h1>Module <code>P.Quip</code></h1></header><dl><dt class="spec value" id="val-output"><a href="#val-output" class="anchor"></a><code><span class="keyword">val</span> output : Stdlib.out_channel <span>&#45;&gt;</span> <a href="../index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Printer in Quip format (experimental)</p></dd></dl></div></body></html>

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Pre_proof (sidekick-arith.Sidekick_arith_lra.Make.1-A.S.Pre_proof)</title><link rel="stylesheet" href="../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../index.html">Make</a> &#x00BB; <a href="../../index.html">1-A</a> &#x00BB; <a href="../index.html">S</a> &#x00BB; Pre_proof</nav><h1>Module <code>S.Pre_proof</code></h1><h3 id="internal-representation-of-proofs"><a href="#internal-representation-of-proofs" class="anchor"></a>Internal representation of proofs</h3><p>A type or state convertible into <a href="../P/index.html#type-t"><code>P.t</code></a></p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-output"><a href="#val-output" class="anchor"></a><code><span class="keyword">val</span> output : Stdlib.out_channel <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Output onto a channel, efficiently</p></dd></dl><dl><dt class="spec value" id="val-pp_debug"><a href="#val-pp_debug" class="anchor"></a><code><span class="keyword">val</span> pp_debug : <span><a href="index.html#type-t">t</a> <a href="../../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt><dt class="spec value" id="val-pp_dot"><a href="#val-pp_dot" class="anchor"></a><code><span class="keyword">val</span> pp_dot : <span><span><a href="index.html#type-t">t</a> <a href="../../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span> option</span></code></dt><dd><p>Optional printer into DOT/graphviz</p></dd></dl><dl><dt class="spec value" id="val-check"><a href="#val-check" class="anchor"></a><code><span class="keyword">val</span> check : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Check the proof (to an unspecified level of confidence; this can be a no-op). May fail.</p></dd></dl><dl><dt class="spec value" id="val-to_proof"><a href="#val-to_proof" class="anchor"></a><code><span class="keyword">val</span> to_proof : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../P/index.html#type-t">P.t</a></code></dt></dl></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Proof (sidekick-arith.Sidekick_arith_lra.Make.1-A.S.Proof)</title><link rel="stylesheet" href="../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../index.html">Make</a> &#x00BB; <a href="../../index.html">1-A</a> &#x00BB; <a href="../index.html">S</a> &#x00BB; Proof</nav><h1>Module <code>S.Proof</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-check"><a href="#val-check" class="anchor"></a><code><span class="keyword">val</span> check : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-pp_dot"><a href="#val-pp_dot" class="anchor"></a><code><span class="keyword">val</span> pp_dot : <span><a href="index.html#type-t">t</a> <a href="../../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt></dl></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Actions (sidekick-arith.Sidekick_arith_lra.Make.1-A.S.Solver_internal.CC.Actions)</title><link rel="stylesheet" href="../../../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../../../index.html">Make</a> &#x00BB; <a href="../../../../index.html">1-A</a> &#x00BB; <a href="../../../index.html">S</a> &#x00BB; <a href="../../index.html">Solver_internal</a> &#x00BB; <a href="../index.html">CC</a> &#x00BB; Actions</nav><h1>Module <code>CC.Actions</code></h1></header><div class="spec module" id="module-T"><a href="#module-T" class="anchor"></a><code><span class="keyword">module</span> T = <a href="../index.html#module-T">T</a></code></div><div class="spec module" id="module-P"><a href="#module-P" class="anchor"></a><code><span class="keyword">module</span> P = <a href="../index.html#module-P">P</a></code></div><div class="spec module" id="module-Lit"><a href="#module-Lit" class="anchor"></a><code><span class="keyword">module</span> Lit = <a href="../index.html#module-Lit">Lit</a></code></div><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = <a href="../../index.html#type-actions">actions</a></code></dt><dd><p>An action handle. It is used by the congruence closure to perform the actions below. How it performs the actions is not specified and is solver-specific.</p></dd></dl><dl><dt class="spec value" id="val-raise_conflict"><a href="#val-raise_conflict" class="anchor"></a><code><span class="keyword">val</span> raise_conflict : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><a href="Lit/index.html#type-t">Lit.t</a> list</span> <span>&#45;&gt;</span> <a href="P/index.html#type-t">P.t</a> <span>&#45;&gt;</span> <span class="type-var">'a</span></code></dt><dd><p><code>raise_conflict acts c pr</code> declares that <code>c</code> is a tautology of the theory of congruence. This does not return (it should raise an exception).</p><dl><dt>parameter pr</dt><dd><p>the proof of <code>c</code> being a tautology</p></dd></dl></dd></dl><dl><dt class="spec value" id="val-propagate"><a href="#val-propagate" class="anchor"></a><code><span class="keyword">val</span> propagate : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="Lit/index.html#type-t">Lit.t</a> <span>&#45;&gt;</span> <span>reason:<span>(unit <span>&#45;&gt;</span> <span><a href="Lit/index.html#type-t">Lit.t</a> list</span>)</span></span> <span>&#45;&gt;</span> <a href="P/index.html#type-t">P.t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p><code>propagate acts lit ~reason pr</code> declares that <code>reason() =&gt; lit</code> is a tautology.</p><ul><li><code>reason()</code> should return a list of literals that are currently true.</li><li><code>lit</code> should be a literal of interest (see <a href="../../../../../../../../sidekick/Sidekick_core/module-type-CC_S/index.html#val-set_as_lit"><code>Sidekick_core.CC_S.set_as_lit</code></a>).</li></ul><p>This function might never be called, a congruence closure has the right to not propagate and only trigger conflicts.</p></dd></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Actions (sidekick-arith.Sidekick_arith_lra.Make.1-A.S.Solver_internal.CC.Actions)</title><link rel="stylesheet" href="../../../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../../../index.html">Make</a> &#x00BB; <a href="../../../../index.html">1-A</a> &#x00BB; <a href="../../../index.html">S</a> &#x00BB; <a href="../../index.html">Solver_internal</a> &#x00BB; <a href="../index.html">CC</a> &#x00BB; Actions</nav><h1>Module <code>CC.Actions</code></h1></header><div class="spec module" id="module-T"><a href="#module-T" class="anchor"></a><code><span class="keyword">module</span> T = <a href="../index.html#module-T">T</a></code></div><div class="spec module" id="module-Lit"><a href="#module-Lit" class="anchor"></a><code><span class="keyword">module</span> Lit = <a href="../index.html#module-Lit">Lit</a></code></div><div class="spec module" id="module-P"><a href="#module-P" class="anchor"></a><code><span class="keyword">module</span> P = <a href="../index.html#module-P">P</a></code></div><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = <a href="../../index.html#type-actions">actions</a></code></dt><dd><p>An action handle. It is used by the congruence closure to perform the actions below. How it performs the actions is not specified and is solver-specific.</p></dd></dl><dl><dt class="spec value" id="val-raise_conflict"><a href="#val-raise_conflict" class="anchor"></a><code><span class="keyword">val</span> raise_conflict : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><a href="Lit/index.html#type-t">Lit.t</a> list</span> <span>&#45;&gt;</span> <a href="P/index.html#type-t">P.t</a> <span>&#45;&gt;</span> <span class="type-var">'a</span></code></dt><dd><p><code>raise_conflict acts c pr</code> declares that <code>c</code> is a tautology of the theory of congruence. This does not return (it should raise an exception).</p><dl><dt>parameter pr</dt><dd><p>the proof of <code>c</code> being a tautology</p></dd></dl></dd></dl><dl><dt class="spec value" id="val-propagate"><a href="#val-propagate" class="anchor"></a><code><span class="keyword">val</span> propagate : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="Lit/index.html#type-t">Lit.t</a> <span>&#45;&gt;</span> <span>reason:<span>(unit <span>&#45;&gt;</span> <span><a href="Lit/index.html#type-t">Lit.t</a> list</span> * <a href="P/index.html#type-t">P.t</a>)</span></span> <span>&#45;&gt;</span> unit</code></dt><dd><p><code>propagate acts lit ~reason pr</code> declares that <code>reason() =&gt; lit</code> is a tautology.</p><ul><li><code>reason()</code> should return a list of literals that are currently true.</li><li><code>lit</code> should be a literal of interest (see <a href="../../../../../../../../sidekick/Sidekick_core/module-type-CC_S/index.html#val-set_as_lit"><code>Sidekick_core.CC_S.set_as_lit</code></a>).</li></ul><p>This function might never be called, a congruence closure has the right to not propagate and only trigger conflicts.</p></dd></dl></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Expl (sidekick-arith.Sidekick_arith_lra.Make.1-A.S.Solver_internal.CC.Expl)</title><link rel="stylesheet" href="../../../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../../../index.html">Make</a> &#x00BB; <a href="../../../../index.html">1-A</a> &#x00BB; <a href="../../../index.html">S</a> &#x00BB; <a href="../../index.html">Solver_internal</a> &#x00BB; <a href="../index.html">CC</a> &#x00BB; Expl</nav><h1>Module <code>CC.Expl</code></h1><p>Explanations</p><p>Explanations are specialized proofs, created by the congruence closure when asked to justify why 2 terms are equal.</p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><a href="index.html#type-t">t</a> <a href="../../../../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt><dt class="spec value" id="val-mk_merge"><a href="#val-mk_merge" class="anchor"></a><code><span class="keyword">val</span> mk_merge : <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_merge_t"><a href="#val-mk_merge_t" class="anchor"></a><code><span class="keyword">val</span> mk_merge_t : <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_lit"><a href="#val-mk_lit" class="anchor"></a><code><span class="keyword">val</span> mk_lit : <a href="../index.html#type-lit">lit</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_list"><a href="#val-mk_list" class="anchor"></a><code><span class="keyword">val</span> mk_list : <span><a href="index.html#type-t">t</a> list</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_theory"><a href="#val-mk_theory" class="anchor"></a><code><span class="keyword">val</span> mk_theory : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Expl (sidekick-arith.Sidekick_arith_lra.Make.1-A.S.Solver_internal.CC.Expl)</title><link rel="stylesheet" href="../../../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../../../index.html">Make</a> &#x00BB; <a href="../../../../index.html">1-A</a> &#x00BB; <a href="../../../index.html">S</a> &#x00BB; <a href="../../index.html">Solver_internal</a> &#x00BB; <a href="../index.html">CC</a> &#x00BB; Expl</nav><h1>Module <code>CC.Expl</code></h1><p>Explanations</p><p>Explanations are specialized proofs, created by the congruence closure when asked to justify why 2 terms are equal.</p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><a href="index.html#type-t">t</a> <a href="../../../../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt><dt class="spec value" id="val-mk_merge"><a href="#val-mk_merge" class="anchor"></a><code><span class="keyword">val</span> mk_merge : <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_merge_t"><a href="#val-mk_merge_t" class="anchor"></a><code><span class="keyword">val</span> mk_merge_t : <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_lit"><a href="#val-mk_lit" class="anchor"></a><code><span class="keyword">val</span> mk_lit : <a href="../index.html#type-lit">lit</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_list"><a href="#val-mk_list" class="anchor"></a><code><span class="keyword">val</span> mk_list : <span><a href="index.html#type-t">t</a> list</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_proof"><a href="#val-mk_proof" class="anchor"></a><code><span class="keyword">val</span> mk_proof : <a href="../P/index.html#type-t">P.t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_theory"><a href="#val-mk_theory" class="anchor"></a><code><span class="keyword">val</span> mk_theory : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt></dl></div></body></html>

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Simplify (sidekick-arith.Sidekick_arith_lra.Make.1-A.S.Solver_internal.Simplify)</title><link rel="stylesheet" href="../../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../../index.html">Make</a> &#x00BB; <a href="../../../index.html">1-A</a> &#x00BB; <a href="../../index.html">S</a> &#x00BB; <a href="../index.html">Solver_internal</a> &#x00BB; Simplify</nav><h1>Module <code>Solver_internal.Simplify</code></h1><p>Simplify terms</p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-tst"><a href="#val-tst" class="anchor"></a><code><span class="keyword">val</span> tst : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term_state">term_state</a></code></dt><dt class="spec value" id="val-ty_st"><a href="#val-ty_st" class="anchor"></a><code><span class="keyword">val</span> ty_st : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-ty_state">ty_state</a></code></dt><dt class="spec value" id="val-clear"><a href="#val-clear" class="anchor"></a><code><span class="keyword">val</span> clear : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Reset internal cache, etc.</p></dd></dl><dl><dt class="spec type" id="type-hook"><a href="#type-hook" class="anchor"></a><code><span class="keyword">type</span> hook</code><code> = <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <span><a href="../index.html#type-term">term</a> option</span></code></dt><dd><p>Given a term, try to simplify it. Return <code>None</code> if it didn't change.</p><p>A simple example could be a hook that takes a term <code>t</code>, and if <code>t</code> is <code>app &quot;+&quot; (const x) (const y)</code> where <code>x</code> and <code>y</code> are number, returns <code>Some (const (x+y))</code>, and <code>None</code> otherwise.</p></dd></dl><dl><dt class="spec value" id="val-normalize"><a href="#val-normalize" class="anchor"></a><code><span class="keyword">val</span> normalize : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a></code></dt><dd><p>Normalize a term using all the hooks. This performs a fixpoint, i.e. it only stops when no hook applies anywhere inside the term.</p></dd></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Simplify (sidekick-arith.Sidekick_arith_lra.Make.1-A.S.Solver_internal.Simplify)</title><link rel="stylesheet" href="../../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../../index.html">Make</a> &#x00BB; <a href="../../../index.html">1-A</a> &#x00BB; <a href="../../index.html">S</a> &#x00BB; <a href="../index.html">Solver_internal</a> &#x00BB; Simplify</nav><h1>Module <code>Solver_internal.Simplify</code></h1><p>Simplify terms</p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-tst"><a href="#val-tst" class="anchor"></a><code><span class="keyword">val</span> tst : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term_state">term_state</a></code></dt><dt class="spec value" id="val-ty_st"><a href="#val-ty_st" class="anchor"></a><code><span class="keyword">val</span> ty_st : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-ty_state">ty_state</a></code></dt><dt class="spec value" id="val-clear"><a href="#val-clear" class="anchor"></a><code><span class="keyword">val</span> clear : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Reset internal cache, etc.</p></dd></dl><dl><dt class="spec type" id="type-hook"><a href="#type-hook" class="anchor"></a><code><span class="keyword">type</span> hook</code><code> = <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <span><span>(<a href="../index.html#type-term">term</a> * <a href="../index.html#type-proof">proof</a>)</span> option</span></code></dt><dd><p>Given a term, try to simplify it. Return <code>None</code> if it didn't change.</p><p>A simple example could be a hook that takes a term <code>t</code>, and if <code>t</code> is <code>app &quot;+&quot; (const x) (const y)</code> where <code>x</code> and <code>y</code> are number, returns <code>Some (const (x+y))</code>, and <code>None</code> otherwise.</p></dd></dl><dl><dt class="spec value" id="val-normalize"><a href="#val-normalize" class="anchor"></a><code><span class="keyword">val</span> normalize : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <span><span>(<a href="../index.html#type-term">term</a> * <a href="../P/index.html#type-t">P.t</a>)</span> option</span></code></dt><dd><p>Normalize a term using all the hooks. This performs a fixpoint, i.e. it only stops when no hook applies anywhere inside the term.</p></dd></dl><dl><dt class="spec value" id="val-normalize_t"><a href="#val-normalize_t" class="anchor"></a><code><span class="keyword">val</span> normalize_t : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> * <a href="../P/index.html#type-t">P.t</a></code></dt><dd><p>Normalize a term using all the hooks, along with a proof that the simplification is correct. returns <code>t, refl t</code> if no simplification occurred.</p></dd></dl></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>1-A (sidekick-arith.Sidekick_arith_lra.Make.1-A)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../index.html">Make</a> &#x00BB; 1-A</nav><h1>Parameter <code>Make.1-A</code></h1></header><div class="spec module" id="module-S"><a href="#module-S" class="anchor"></a><code><span class="keyword">module</span> <a href="S/index.html">S</a> : <a href="../../../../sidekick/Sidekick_core/index.html#module-type-SOLVER">Sidekick_core.SOLVER</a></code></div><dl><dt class="spec type" id="type-term"><a href="#type-term" class="anchor"></a><code><span class="keyword">type</span> term</code><code> = <a href="S/T/Term/index.html#type-t">S.T.Term.t</a></code></dt><dt class="spec type" id="type-ty"><a href="#type-ty" class="anchor"></a><code><span class="keyword">type</span> ty</code><code> = <a href="S/T/Ty/index.html#type-t">S.T.Ty.t</a></code></dt></dl><dl><dt class="spec value" id="val-view_as_lra"><a href="#val-view_as_lra" class="anchor"></a><code><span class="keyword">val</span> view_as_lra : <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <span><a href="index.html#type-term">term</a> <a href="../../index.html#type-lra_view">lra_view</a></span></code></dt><dd><p>Project the term into the theory view</p></dd></dl><dl><dt class="spec value" id="val-mk_bool"><a href="#val-mk_bool" class="anchor"></a><code><span class="keyword">val</span> mk_bool : <a href="S/T/Term/index.html#type-state">S.T.Term.state</a> <span>&#45;&gt;</span> bool <span>&#45;&gt;</span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-mk_lra"><a href="#val-mk_lra" class="anchor"></a><code><span class="keyword">val</span> mk_lra : <a href="S/T/Term/index.html#type-state">S.T.Term.state</a> <span>&#45;&gt;</span> <span><a href="index.html#type-term">term</a> <a href="../../index.html#type-lra_view">lra_view</a></span> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a></code></dt><dd><p>Make a term from the given theory view</p></dd></dl><dl><dt class="spec value" id="val-ty_lra"><a href="#val-ty_lra" class="anchor"></a><code><span class="keyword">val</span> ty_lra : <a href="S/T/Term/index.html#type-state">S.T.Term.state</a> <span>&#45;&gt;</span> <a href="index.html#type-ty">ty</a></code></dt><dt class="spec value" id="val-mk_eq"><a href="#val-mk_eq" class="anchor"></a><code><span class="keyword">val</span> mk_eq : <a href="S/T/Term/index.html#type-state">S.T.Term.state</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a></code></dt><dd><p>syntactic equality</p></dd></dl><dl><dt class="spec value" id="val-has_ty_real"><a href="#val-has_ty_real" class="anchor"></a><code><span class="keyword">val</span> has_ty_real : <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Does this term have the type <code>Real</code></p></dd></dl><div class="spec module" id="module-Gensym"><a href="#module-Gensym" class="anchor"></a><code><span class="keyword">module</span> <a href="Gensym/index.html">Gensym</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>1-A (sidekick-arith.Sidekick_arith_lra.Make.1-A)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../index.html">Make</a> &#x00BB; 1-A</nav><h1>Parameter <code>Make.1-A</code></h1></header><div class="spec module" id="module-S"><a href="#module-S" class="anchor"></a><code><span class="keyword">module</span> <a href="S/index.html">S</a> : <a href="../../../../sidekick/Sidekick_core/index.html#module-type-SOLVER">Sidekick_core.SOLVER</a></code></div><dl><dt class="spec type" id="type-term"><a href="#type-term" class="anchor"></a><code><span class="keyword">type</span> term</code><code> = <a href="S/T/Term/index.html#type-t">S.T.Term.t</a></code></dt><dt class="spec type" id="type-ty"><a href="#type-ty" class="anchor"></a><code><span class="keyword">type</span> ty</code><code> = <a href="S/T/Ty/index.html#type-t">S.T.Ty.t</a></code></dt></dl><dl><dt class="spec value" id="val-view_as_lra"><a href="#val-view_as_lra" class="anchor"></a><code><span class="keyword">val</span> view_as_lra : <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <span><a href="index.html#type-term">term</a> <a href="../../index.html#type-lra_view">lra_view</a></span></code></dt><dd><p>Project the term into the theory view</p></dd></dl><dl><dt class="spec value" id="val-mk_bool"><a href="#val-mk_bool" class="anchor"></a><code><span class="keyword">val</span> mk_bool : <a href="S/T/Term/index.html#type-state">S.T.Term.state</a> <span>&#45;&gt;</span> bool <span>&#45;&gt;</span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-mk_lra"><a href="#val-mk_lra" class="anchor"></a><code><span class="keyword">val</span> mk_lra : <a href="S/T/Term/index.html#type-state">S.T.Term.state</a> <span>&#45;&gt;</span> <span><a href="index.html#type-term">term</a> <a href="../../index.html#type-lra_view">lra_view</a></span> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a></code></dt><dd><p>Make a term from the given theory view</p></dd></dl><dl><dt class="spec value" id="val-ty_lra"><a href="#val-ty_lra" class="anchor"></a><code><span class="keyword">val</span> ty_lra : <a href="S/T/Term/index.html#type-state">S.T.Term.state</a> <span>&#45;&gt;</span> <a href="index.html#type-ty">ty</a></code></dt><dt class="spec value" id="val-mk_eq"><a href="#val-mk_eq" class="anchor"></a><code><span class="keyword">val</span> mk_eq : <a href="S/T/Term/index.html#type-state">S.T.Term.state</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a></code></dt><dd><p>syntactic equality</p></dd></dl><dl><dt class="spec value" id="val-has_ty_real"><a href="#val-has_ty_real" class="anchor"></a><code><span class="keyword">val</span> has_ty_real : <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Does this term have the type <code>Real</code></p></dd></dl><dl><dt class="spec value" id="val-proof_lra"><a href="#val-proof_lra" class="anchor"></a><code><span class="keyword">val</span> proof_lra : <span><a href="S/P/index.html#type-lit">S.P.lit</a> Iter.t</span> <span>&#45;&gt;</span> <a href="S/P/index.html#type-t">S.P.t</a></code></dt><dd><p>TODO: more accurate certificates</p></dd></dl><dl><dt class="spec value" id="val-proof_lra_l"><a href="#val-proof_lra_l" class="anchor"></a><code><span class="keyword">val</span> proof_lra_l : <span><a href="S/P/index.html#type-lit">S.P.lit</a> list</span> <span>&#45;&gt;</span> <a href="S/P/index.html#type-t">S.P.t</a></code></dt></dl><div class="spec module" id="module-Gensym"><a href="#module-Gensym" class="anchor"></a><code><span class="keyword">module</span> <a href="Gensym/index.html">Gensym</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Lit (sidekick-arith.Sidekick_arith_lra.ARG.S.Lit)</title><link rel="stylesheet" href="../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../index.html">ARG</a> &#x00BB; <a href="../index.html">S</a> &#x00BB; Lit</nav><h1>Module <code>S.Lit</code></h1></header><dl><dt class="spec module" id="module-T"><a href="#module-T" class="anchor"></a><code><span class="keyword">module</span> T = <a href="../index.html#module-T">T</a></code></dt><dd><p>Literals depend on terms</p></dd></dl><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt><dd><p>A literal</p></dd></dl><dl><dt class="spec value" id="val-term"><a href="#val-term" class="anchor"></a><code><span class="keyword">val</span> term : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="T/Term/index.html#type-t">T.Term.t</a></code></dt><dd><p>Get the (positive) term</p></dd></dl><dl><dt class="spec value" id="val-sign"><a href="#val-sign" class="anchor"></a><code><span class="keyword">val</span> sign : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Get the sign. A negated literal has sign <code>false</code>.</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="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p>Take negation of literal. <code>sign (neg lit) = not (sign lit)</code>.</p></dd></dl><dl><dt class="spec value" id="val-abs"><a href="#val-abs" class="anchor"></a><code><span class="keyword">val</span> abs : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p><code>abs lit</code> is like <code>lit</code> but always positive, i.e. <code>sign (abs lit) = true</code></p></dd></dl><dl><dt class="spec value" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span class="keyword">val</span> equal : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-hash"><a href="#val-hash" class="anchor"></a><code><span class="keyword">val</span> hash : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><a href="index.html#type-t">t</a> <a href="../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Lit (sidekick-arith.Sidekick_arith_lra.ARG.S.Lit)</title><link rel="stylesheet" href="../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../index.html">ARG</a> &#x00BB; <a href="../index.html">S</a> &#x00BB; Lit</nav><h1>Module <code>S.Lit</code></h1></header><dl><dt class="spec module" id="module-T"><a href="#module-T" class="anchor"></a><code><span class="keyword">module</span> T = <a href="../index.html#module-T">T</a></code></dt><dd><p>Literals depend on terms</p></dd></dl><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt><dd><p>A literal</p></dd></dl><dl><dt class="spec value" id="val-term"><a href="#val-term" class="anchor"></a><code><span class="keyword">val</span> term : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="T/Term/index.html#type-t">T.Term.t</a></code></dt><dd><p>Get the (positive) term</p></dd></dl><dl><dt class="spec value" id="val-sign"><a href="#val-sign" class="anchor"></a><code><span class="keyword">val</span> sign : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Get the sign. A negated literal has sign <code>false</code>.</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="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p>Take negation of literal. <code>sign (neg lit) = not (sign lit)</code>.</p></dd></dl><dl><dt class="spec value" id="val-abs"><a href="#val-abs" class="anchor"></a><code><span class="keyword">val</span> abs : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p><code>abs lit</code> is like <code>lit</code> but always positive, i.e. <code>sign (abs lit) = true</code></p></dd></dl><dl><dt class="spec value" id="val-signed_term"><a href="#val-signed_term" class="anchor"></a><code><span class="keyword">val</span> signed_term : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="T/Term/index.html#type-t">T.Term.t</a> * bool</code></dt><dt class="spec value" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span class="keyword">val</span> equal : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-hash"><a href="#val-hash" class="anchor"></a><code><span class="keyword">val</span> hash : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><a href="index.html#type-t">t</a> <a href="../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt></dl></div></body></html>

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Quip (sidekick-arith.Sidekick_arith_lra.ARG.S.P.Quip)</title><link rel="stylesheet" href="../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../index.html">ARG</a> &#x00BB; <a href="../../index.html">S</a> &#x00BB; <a href="../index.html">P</a> &#x00BB; Quip</nav><h1>Module <code>P.Quip</code></h1></header><dl><dt class="spec value" id="val-output"><a href="#val-output" class="anchor"></a><code><span class="keyword">val</span> output : Stdlib.out_channel <span>&#45;&gt;</span> <a href="../index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Printer in Quip format (experimental)</p></dd></dl></div></body></html>

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Pre_proof (sidekick-arith.Sidekick_arith_lra.ARG.S.Pre_proof)</title><link rel="stylesheet" href="../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../index.html">ARG</a> &#x00BB; <a href="../index.html">S</a> &#x00BB; Pre_proof</nav><h1>Module <code>S.Pre_proof</code></h1><h3 id="internal-representation-of-proofs"><a href="#internal-representation-of-proofs" class="anchor"></a>Internal representation of proofs</h3><p>A type or state convertible into <a href="../P/index.html#type-t"><code>P.t</code></a></p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-output"><a href="#val-output" class="anchor"></a><code><span class="keyword">val</span> output : Stdlib.out_channel <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Output onto a channel, efficiently</p></dd></dl><dl><dt class="spec value" id="val-pp_debug"><a href="#val-pp_debug" class="anchor"></a><code><span class="keyword">val</span> pp_debug : <span><a href="index.html#type-t">t</a> <a href="../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt><dt class="spec value" id="val-pp_dot"><a href="#val-pp_dot" class="anchor"></a><code><span class="keyword">val</span> pp_dot : <span><span><a href="index.html#type-t">t</a> <a href="../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span> option</span></code></dt><dd><p>Optional printer into DOT/graphviz</p></dd></dl><dl><dt class="spec value" id="val-check"><a href="#val-check" class="anchor"></a><code><span class="keyword">val</span> check : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Check the proof (to an unspecified level of confidence; this can be a no-op). May fail.</p></dd></dl><dl><dt class="spec value" id="val-to_proof"><a href="#val-to_proof" class="anchor"></a><code><span class="keyword">val</span> to_proof : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../P/index.html#type-t">P.t</a></code></dt></dl></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Proof (sidekick-arith.Sidekick_arith_lra.ARG.S.Proof)</title><link rel="stylesheet" href="../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../index.html">ARG</a> &#x00BB; <a href="../index.html">S</a> &#x00BB; Proof</nav><h1>Module <code>S.Proof</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-check"><a href="#val-check" class="anchor"></a><code><span class="keyword">val</span> check : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-pp_dot"><a href="#val-pp_dot" class="anchor"></a><code><span class="keyword">val</span> pp_dot : <span><a href="index.html#type-t">t</a> <a href="../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt></dl></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Actions (sidekick-arith.Sidekick_arith_lra.ARG.S.Solver_internal.CC.Actions)</title><link rel="stylesheet" href="../../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../../index.html">ARG</a> &#x00BB; <a href="../../../index.html">S</a> &#x00BB; <a href="../../index.html">Solver_internal</a> &#x00BB; <a href="../index.html">CC</a> &#x00BB; Actions</nav><h1>Module <code>CC.Actions</code></h1></header><div class="spec module" id="module-T"><a href="#module-T" class="anchor"></a><code><span class="keyword">module</span> T = <a href="../index.html#module-T">T</a></code></div><div class="spec module" id="module-P"><a href="#module-P" class="anchor"></a><code><span class="keyword">module</span> P = <a href="../index.html#module-P">P</a></code></div><div class="spec module" id="module-Lit"><a href="#module-Lit" class="anchor"></a><code><span class="keyword">module</span> Lit = <a href="../index.html#module-Lit">Lit</a></code></div><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = <a href="../../index.html#type-actions">actions</a></code></dt><dd><p>An action handle. It is used by the congruence closure to perform the actions below. How it performs the actions is not specified and is solver-specific.</p></dd></dl><dl><dt class="spec value" id="val-raise_conflict"><a href="#val-raise_conflict" class="anchor"></a><code><span class="keyword">val</span> raise_conflict : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><a href="Lit/index.html#type-t">Lit.t</a> list</span> <span>&#45;&gt;</span> <a href="P/index.html#type-t">P.t</a> <span>&#45;&gt;</span> <span class="type-var">'a</span></code></dt><dd><p><code>raise_conflict acts c pr</code> declares that <code>c</code> is a tautology of the theory of congruence. This does not return (it should raise an exception).</p><dl><dt>parameter pr</dt><dd><p>the proof of <code>c</code> being a tautology</p></dd></dl></dd></dl><dl><dt class="spec value" id="val-propagate"><a href="#val-propagate" class="anchor"></a><code><span class="keyword">val</span> propagate : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="Lit/index.html#type-t">Lit.t</a> <span>&#45;&gt;</span> <span>reason:<span>(unit <span>&#45;&gt;</span> <span><a href="Lit/index.html#type-t">Lit.t</a> list</span>)</span></span> <span>&#45;&gt;</span> <a href="P/index.html#type-t">P.t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p><code>propagate acts lit ~reason pr</code> declares that <code>reason() =&gt; lit</code> is a tautology.</p><ul><li><code>reason()</code> should return a list of literals that are currently true.</li><li><code>lit</code> should be a literal of interest (see <a href="../../../../../../../sidekick/Sidekick_core/module-type-CC_S/index.html#val-set_as_lit"><code>Sidekick_core.CC_S.set_as_lit</code></a>).</li></ul><p>This function might never be called, a congruence closure has the right to not propagate and only trigger conflicts.</p></dd></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Actions (sidekick-arith.Sidekick_arith_lra.ARG.S.Solver_internal.CC.Actions)</title><link rel="stylesheet" href="../../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../../index.html">ARG</a> &#x00BB; <a href="../../../index.html">S</a> &#x00BB; <a href="../../index.html">Solver_internal</a> &#x00BB; <a href="../index.html">CC</a> &#x00BB; Actions</nav><h1>Module <code>CC.Actions</code></h1></header><div class="spec module" id="module-T"><a href="#module-T" class="anchor"></a><code><span class="keyword">module</span> T = <a href="../index.html#module-T">T</a></code></div><div class="spec module" id="module-Lit"><a href="#module-Lit" class="anchor"></a><code><span class="keyword">module</span> Lit = <a href="../index.html#module-Lit">Lit</a></code></div><div class="spec module" id="module-P"><a href="#module-P" class="anchor"></a><code><span class="keyword">module</span> P = <a href="../index.html#module-P">P</a></code></div><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = <a href="../../index.html#type-actions">actions</a></code></dt><dd><p>An action handle. It is used by the congruence closure to perform the actions below. How it performs the actions is not specified and is solver-specific.</p></dd></dl><dl><dt class="spec value" id="val-raise_conflict"><a href="#val-raise_conflict" class="anchor"></a><code><span class="keyword">val</span> raise_conflict : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><a href="Lit/index.html#type-t">Lit.t</a> list</span> <span>&#45;&gt;</span> <a href="P/index.html#type-t">P.t</a> <span>&#45;&gt;</span> <span class="type-var">'a</span></code></dt><dd><p><code>raise_conflict acts c pr</code> declares that <code>c</code> is a tautology of the theory of congruence. This does not return (it should raise an exception).</p><dl><dt>parameter pr</dt><dd><p>the proof of <code>c</code> being a tautology</p></dd></dl></dd></dl><dl><dt class="spec value" id="val-propagate"><a href="#val-propagate" class="anchor"></a><code><span class="keyword">val</span> propagate : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="Lit/index.html#type-t">Lit.t</a> <span>&#45;&gt;</span> <span>reason:<span>(unit <span>&#45;&gt;</span> <span><a href="Lit/index.html#type-t">Lit.t</a> list</span> * <a href="P/index.html#type-t">P.t</a>)</span></span> <span>&#45;&gt;</span> unit</code></dt><dd><p><code>propagate acts lit ~reason pr</code> declares that <code>reason() =&gt; lit</code> is a tautology.</p><ul><li><code>reason()</code> should return a list of literals that are currently true.</li><li><code>lit</code> should be a literal of interest (see <a href="../../../../../../../sidekick/Sidekick_core/module-type-CC_S/index.html#val-set_as_lit"><code>Sidekick_core.CC_S.set_as_lit</code></a>).</li></ul><p>This function might never be called, a congruence closure has the right to not propagate and only trigger conflicts.</p></dd></dl></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Expl (sidekick-arith.Sidekick_arith_lra.ARG.S.Solver_internal.CC.Expl)</title><link rel="stylesheet" href="../../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../../index.html">ARG</a> &#x00BB; <a href="../../../index.html">S</a> &#x00BB; <a href="../../index.html">Solver_internal</a> &#x00BB; <a href="../index.html">CC</a> &#x00BB; Expl</nav><h1>Module <code>CC.Expl</code></h1><p>Explanations</p><p>Explanations are specialized proofs, created by the congruence closure when asked to justify why 2 terms are equal.</p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><a href="index.html#type-t">t</a> <a href="../../../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt><dt class="spec value" id="val-mk_merge"><a href="#val-mk_merge" class="anchor"></a><code><span class="keyword">val</span> mk_merge : <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_merge_t"><a href="#val-mk_merge_t" class="anchor"></a><code><span class="keyword">val</span> mk_merge_t : <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_lit"><a href="#val-mk_lit" class="anchor"></a><code><span class="keyword">val</span> mk_lit : <a href="../index.html#type-lit">lit</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_list"><a href="#val-mk_list" class="anchor"></a><code><span class="keyword">val</span> mk_list : <span><a href="index.html#type-t">t</a> list</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_theory"><a href="#val-mk_theory" class="anchor"></a><code><span class="keyword">val</span> mk_theory : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Expl (sidekick-arith.Sidekick_arith_lra.ARG.S.Solver_internal.CC.Expl)</title><link rel="stylesheet" href="../../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../../index.html">ARG</a> &#x00BB; <a href="../../../index.html">S</a> &#x00BB; <a href="../../index.html">Solver_internal</a> &#x00BB; <a href="../index.html">CC</a> &#x00BB; Expl</nav><h1>Module <code>CC.Expl</code></h1><p>Explanations</p><p>Explanations are specialized proofs, created by the congruence closure when asked to justify why 2 terms are equal.</p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><a href="index.html#type-t">t</a> <a href="../../../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt><dt class="spec value" id="val-mk_merge"><a href="#val-mk_merge" class="anchor"></a><code><span class="keyword">val</span> mk_merge : <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_merge_t"><a href="#val-mk_merge_t" class="anchor"></a><code><span class="keyword">val</span> mk_merge_t : <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_lit"><a href="#val-mk_lit" class="anchor"></a><code><span class="keyword">val</span> mk_lit : <a href="../index.html#type-lit">lit</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_list"><a href="#val-mk_list" class="anchor"></a><code><span class="keyword">val</span> mk_list : <span><a href="index.html#type-t">t</a> list</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_proof"><a href="#val-mk_proof" class="anchor"></a><code><span class="keyword">val</span> mk_proof : <a href="../P/index.html#type-t">P.t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_theory"><a href="#val-mk_theory" class="anchor"></a><code><span class="keyword">val</span> mk_theory : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt></dl></div></body></html>

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Simplify (sidekick-arith.Sidekick_arith_lra.ARG.S.Solver_internal.Simplify)</title><link rel="stylesheet" href="../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../index.html">ARG</a> &#x00BB; <a href="../../index.html">S</a> &#x00BB; <a href="../index.html">Solver_internal</a> &#x00BB; Simplify</nav><h1>Module <code>Solver_internal.Simplify</code></h1><p>Simplify terms</p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-tst"><a href="#val-tst" class="anchor"></a><code><span class="keyword">val</span> tst : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term_state">term_state</a></code></dt><dt class="spec value" id="val-ty_st"><a href="#val-ty_st" class="anchor"></a><code><span class="keyword">val</span> ty_st : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-ty_state">ty_state</a></code></dt><dt class="spec value" id="val-clear"><a href="#val-clear" class="anchor"></a><code><span class="keyword">val</span> clear : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Reset internal cache, etc.</p></dd></dl><dl><dt class="spec type" id="type-hook"><a href="#type-hook" class="anchor"></a><code><span class="keyword">type</span> hook</code><code> = <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <span><a href="../index.html#type-term">term</a> option</span></code></dt><dd><p>Given a term, try to simplify it. Return <code>None</code> if it didn't change.</p><p>A simple example could be a hook that takes a term <code>t</code>, and if <code>t</code> is <code>app &quot;+&quot; (const x) (const y)</code> where <code>x</code> and <code>y</code> are number, returns <code>Some (const (x+y))</code>, and <code>None</code> otherwise.</p></dd></dl><dl><dt class="spec value" id="val-normalize"><a href="#val-normalize" class="anchor"></a><code><span class="keyword">val</span> normalize : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a></code></dt><dd><p>Normalize a term using all the hooks. This performs a fixpoint, i.e. it only stops when no hook applies anywhere inside the term.</p></dd></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Simplify (sidekick-arith.Sidekick_arith_lra.ARG.S.Solver_internal.Simplify)</title><link rel="stylesheet" href="../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../index.html">ARG</a> &#x00BB; <a href="../../index.html">S</a> &#x00BB; <a href="../index.html">Solver_internal</a> &#x00BB; Simplify</nav><h1>Module <code>Solver_internal.Simplify</code></h1><p>Simplify terms</p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-tst"><a href="#val-tst" class="anchor"></a><code><span class="keyword">val</span> tst : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term_state">term_state</a></code></dt><dt class="spec value" id="val-ty_st"><a href="#val-ty_st" class="anchor"></a><code><span class="keyword">val</span> ty_st : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-ty_state">ty_state</a></code></dt><dt class="spec value" id="val-clear"><a href="#val-clear" class="anchor"></a><code><span class="keyword">val</span> clear : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Reset internal cache, etc.</p></dd></dl><dl><dt class="spec type" id="type-hook"><a href="#type-hook" class="anchor"></a><code><span class="keyword">type</span> hook</code><code> = <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <span><span>(<a href="../index.html#type-term">term</a> * <a href="../index.html#type-proof">proof</a>)</span> option</span></code></dt><dd><p>Given a term, try to simplify it. Return <code>None</code> if it didn't change.</p><p>A simple example could be a hook that takes a term <code>t</code>, and if <code>t</code> is <code>app &quot;+&quot; (const x) (const y)</code> where <code>x</code> and <code>y</code> are number, returns <code>Some (const (x+y))</code>, and <code>None</code> otherwise.</p></dd></dl><dl><dt class="spec value" id="val-normalize"><a href="#val-normalize" class="anchor"></a><code><span class="keyword">val</span> normalize : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <span><span>(<a href="../index.html#type-term">term</a> * <a href="../P/index.html#type-t">P.t</a>)</span> option</span></code></dt><dd><p>Normalize a term using all the hooks. This performs a fixpoint, i.e. it only stops when no hook applies anywhere inside the term.</p></dd></dl><dl><dt class="spec value" id="val-normalize_t"><a href="#val-normalize_t" class="anchor"></a><code><span class="keyword">val</span> normalize_t : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> * <a href="../P/index.html#type-t">P.t</a></code></dt><dd><p>Normalize a term using all the hooks, along with a proof that the simplification is correct. returns <code>t, refl t</code> if no simplification occurred.</p></dd></dl></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ARG (sidekick-arith.Sidekick_arith_lra.ARG)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../index.html">Sidekick_arith_lra</a> &#x00BB; ARG</nav><h1>Module type <code>Sidekick_arith_lra.ARG</code></h1></header><div class="spec module" id="module-S"><a href="#module-S" class="anchor"></a><code><span class="keyword">module</span> <a href="S/index.html">S</a> : <a href="../../../sidekick/Sidekick_core/index.html#module-type-SOLVER">Sidekick_core.SOLVER</a></code></div><dl><dt class="spec type" id="type-term"><a href="#type-term" class="anchor"></a><code><span class="keyword">type</span> term</code><code> = <a href="S/T/Term/index.html#type-t">S.T.Term.t</a></code></dt><dt class="spec type" id="type-ty"><a href="#type-ty" class="anchor"></a><code><span class="keyword">type</span> ty</code><code> = <a href="S/T/Ty/index.html#type-t">S.T.Ty.t</a></code></dt></dl><dl><dt class="spec value" id="val-view_as_lra"><a href="#val-view_as_lra" class="anchor"></a><code><span class="keyword">val</span> view_as_lra : <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <span><a href="index.html#type-term">term</a> <a href="../index.html#type-lra_view">lra_view</a></span></code></dt><dd><p>Project the term into the theory view</p></dd></dl><dl><dt class="spec value" id="val-mk_bool"><a href="#val-mk_bool" class="anchor"></a><code><span class="keyword">val</span> mk_bool : <a href="S/T/Term/index.html#type-state">S.T.Term.state</a> <span>&#45;&gt;</span> bool <span>&#45;&gt;</span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-mk_lra"><a href="#val-mk_lra" class="anchor"></a><code><span class="keyword">val</span> mk_lra : <a href="S/T/Term/index.html#type-state">S.T.Term.state</a> <span>&#45;&gt;</span> <span><a href="index.html#type-term">term</a> <a href="../index.html#type-lra_view">lra_view</a></span> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a></code></dt><dd><p>Make a term from the given theory view</p></dd></dl><dl><dt class="spec value" id="val-ty_lra"><a href="#val-ty_lra" class="anchor"></a><code><span class="keyword">val</span> ty_lra : <a href="S/T/Term/index.html#type-state">S.T.Term.state</a> <span>&#45;&gt;</span> <a href="index.html#type-ty">ty</a></code></dt><dt class="spec value" id="val-mk_eq"><a href="#val-mk_eq" class="anchor"></a><code><span class="keyword">val</span> mk_eq : <a href="S/T/Term/index.html#type-state">S.T.Term.state</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a></code></dt><dd><p>syntactic equality</p></dd></dl><dl><dt class="spec value" id="val-has_ty_real"><a href="#val-has_ty_real" class="anchor"></a><code><span class="keyword">val</span> has_ty_real : <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Does this term have the type <code>Real</code></p></dd></dl><div class="spec module" id="module-Gensym"><a href="#module-Gensym" class="anchor"></a><code><span class="keyword">module</span> <a href="Gensym/index.html">Gensym</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ARG (sidekick-arith.Sidekick_arith_lra.ARG)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../index.html">Sidekick_arith_lra</a> &#x00BB; ARG</nav><h1>Module type <code>Sidekick_arith_lra.ARG</code></h1></header><div class="spec module" id="module-S"><a href="#module-S" class="anchor"></a><code><span class="keyword">module</span> <a href="S/index.html">S</a> : <a href="../../../sidekick/Sidekick_core/index.html#module-type-SOLVER">Sidekick_core.SOLVER</a></code></div><dl><dt class="spec type" id="type-term"><a href="#type-term" class="anchor"></a><code><span class="keyword">type</span> term</code><code> = <a href="S/T/Term/index.html#type-t">S.T.Term.t</a></code></dt><dt class="spec type" id="type-ty"><a href="#type-ty" class="anchor"></a><code><span class="keyword">type</span> ty</code><code> = <a href="S/T/Ty/index.html#type-t">S.T.Ty.t</a></code></dt></dl><dl><dt class="spec value" id="val-view_as_lra"><a href="#val-view_as_lra" class="anchor"></a><code><span class="keyword">val</span> view_as_lra : <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <span><a href="index.html#type-term">term</a> <a href="../index.html#type-lra_view">lra_view</a></span></code></dt><dd><p>Project the term into the theory view</p></dd></dl><dl><dt class="spec value" id="val-mk_bool"><a href="#val-mk_bool" class="anchor"></a><code><span class="keyword">val</span> mk_bool : <a href="S/T/Term/index.html#type-state">S.T.Term.state</a> <span>&#45;&gt;</span> bool <span>&#45;&gt;</span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-mk_lra"><a href="#val-mk_lra" class="anchor"></a><code><span class="keyword">val</span> mk_lra : <a href="S/T/Term/index.html#type-state">S.T.Term.state</a> <span>&#45;&gt;</span> <span><a href="index.html#type-term">term</a> <a href="../index.html#type-lra_view">lra_view</a></span> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a></code></dt><dd><p>Make a term from the given theory view</p></dd></dl><dl><dt class="spec value" id="val-ty_lra"><a href="#val-ty_lra" class="anchor"></a><code><span class="keyword">val</span> ty_lra : <a href="S/T/Term/index.html#type-state">S.T.Term.state</a> <span>&#45;&gt;</span> <a href="index.html#type-ty">ty</a></code></dt><dt class="spec value" id="val-mk_eq"><a href="#val-mk_eq" class="anchor"></a><code><span class="keyword">val</span> mk_eq : <a href="S/T/Term/index.html#type-state">S.T.Term.state</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a></code></dt><dd><p>syntactic equality</p></dd></dl><dl><dt class="spec value" id="val-has_ty_real"><a href="#val-has_ty_real" class="anchor"></a><code><span class="keyword">val</span> has_ty_real : <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Does this term have the type <code>Real</code></p></dd></dl><dl><dt class="spec value" id="val-proof_lra"><a href="#val-proof_lra" class="anchor"></a><code><span class="keyword">val</span> proof_lra : <span><a href="S/P/index.html#type-lit">S.P.lit</a> Iter.t</span> <span>&#45;&gt;</span> <a href="S/P/index.html#type-t">S.P.t</a></code></dt><dd><p>TODO: more accurate certificates</p></dd></dl><dl><dt class="spec value" id="val-proof_lra_l"><a href="#val-proof_lra_l" class="anchor"></a><code><span class="keyword">val</span> proof_lra_l : <span><a href="S/P/index.html#type-lit">S.P.lit</a> list</span> <span>&#45;&gt;</span> <a href="S/P/index.html#type-t">S.P.t</a></code></dt></dl><div class="spec module" id="module-Gensym"><a href="#module-Gensym" class="anchor"></a><code><span class="keyword">module</span> <a href="Gensym/index.html">Gensym</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Lit (sidekick-arith.Sidekick_arith_lra.S.A.S.Lit)</title><link rel="stylesheet" href="../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../index.html">S</a> &#x00BB; <a href="../../index.html">A</a> &#x00BB; <a href="../index.html">S</a> &#x00BB; Lit</nav><h1>Module <code>S.Lit</code></h1></header><dl><dt class="spec module" id="module-T"><a href="#module-T" class="anchor"></a><code><span class="keyword">module</span> T = <a href="../index.html#module-T">T</a></code></dt><dd><p>Literals depend on terms</p></dd></dl><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt><dd><p>A literal</p></dd></dl><dl><dt class="spec value" id="val-term"><a href="#val-term" class="anchor"></a><code><span class="keyword">val</span> term : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="T/Term/index.html#type-t">T.Term.t</a></code></dt><dd><p>Get the (positive) term</p></dd></dl><dl><dt class="spec value" id="val-sign"><a href="#val-sign" class="anchor"></a><code><span class="keyword">val</span> sign : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Get the sign. A negated literal has sign <code>false</code>.</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="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p>Take negation of literal. <code>sign (neg lit) = not (sign lit)</code>.</p></dd></dl><dl><dt class="spec value" id="val-abs"><a href="#val-abs" class="anchor"></a><code><span class="keyword">val</span> abs : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p><code>abs lit</code> is like <code>lit</code> but always positive, i.e. <code>sign (abs lit) = true</code></p></dd></dl><dl><dt class="spec value" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span class="keyword">val</span> equal : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-hash"><a href="#val-hash" class="anchor"></a><code><span class="keyword">val</span> hash : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><a href="index.html#type-t">t</a> <a href="../../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Lit (sidekick-arith.Sidekick_arith_lra.S.A.S.Lit)</title><link rel="stylesheet" href="../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../index.html">S</a> &#x00BB; <a href="../../index.html">A</a> &#x00BB; <a href="../index.html">S</a> &#x00BB; Lit</nav><h1>Module <code>S.Lit</code></h1></header><dl><dt class="spec module" id="module-T"><a href="#module-T" class="anchor"></a><code><span class="keyword">module</span> T = <a href="../index.html#module-T">T</a></code></dt><dd><p>Literals depend on terms</p></dd></dl><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt><dd><p>A literal</p></dd></dl><dl><dt class="spec value" id="val-term"><a href="#val-term" class="anchor"></a><code><span class="keyword">val</span> term : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="T/Term/index.html#type-t">T.Term.t</a></code></dt><dd><p>Get the (positive) term</p></dd></dl><dl><dt class="spec value" id="val-sign"><a href="#val-sign" class="anchor"></a><code><span class="keyword">val</span> sign : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Get the sign. A negated literal has sign <code>false</code>.</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="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p>Take negation of literal. <code>sign (neg lit) = not (sign lit)</code>.</p></dd></dl><dl><dt class="spec value" id="val-abs"><a href="#val-abs" class="anchor"></a><code><span class="keyword">val</span> abs : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p><code>abs lit</code> is like <code>lit</code> but always positive, i.e. <code>sign (abs lit) = true</code></p></dd></dl><dl><dt class="spec value" id="val-signed_term"><a href="#val-signed_term" class="anchor"></a><code><span class="keyword">val</span> signed_term : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="T/Term/index.html#type-t">T.Term.t</a> * bool</code></dt><dt class="spec value" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span class="keyword">val</span> equal : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-hash"><a href="#val-hash" class="anchor"></a><code><span class="keyword">val</span> hash : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><a href="index.html#type-t">t</a> <a href="../../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt></dl></div></body></html>

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Quip (sidekick-arith.Sidekick_arith_lra.S.A.S.P.Quip)</title><link rel="stylesheet" href="../../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../../index.html">S</a> &#x00BB; <a href="../../../index.html">A</a> &#x00BB; <a href="../../index.html">S</a> &#x00BB; <a href="../index.html">P</a> &#x00BB; Quip</nav><h1>Module <code>P.Quip</code></h1></header><dl><dt class="spec value" id="val-output"><a href="#val-output" class="anchor"></a><code><span class="keyword">val</span> output : Stdlib.out_channel <span>&#45;&gt;</span> <a href="../index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Printer in Quip format (experimental)</p></dd></dl></div></body></html>

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Pre_proof (sidekick-arith.Sidekick_arith_lra.S.A.S.Pre_proof)</title><link rel="stylesheet" href="../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../index.html">S</a> &#x00BB; <a href="../../index.html">A</a> &#x00BB; <a href="../index.html">S</a> &#x00BB; Pre_proof</nav><h1>Module <code>S.Pre_proof</code></h1><h3 id="internal-representation-of-proofs"><a href="#internal-representation-of-proofs" class="anchor"></a>Internal representation of proofs</h3><p>A type or state convertible into <a href="../P/index.html#type-t"><code>P.t</code></a></p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-output"><a href="#val-output" class="anchor"></a><code><span class="keyword">val</span> output : Stdlib.out_channel <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Output onto a channel, efficiently</p></dd></dl><dl><dt class="spec value" id="val-pp_debug"><a href="#val-pp_debug" class="anchor"></a><code><span class="keyword">val</span> pp_debug : <span><a href="index.html#type-t">t</a> <a href="../../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt><dt class="spec value" id="val-pp_dot"><a href="#val-pp_dot" class="anchor"></a><code><span class="keyword">val</span> pp_dot : <span><span><a href="index.html#type-t">t</a> <a href="../../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span> option</span></code></dt><dd><p>Optional printer into DOT/graphviz</p></dd></dl><dl><dt class="spec value" id="val-check"><a href="#val-check" class="anchor"></a><code><span class="keyword">val</span> check : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Check the proof (to an unspecified level of confidence; this can be a no-op). May fail.</p></dd></dl><dl><dt class="spec value" id="val-to_proof"><a href="#val-to_proof" class="anchor"></a><code><span class="keyword">val</span> to_proof : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../P/index.html#type-t">P.t</a></code></dt></dl></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Proof (sidekick-arith.Sidekick_arith_lra.S.A.S.Proof)</title><link rel="stylesheet" href="../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../index.html">S</a> &#x00BB; <a href="../../index.html">A</a> &#x00BB; <a href="../index.html">S</a> &#x00BB; Proof</nav><h1>Module <code>S.Proof</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-check"><a href="#val-check" class="anchor"></a><code><span class="keyword">val</span> check : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-pp_dot"><a href="#val-pp_dot" class="anchor"></a><code><span class="keyword">val</span> pp_dot : <span><a href="index.html#type-t">t</a> <a href="../../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt></dl></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Actions (sidekick-arith.Sidekick_arith_lra.S.A.S.Solver_internal.CC.Actions)</title><link rel="stylesheet" href="../../../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../../../index.html">S</a> &#x00BB; <a href="../../../../index.html">A</a> &#x00BB; <a href="../../../index.html">S</a> &#x00BB; <a href="../../index.html">Solver_internal</a> &#x00BB; <a href="../index.html">CC</a> &#x00BB; Actions</nav><h1>Module <code>CC.Actions</code></h1></header><div class="spec module" id="module-T"><a href="#module-T" class="anchor"></a><code><span class="keyword">module</span> T = <a href="../index.html#module-T">T</a></code></div><div class="spec module" id="module-P"><a href="#module-P" class="anchor"></a><code><span class="keyword">module</span> P = <a href="../index.html#module-P">P</a></code></div><div class="spec module" id="module-Lit"><a href="#module-Lit" class="anchor"></a><code><span class="keyword">module</span> Lit = <a href="../index.html#module-Lit">Lit</a></code></div><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = <a href="../../index.html#type-actions">actions</a></code></dt><dd><p>An action handle. It is used by the congruence closure to perform the actions below. How it performs the actions is not specified and is solver-specific.</p></dd></dl><dl><dt class="spec value" id="val-raise_conflict"><a href="#val-raise_conflict" class="anchor"></a><code><span class="keyword">val</span> raise_conflict : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><a href="Lit/index.html#type-t">Lit.t</a> list</span> <span>&#45;&gt;</span> <a href="P/index.html#type-t">P.t</a> <span>&#45;&gt;</span> <span class="type-var">'a</span></code></dt><dd><p><code>raise_conflict acts c pr</code> declares that <code>c</code> is a tautology of the theory of congruence. This does not return (it should raise an exception).</p><dl><dt>parameter pr</dt><dd><p>the proof of <code>c</code> being a tautology</p></dd></dl></dd></dl><dl><dt class="spec value" id="val-propagate"><a href="#val-propagate" class="anchor"></a><code><span class="keyword">val</span> propagate : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="Lit/index.html#type-t">Lit.t</a> <span>&#45;&gt;</span> <span>reason:<span>(unit <span>&#45;&gt;</span> <span><a href="Lit/index.html#type-t">Lit.t</a> list</span>)</span></span> <span>&#45;&gt;</span> <a href="P/index.html#type-t">P.t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p><code>propagate acts lit ~reason pr</code> declares that <code>reason() =&gt; lit</code> is a tautology.</p><ul><li><code>reason()</code> should return a list of literals that are currently true.</li><li><code>lit</code> should be a literal of interest (see <a href="../../../../../../../../sidekick/Sidekick_core/module-type-CC_S/index.html#val-set_as_lit"><code>Sidekick_core.CC_S.set_as_lit</code></a>).</li></ul><p>This function might never be called, a congruence closure has the right to not propagate and only trigger conflicts.</p></dd></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Actions (sidekick-arith.Sidekick_arith_lra.S.A.S.Solver_internal.CC.Actions)</title><link rel="stylesheet" href="../../../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../../../index.html">S</a> &#x00BB; <a href="../../../../index.html">A</a> &#x00BB; <a href="../../../index.html">S</a> &#x00BB; <a href="../../index.html">Solver_internal</a> &#x00BB; <a href="../index.html">CC</a> &#x00BB; Actions</nav><h1>Module <code>CC.Actions</code></h1></header><div class="spec module" id="module-T"><a href="#module-T" class="anchor"></a><code><span class="keyword">module</span> T = <a href="../index.html#module-T">T</a></code></div><div class="spec module" id="module-Lit"><a href="#module-Lit" class="anchor"></a><code><span class="keyword">module</span> Lit = <a href="../index.html#module-Lit">Lit</a></code></div><div class="spec module" id="module-P"><a href="#module-P" class="anchor"></a><code><span class="keyword">module</span> P = <a href="../index.html#module-P">P</a></code></div><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = <a href="../../index.html#type-actions">actions</a></code></dt><dd><p>An action handle. It is used by the congruence closure to perform the actions below. How it performs the actions is not specified and is solver-specific.</p></dd></dl><dl><dt class="spec value" id="val-raise_conflict"><a href="#val-raise_conflict" class="anchor"></a><code><span class="keyword">val</span> raise_conflict : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><a href="Lit/index.html#type-t">Lit.t</a> list</span> <span>&#45;&gt;</span> <a href="P/index.html#type-t">P.t</a> <span>&#45;&gt;</span> <span class="type-var">'a</span></code></dt><dd><p><code>raise_conflict acts c pr</code> declares that <code>c</code> is a tautology of the theory of congruence. This does not return (it should raise an exception).</p><dl><dt>parameter pr</dt><dd><p>the proof of <code>c</code> being a tautology</p></dd></dl></dd></dl><dl><dt class="spec value" id="val-propagate"><a href="#val-propagate" class="anchor"></a><code><span class="keyword">val</span> propagate : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="Lit/index.html#type-t">Lit.t</a> <span>&#45;&gt;</span> <span>reason:<span>(unit <span>&#45;&gt;</span> <span><a href="Lit/index.html#type-t">Lit.t</a> list</span> * <a href="P/index.html#type-t">P.t</a>)</span></span> <span>&#45;&gt;</span> unit</code></dt><dd><p><code>propagate acts lit ~reason pr</code> declares that <code>reason() =&gt; lit</code> is a tautology.</p><ul><li><code>reason()</code> should return a list of literals that are currently true.</li><li><code>lit</code> should be a literal of interest (see <a href="../../../../../../../../sidekick/Sidekick_core/module-type-CC_S/index.html#val-set_as_lit"><code>Sidekick_core.CC_S.set_as_lit</code></a>).</li></ul><p>This function might never be called, a congruence closure has the right to not propagate and only trigger conflicts.</p></dd></dl></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Expl (sidekick-arith.Sidekick_arith_lra.S.A.S.Solver_internal.CC.Expl)</title><link rel="stylesheet" href="../../../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../../../index.html">S</a> &#x00BB; <a href="../../../../index.html">A</a> &#x00BB; <a href="../../../index.html">S</a> &#x00BB; <a href="../../index.html">Solver_internal</a> &#x00BB; <a href="../index.html">CC</a> &#x00BB; Expl</nav><h1>Module <code>CC.Expl</code></h1><p>Explanations</p><p>Explanations are specialized proofs, created by the congruence closure when asked to justify why 2 terms are equal.</p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><a href="index.html#type-t">t</a> <a href="../../../../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt><dt class="spec value" id="val-mk_merge"><a href="#val-mk_merge" class="anchor"></a><code><span class="keyword">val</span> mk_merge : <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_merge_t"><a href="#val-mk_merge_t" class="anchor"></a><code><span class="keyword">val</span> mk_merge_t : <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_lit"><a href="#val-mk_lit" class="anchor"></a><code><span class="keyword">val</span> mk_lit : <a href="../index.html#type-lit">lit</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_list"><a href="#val-mk_list" class="anchor"></a><code><span class="keyword">val</span> mk_list : <span><a href="index.html#type-t">t</a> list</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_theory"><a href="#val-mk_theory" class="anchor"></a><code><span class="keyword">val</span> mk_theory : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Expl (sidekick-arith.Sidekick_arith_lra.S.A.S.Solver_internal.CC.Expl)</title><link rel="stylesheet" href="../../../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../../../index.html">S</a> &#x00BB; <a href="../../../../index.html">A</a> &#x00BB; <a href="../../../index.html">S</a> &#x00BB; <a href="../../index.html">Solver_internal</a> &#x00BB; <a href="../index.html">CC</a> &#x00BB; Expl</nav><h1>Module <code>CC.Expl</code></h1><p>Explanations</p><p>Explanations are specialized proofs, created by the congruence closure when asked to justify why 2 terms are equal.</p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><a href="index.html#type-t">t</a> <a href="../../../../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt><dt class="spec value" id="val-mk_merge"><a href="#val-mk_merge" class="anchor"></a><code><span class="keyword">val</span> mk_merge : <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_merge_t"><a href="#val-mk_merge_t" class="anchor"></a><code><span class="keyword">val</span> mk_merge_t : <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_lit"><a href="#val-mk_lit" class="anchor"></a><code><span class="keyword">val</span> mk_lit : <a href="../index.html#type-lit">lit</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_list"><a href="#val-mk_list" class="anchor"></a><code><span class="keyword">val</span> mk_list : <span><a href="index.html#type-t">t</a> list</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_proof"><a href="#val-mk_proof" class="anchor"></a><code><span class="keyword">val</span> mk_proof : <a href="../P/index.html#type-t">P.t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_theory"><a href="#val-mk_theory" class="anchor"></a><code><span class="keyword">val</span> mk_theory : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt></dl></div></body></html>

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Simplify (sidekick-arith.Sidekick_arith_lra.S.A.S.Solver_internal.Simplify)</title><link rel="stylesheet" href="../../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../../index.html">S</a> &#x00BB; <a href="../../../index.html">A</a> &#x00BB; <a href="../../index.html">S</a> &#x00BB; <a href="../index.html">Solver_internal</a> &#x00BB; Simplify</nav><h1>Module <code>Solver_internal.Simplify</code></h1><p>Simplify terms</p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-tst"><a href="#val-tst" class="anchor"></a><code><span class="keyword">val</span> tst : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term_state">term_state</a></code></dt><dt class="spec value" id="val-ty_st"><a href="#val-ty_st" class="anchor"></a><code><span class="keyword">val</span> ty_st : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-ty_state">ty_state</a></code></dt><dt class="spec value" id="val-clear"><a href="#val-clear" class="anchor"></a><code><span class="keyword">val</span> clear : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Reset internal cache, etc.</p></dd></dl><dl><dt class="spec type" id="type-hook"><a href="#type-hook" class="anchor"></a><code><span class="keyword">type</span> hook</code><code> = <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <span><a href="../index.html#type-term">term</a> option</span></code></dt><dd><p>Given a term, try to simplify it. Return <code>None</code> if it didn't change.</p><p>A simple example could be a hook that takes a term <code>t</code>, and if <code>t</code> is <code>app &quot;+&quot; (const x) (const y)</code> where <code>x</code> and <code>y</code> are number, returns <code>Some (const (x+y))</code>, and <code>None</code> otherwise.</p></dd></dl><dl><dt class="spec value" id="val-normalize"><a href="#val-normalize" class="anchor"></a><code><span class="keyword">val</span> normalize : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a></code></dt><dd><p>Normalize a term using all the hooks. This performs a fixpoint, i.e. it only stops when no hook applies anywhere inside the term.</p></dd></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Simplify (sidekick-arith.Sidekick_arith_lra.S.A.S.Solver_internal.Simplify)</title><link rel="stylesheet" href="../../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../../../../index.html">S</a> &#x00BB; <a href="../../../index.html">A</a> &#x00BB; <a href="../../index.html">S</a> &#x00BB; <a href="../index.html">Solver_internal</a> &#x00BB; Simplify</nav><h1>Module <code>Solver_internal.Simplify</code></h1><p>Simplify terms</p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-tst"><a href="#val-tst" class="anchor"></a><code><span class="keyword">val</span> tst : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term_state">term_state</a></code></dt><dt class="spec value" id="val-ty_st"><a href="#val-ty_st" class="anchor"></a><code><span class="keyword">val</span> ty_st : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-ty_state">ty_state</a></code></dt><dt class="spec value" id="val-clear"><a href="#val-clear" class="anchor"></a><code><span class="keyword">val</span> clear : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Reset internal cache, etc.</p></dd></dl><dl><dt class="spec type" id="type-hook"><a href="#type-hook" class="anchor"></a><code><span class="keyword">type</span> hook</code><code> = <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <span><span>(<a href="../index.html#type-term">term</a> * <a href="../index.html#type-proof">proof</a>)</span> option</span></code></dt><dd><p>Given a term, try to simplify it. Return <code>None</code> if it didn't change.</p><p>A simple example could be a hook that takes a term <code>t</code>, and if <code>t</code> is <code>app &quot;+&quot; (const x) (const y)</code> where <code>x</code> and <code>y</code> are number, returns <code>Some (const (x+y))</code>, and <code>None</code> otherwise.</p></dd></dl><dl><dt class="spec value" id="val-normalize"><a href="#val-normalize" class="anchor"></a><code><span class="keyword">val</span> normalize : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <span><span>(<a href="../index.html#type-term">term</a> * <a href="../P/index.html#type-t">P.t</a>)</span> option</span></code></dt><dd><p>Normalize a term using all the hooks. This performs a fixpoint, i.e. it only stops when no hook applies anywhere inside the term.</p></dd></dl><dl><dt class="spec value" id="val-normalize_t"><a href="#val-normalize_t" class="anchor"></a><code><span class="keyword">val</span> normalize_t : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> * <a href="../P/index.html#type-t">P.t</a></code></dt><dd><p>Normalize a term using all the hooks, along with a proof that the simplification is correct. returns <code>t, refl t</code> if no simplification occurred.</p></dd></dl></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>A (sidekick-arith.Sidekick_arith_lra.S.A)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../index.html">S</a> &#x00BB; A</nav><h1>Module <code>S.A</code></h1></header><div class="spec module" id="module-S"><a href="#module-S" class="anchor"></a><code><span class="keyword">module</span> <a href="S/index.html">S</a> : <a href="../../../../sidekick/Sidekick_core/index.html#module-type-SOLVER">Sidekick_core.SOLVER</a></code></div><dl><dt class="spec type" id="type-term"><a href="#type-term" class="anchor"></a><code><span class="keyword">type</span> term</code><code> = <a href="S/T/Term/index.html#type-t">S.T.Term.t</a></code></dt><dt class="spec type" id="type-ty"><a href="#type-ty" class="anchor"></a><code><span class="keyword">type</span> ty</code><code> = <a href="S/T/Ty/index.html#type-t">S.T.Ty.t</a></code></dt></dl><dl><dt class="spec value" id="val-view_as_lra"><a href="#val-view_as_lra" class="anchor"></a><code><span class="keyword">val</span> view_as_lra : <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <span><a href="index.html#type-term">term</a> <a href="../../index.html#type-lra_view">lra_view</a></span></code></dt><dd><p>Project the term into the theory view</p></dd></dl><dl><dt class="spec value" id="val-mk_bool"><a href="#val-mk_bool" class="anchor"></a><code><span class="keyword">val</span> mk_bool : <a href="S/T/Term/index.html#type-state">S.T.Term.state</a> <span>&#45;&gt;</span> bool <span>&#45;&gt;</span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-mk_lra"><a href="#val-mk_lra" class="anchor"></a><code><span class="keyword">val</span> mk_lra : <a href="S/T/Term/index.html#type-state">S.T.Term.state</a> <span>&#45;&gt;</span> <span><a href="index.html#type-term">term</a> <a href="../../index.html#type-lra_view">lra_view</a></span> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a></code></dt><dd><p>Make a term from the given theory view</p></dd></dl><dl><dt class="spec value" id="val-ty_lra"><a href="#val-ty_lra" class="anchor"></a><code><span class="keyword">val</span> ty_lra : <a href="S/T/Term/index.html#type-state">S.T.Term.state</a> <span>&#45;&gt;</span> <a href="index.html#type-ty">ty</a></code></dt><dt class="spec value" id="val-mk_eq"><a href="#val-mk_eq" class="anchor"></a><code><span class="keyword">val</span> mk_eq : <a href="S/T/Term/index.html#type-state">S.T.Term.state</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a></code></dt><dd><p>syntactic equality</p></dd></dl><dl><dt class="spec value" id="val-has_ty_real"><a href="#val-has_ty_real" class="anchor"></a><code><span class="keyword">val</span> has_ty_real : <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Does this term have the type <code>Real</code></p></dd></dl><div class="spec module" id="module-Gensym"><a href="#module-Gensym" class="anchor"></a><code><span class="keyword">module</span> <a href="Gensym/index.html">Gensym</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>A (sidekick-arith.Sidekick_arith_lra.S.A)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../index.html">Sidekick_arith_lra</a> &#x00BB; <a href="../index.html">S</a> &#x00BB; A</nav><h1>Module <code>S.A</code></h1></header><div class="spec module" id="module-S"><a href="#module-S" class="anchor"></a><code><span class="keyword">module</span> <a href="S/index.html">S</a> : <a href="../../../../sidekick/Sidekick_core/index.html#module-type-SOLVER">Sidekick_core.SOLVER</a></code></div><dl><dt class="spec type" id="type-term"><a href="#type-term" class="anchor"></a><code><span class="keyword">type</span> term</code><code> = <a href="S/T/Term/index.html#type-t">S.T.Term.t</a></code></dt><dt class="spec type" id="type-ty"><a href="#type-ty" class="anchor"></a><code><span class="keyword">type</span> ty</code><code> = <a href="S/T/Ty/index.html#type-t">S.T.Ty.t</a></code></dt></dl><dl><dt class="spec value" id="val-view_as_lra"><a href="#val-view_as_lra" class="anchor"></a><code><span class="keyword">val</span> view_as_lra : <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <span><a href="index.html#type-term">term</a> <a href="../../index.html#type-lra_view">lra_view</a></span></code></dt><dd><p>Project the term into the theory view</p></dd></dl><dl><dt class="spec value" id="val-mk_bool"><a href="#val-mk_bool" class="anchor"></a><code><span class="keyword">val</span> mk_bool : <a href="S/T/Term/index.html#type-state">S.T.Term.state</a> <span>&#45;&gt;</span> bool <span>&#45;&gt;</span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-mk_lra"><a href="#val-mk_lra" class="anchor"></a><code><span class="keyword">val</span> mk_lra : <a href="S/T/Term/index.html#type-state">S.T.Term.state</a> <span>&#45;&gt;</span> <span><a href="index.html#type-term">term</a> <a href="../../index.html#type-lra_view">lra_view</a></span> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a></code></dt><dd><p>Make a term from the given theory view</p></dd></dl><dl><dt class="spec value" id="val-ty_lra"><a href="#val-ty_lra" class="anchor"></a><code><span class="keyword">val</span> ty_lra : <a href="S/T/Term/index.html#type-state">S.T.Term.state</a> <span>&#45;&gt;</span> <a href="index.html#type-ty">ty</a></code></dt><dt class="spec value" id="val-mk_eq"><a href="#val-mk_eq" class="anchor"></a><code><span class="keyword">val</span> mk_eq : <a href="S/T/Term/index.html#type-state">S.T.Term.state</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a></code></dt><dd><p>syntactic equality</p></dd></dl><dl><dt class="spec value" id="val-has_ty_real"><a href="#val-has_ty_real" class="anchor"></a><code><span class="keyword">val</span> has_ty_real : <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Does this term have the type <code>Real</code></p></dd></dl><dl><dt class="spec value" id="val-proof_lra"><a href="#val-proof_lra" class="anchor"></a><code><span class="keyword">val</span> proof_lra : <span><a href="S/P/index.html#type-lit">S.P.lit</a> Iter.t</span> <span>&#45;&gt;</span> <a href="S/P/index.html#type-t">S.P.t</a></code></dt><dd><p>TODO: more accurate certificates</p></dd></dl><dl><dt class="spec value" id="val-proof_lra_l"><a href="#val-proof_lra_l" class="anchor"></a><code><span class="keyword">val</span> proof_lra_l : <span><a href="S/P/index.html#type-lit">S.P.lit</a> list</span> <span>&#45;&gt;</span> <a href="S/P/index.html#type-t">S.P.t</a></code></dt></dl><div class="spec module" id="module-Gensym"><a href="#module-Gensym" class="anchor"></a><code><span class="keyword">module</span> <a href="Gensym/index.html">Gensym</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Cstor (sidekick-arith.Sidekick_base_term.Base_types.Cstor)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../index.html">Sidekick_base_term</a> &#x00BB; <a href="../index.html">Base_types</a> &#x00BB; Cstor</nav><h1>Module <code>Base_types.Cstor</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = <a href="../index.html#type-cstor">cstor</a></code><code> = </code><code>{</code><table class="record"><tr id="type-t.cstor_id" class="anchored"><td class="def field"><a href="#type-t.cstor_id" class="anchor"></a><code>cstor_id : <a href="../../ID/index.html#type-t">ID.t</a>;</code></td></tr><tr id="type-t.cstor_is_a" class="anchored"><td class="def field"><a href="#type-t.cstor_is_a" class="anchor"></a><code>cstor_is_a : <a href="../../ID/index.html#type-t">ID.t</a>;</code></td></tr><tr id="type-t.cstor_arity" class="anchored"><td class="def field"><a href="#type-t.cstor_arity" class="anchor"></a><code><span class="keyword">mutable</span> cstor_arity : int;</code></td></tr><tr id="type-t.cstor_args" class="anchored"><td class="def field"><a href="#type-t.cstor_args" class="anchor"></a><code>cstor_args : <span><span><a href="../index.html#type-select">select</a> list</span> lazy_t</span>;</code></td></tr><tr id="type-t.cstor_ty_as_data" class="anchored"><td class="def field"><a href="#type-t.cstor_ty_as_data" class="anchor"></a><code>cstor_ty_as_data : <a href="../index.html#type-data">data</a>;</code></td></tr><tr id="type-t.cstor_ty" class="anchored"><td class="def field"><a href="#type-t.cstor_ty" class="anchor"></a><code>cstor_ty : <span><a href="../index.html#type-ty">ty</a> lazy_t</span>;</code></td></tr></table><code>}</code></dt></dl><dl><dt class="spec value" id="val-ty_args"><a href="#val-ty_args" class="anchor"></a><code><span class="keyword">val</span> ty_args : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><a href="../index.html#type-ty">ty</a> Iter.t</span></code></dt><dt class="spec value" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span class="keyword">val</span> equal : <a href="../index.html#type-cstor">cstor</a> <span>&#45;&gt;</span> <a href="../index.html#type-cstor">cstor</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : CCFormat.t <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Cstor (sidekick-arith.Sidekick_base_term.Base_types.Cstor)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../index.html">Sidekick_base_term</a> &#x00BB; <a href="../index.html">Base_types</a> &#x00BB; Cstor</nav><h1>Module <code>Base_types.Cstor</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = <a href="../index.html#type-cstor">cstor</a></code><code> = </code><code>{</code><table class="record"><tr id="type-t.cstor_id" class="anchored"><td class="def field"><a href="#type-t.cstor_id" class="anchor"></a><code>cstor_id : <a href="../../ID/index.html#type-t">ID.t</a>;</code></td></tr><tr id="type-t.cstor_is_a" class="anchored"><td class="def field"><a href="#type-t.cstor_is_a" class="anchor"></a><code>cstor_is_a : <a href="../../ID/index.html#type-t">ID.t</a>;</code></td></tr><tr id="type-t.cstor_arity" class="anchored"><td class="def field"><a href="#type-t.cstor_arity" class="anchor"></a><code><span class="keyword">mutable</span> cstor_arity : int;</code></td></tr><tr id="type-t.cstor_args" class="anchored"><td class="def field"><a href="#type-t.cstor_args" class="anchor"></a><code>cstor_args : <span><span><a href="../index.html#type-select">select</a> list</span> lazy_t</span>;</code></td></tr><tr id="type-t.cstor_ty_as_data" class="anchored"><td class="def field"><a href="#type-t.cstor_ty_as_data" class="anchor"></a><code>cstor_ty_as_data : <a href="../index.html#type-data">data</a>;</code></td></tr><tr id="type-t.cstor_ty" class="anchored"><td class="def field"><a href="#type-t.cstor_ty" class="anchor"></a><code>cstor_ty : <span><a href="../index.html#type-ty">ty</a> lazy_t</span>;</code></td></tr></table><code>}</code></dt></dl><dl><dt class="spec value" id="val-id"><a href="#val-id" class="anchor"></a><code><span class="keyword">val</span> id : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../../ID/index.html#type-t">ID.t</a></code></dt><dt class="spec value" id="val-ty_args"><a href="#val-ty_args" class="anchor"></a><code><span class="keyword">val</span> ty_args : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><a href="../index.html#type-ty">ty</a> Iter.t</span></code></dt><dt class="spec value" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span class="keyword">val</span> equal : <a href="../index.html#type-cstor">cstor</a> <span>&#45;&gt;</span> <a href="../index.html#type-cstor">cstor</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : CCFormat.t <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt></dl></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Proof (sidekick-arith.Sidekick_base_term.Base_types.Proof)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../index.html">Sidekick_base_term</a> &#x00BB; <a href="../index.html">Base_types</a> &#x00BB; Proof</nav><h1>Module <code>Base_types.Proof</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = </code><table class="variant"><tr id="type-t.Default" class="anchored"><td class="def constructor"><a href="#type-t.Default" class="anchor"></a><code>| </code><code><span class="constructor">Default</span></code></td></tr></table></dt></dl><dl><dt class="spec value" id="val-default"><a href="#val-default" class="anchor"></a><code><span class="keyword">val</span> default : <a href="index.html#type-t">t</a></code></dt></dl></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Iter_dag (sidekick-arith.Sidekick_base_term.Base_types.Term.Iter_dag)</title><link rel="stylesheet" href="../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../index.html">Sidekick_base_term</a> &#x00BB; <a href="../../index.html">Base_types</a> &#x00BB; <a href="../index.html">Term</a> &#x00BB; Iter_dag</nav><h1>Module <code>Term.Iter_dag</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-create"><a href="#val-create" class="anchor"></a><code><span class="keyword">val</span> create : unit <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-iter_dag"><a href="#val-iter_dag" class="anchor"></a><code><span class="keyword">val</span> iter_dag : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../../index.html#type-term">term</a> <span>&#45;&gt;</span> <span><a href="../../index.html#type-term">term</a> Iter.t</span></code></dt></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Iter_dag (sidekick-arith.Sidekick_base_term.Base_types.Term.Iter_dag)</title><link rel="stylesheet" href="../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../index.html">Sidekick_base_term</a> &#x00BB; <a href="../../index.html">Base_types</a> &#x00BB; <a href="../index.html">Term</a> &#x00BB; Iter_dag</nav><h1>Module <code>Term.Iter_dag</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt><dt class="spec type" id="type-order"><a href="#type-order" class="anchor"></a><code><span class="keyword">type</span> order</code><code> = </code><table class="variant"><tr id="type-order.Pre" class="anchored"><td class="def constructor"><a href="#type-order.Pre" class="anchor"></a><code>| </code><code><span class="constructor">Pre</span></code></td></tr><tr id="type-order.Post" class="anchored"><td class="def constructor"><a href="#type-order.Post" class="anchor"></a><code>| </code><code><span class="constructor">Post</span></code></td></tr></table></dt></dl><dl><dt class="spec value" id="val-create"><a href="#val-create" class="anchor"></a><code><span class="keyword">val</span> create : unit <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-iter_dag"><a href="#val-iter_dag" class="anchor"></a><code><span class="keyword">val</span> iter_dag : <span>?&#8288;order:<a href="index.html#type-order">order</a></span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../../index.html#type-term">term</a> <span>&#45;&gt;</span> <span><a href="../../index.html#type-term">term</a> Iter.t</span></code></dt></dl></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Quip (sidekick-arith.Sidekick_base_term.Proof.Quip)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../index.html">Sidekick_base_term</a> &#x00BB; <a href="../index.html">Proof</a> &#x00BB; Quip</nav><h1>Module <code>Proof.Quip</code></h1></header><dl><dt class="spec value" id="val-output"><a href="#val-output" class="anchor"></a><code><span class="keyword">val</span> output : Stdlib.out_channel <span>&#45;&gt;</span> <a href="../index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Printer in Quip format (experimental)</p></dd></dl></div></body></html>

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sidekick_base_term (sidekick-arith.Sidekick_base_term)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; Sidekick_base_term</nav><h1>Module <code>Sidekick_base_term</code></h1></header><div class="spec module" id="module-Base_types"><a href="#module-Base_types" class="anchor"></a><code><span class="keyword">module</span> <a href="Base_types/index.html">Base_types</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><dl><dt class="spec module" id="module-ID"><a href="#module-ID" class="anchor"></a><code><span class="keyword">module</span> <a href="ID/index.html">ID</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><div class="spec module" id="module-Fun"><a href="#module-Fun" class="anchor"></a><code><span class="keyword">module</span> Fun = <a href="Base_types/index.html#module-Fun">Base_types.Fun</a></code></div><div class="spec module" id="module-Stat"><a href="#module-Stat" class="anchor"></a><code><span class="keyword">module</span> Stat = <a href="../../sidekick/Sidekick_util/index.html#module-Stat">Sidekick_util.Stat</a></code></div><dl><dt class="spec module" id="module-Model"><a href="#module-Model" class="anchor"></a><code><span class="keyword">module</span> <a href="Model/index.html">Model</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><div class="spec module" id="module-Term"><a href="#module-Term" class="anchor"></a><code><span class="keyword">module</span> Term = <a href="Base_types/index.html#module-Term">Base_types.Term</a></code></div><div class="spec module" id="module-Value"><a href="#module-Value" class="anchor"></a><code><span class="keyword">module</span> Value = <a href="Base_types/index.html#module-Value">Base_types.Value</a></code></div><div class="spec module" id="module-Term_cell"><a href="#module-Term_cell" class="anchor"></a><code><span class="keyword">module</span> Term_cell = <a href="Base_types/index.html#module-Term_cell">Base_types.Term_cell</a></code></div><div class="spec module" id="module-Ty"><a href="#module-Ty" class="anchor"></a><code><span class="keyword">module</span> Ty = <a href="Base_types/index.html#module-Ty">Base_types.Ty</a></code></div><div class="spec module" id="module-Statement"><a href="#module-Statement" class="anchor"></a><code><span class="keyword">module</span> Statement = <a href="Base_types/index.html#module-Statement">Base_types.Statement</a></code></div><div class="spec module" id="module-Data"><a href="#module-Data" class="anchor"></a><code><span class="keyword">module</span> Data = <a href="Base_types/index.html#module-Data">Base_types.Data</a></code></div><div class="spec module" id="module-Select"><a href="#module-Select" class="anchor"></a><code><span class="keyword">module</span> Select = <a href="Base_types/index.html#module-Select">Base_types.Select</a></code></div><div class="spec module" id="module-Arg"><a href="#module-Arg" class="anchor"></a><code><span class="keyword">module</span> <a href="Arg/index.html">Arg</a> : <a href="../../sidekick/Sidekick_core/index.html#module-type-TERM">Sidekick_core.TERM</a> <span class="keyword">with</span> <span class="keyword">type</span> <a href="../../sidekick/Sidekick_core/module-type-TERM/Term/index.html#type-t">Term.t</a> = <a href="../Sidekick_base_term__Base_types/Term/index.html#type-t">Term.t</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../sidekick/Sidekick_core/module-type-TERM/Fun/index.html#type-t">Fun.t</a> = <a href="../Sidekick_base_term__Base_types/Fun/index.html#type-t">Fun.t</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../sidekick/Sidekick_core/module-type-TERM/Ty/index.html#type-t">Ty.t</a> = <a href="../Sidekick_base_term__Base_types/Ty/index.html#type-t">Ty.t</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../sidekick/Sidekick_core/module-type-TERM/Term/index.html#type-state">Term.state</a> = <a href="../Sidekick_base_term__Base_types/Term/index.html#type-state">Term.state</a></code></div></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sidekick_base_term (sidekick-arith.Sidekick_base_term)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; Sidekick_base_term</nav><h1>Module <code>Sidekick_base_term</code></h1></header><div class="spec module" id="module-Base_types"><a href="#module-Base_types" class="anchor"></a><code><span class="keyword">module</span> <a href="Base_types/index.html">Base_types</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><dl><dt class="spec module" id="module-ID"><a href="#module-ID" class="anchor"></a><code><span class="keyword">module</span> <a href="ID/index.html">ID</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><div class="spec module" id="module-Fun"><a href="#module-Fun" class="anchor"></a><code><span class="keyword">module</span> Fun = <a href="Base_types/index.html#module-Fun">Base_types.Fun</a></code></div><div class="spec module" id="module-Stat"><a href="#module-Stat" class="anchor"></a><code><span class="keyword">module</span> Stat = <a href="../../sidekick/Sidekick_util/index.html#module-Stat">Sidekick_util.Stat</a></code></div><dl><dt class="spec module" id="module-Model"><a href="#module-Model" class="anchor"></a><code><span class="keyword">module</span> <a href="Model/index.html">Model</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><div class="spec module" id="module-Term"><a href="#module-Term" class="anchor"></a><code><span class="keyword">module</span> Term = <a href="Base_types/index.html#module-Term">Base_types.Term</a></code></div><div class="spec module" id="module-Value"><a href="#module-Value" class="anchor"></a><code><span class="keyword">module</span> Value = <a href="Base_types/index.html#module-Value">Base_types.Value</a></code></div><div class="spec module" id="module-Term_cell"><a href="#module-Term_cell" class="anchor"></a><code><span class="keyword">module</span> Term_cell = <a href="Base_types/index.html#module-Term_cell">Base_types.Term_cell</a></code></div><div class="spec module" id="module-Ty"><a href="#module-Ty" class="anchor"></a><code><span class="keyword">module</span> Ty = <a href="Base_types/index.html#module-Ty">Base_types.Ty</a></code></div><div class="spec module" id="module-Statement"><a href="#module-Statement" class="anchor"></a><code><span class="keyword">module</span> Statement = <a href="Base_types/index.html#module-Statement">Base_types.Statement</a></code></div><div class="spec module" id="module-Data"><a href="#module-Data" class="anchor"></a><code><span class="keyword">module</span> Data = <a href="Base_types/index.html#module-Data">Base_types.Data</a></code></div><div class="spec module" id="module-Select"><a href="#module-Select" class="anchor"></a><code><span class="keyword">module</span> Select = <a href="Base_types/index.html#module-Select">Base_types.Select</a></code></div><div class="spec module" id="module-Proof"><a href="#module-Proof" class="anchor"></a><code><span class="keyword">module</span> <a href="Proof/index.html">Proof</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="spec module" id="module-Arg"><a href="#module-Arg" class="anchor"></a><code><span class="keyword">module</span> <a href="Arg/index.html">Arg</a> : <a href="../../sidekick/Sidekick_core/index.html#module-type-TERM">Sidekick_core.TERM</a> <span class="keyword">with</span> <span class="keyword">type</span> <a href="../../sidekick/Sidekick_core/module-type-TERM/Term/index.html#type-t">Term.t</a> = <a href="../Sidekick_base_term__Base_types/Term/index.html#type-t">Term.t</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../sidekick/Sidekick_core/module-type-TERM/Fun/index.html#type-t">Fun.t</a> = <a href="../Sidekick_base_term__Base_types/Fun/index.html#type-t">Fun.t</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../sidekick/Sidekick_core/module-type-TERM/Ty/index.html#type-t">Ty.t</a> = <a href="../Sidekick_base_term__Base_types/Ty/index.html#type-t">Ty.t</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../sidekick/Sidekick_core/module-type-TERM/Term/index.html#type-state">Term.state</a> = <a href="../Sidekick_base_term__Base_types/Term/index.html#type-state">Term.state</a></code></div></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Cstor (sidekick-arith.Sidekick_base_term__.Base_types.Cstor)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../index.html">Sidekick_base_term__</a> &#x00BB; <a href="../index.html">Base_types</a> &#x00BB; Cstor</nav><h1>Module <code>Base_types.Cstor</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = <a href="../index.html#type-cstor">cstor</a></code><code> = </code><code>{</code><table class="record"><tr id="type-t.cstor_id" class="anchored"><td class="def field"><a href="#type-t.cstor_id" class="anchor"></a><code>cstor_id : <a href="../../../Sidekick_base_term/ID/index.html#type-t">Sidekick_base_term.ID.t</a>;</code></td></tr><tr id="type-t.cstor_is_a" class="anchored"><td class="def field"><a href="#type-t.cstor_is_a" class="anchor"></a><code>cstor_is_a : <a href="../../../Sidekick_base_term/ID/index.html#type-t">Sidekick_base_term.ID.t</a>;</code></td></tr><tr id="type-t.cstor_arity" class="anchored"><td class="def field"><a href="#type-t.cstor_arity" class="anchor"></a><code><span class="keyword">mutable</span> cstor_arity : int;</code></td></tr><tr id="type-t.cstor_args" class="anchored"><td class="def field"><a href="#type-t.cstor_args" class="anchor"></a><code>cstor_args : <span><span><a href="../index.html#type-select">select</a> list</span> lazy_t</span>;</code></td></tr><tr id="type-t.cstor_ty_as_data" class="anchored"><td class="def field"><a href="#type-t.cstor_ty_as_data" class="anchor"></a><code>cstor_ty_as_data : <a href="../index.html#type-data">data</a>;</code></td></tr><tr id="type-t.cstor_ty" class="anchored"><td class="def field"><a href="#type-t.cstor_ty" class="anchor"></a><code>cstor_ty : <span><a href="../index.html#type-ty">ty</a> lazy_t</span>;</code></td></tr></table><code>}</code></dt></dl><dl><dt class="spec value" id="val-ty_args"><a href="#val-ty_args" class="anchor"></a><code><span class="keyword">val</span> ty_args : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><a href="../index.html#type-ty">ty</a> Iter.t</span></code></dt><dt class="spec value" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span class="keyword">val</span> equal : <a href="../index.html#type-cstor">cstor</a> <span>&#45;&gt;</span> <a href="../index.html#type-cstor">cstor</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : CCFormat.t <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Cstor (sidekick-arith.Sidekick_base_term__.Base_types.Cstor)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../index.html">Sidekick_base_term__</a> &#x00BB; <a href="../index.html">Base_types</a> &#x00BB; Cstor</nav><h1>Module <code>Base_types.Cstor</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = <a href="../index.html#type-cstor">cstor</a></code><code> = </code><code>{</code><table class="record"><tr id="type-t.cstor_id" class="anchored"><td class="def field"><a href="#type-t.cstor_id" class="anchor"></a><code>cstor_id : <a href="../../../Sidekick_base_term/ID/index.html#type-t">Sidekick_base_term.ID.t</a>;</code></td></tr><tr id="type-t.cstor_is_a" class="anchored"><td class="def field"><a href="#type-t.cstor_is_a" class="anchor"></a><code>cstor_is_a : <a href="../../../Sidekick_base_term/ID/index.html#type-t">Sidekick_base_term.ID.t</a>;</code></td></tr><tr id="type-t.cstor_arity" class="anchored"><td class="def field"><a href="#type-t.cstor_arity" class="anchor"></a><code><span class="keyword">mutable</span> cstor_arity : int;</code></td></tr><tr id="type-t.cstor_args" class="anchored"><td class="def field"><a href="#type-t.cstor_args" class="anchor"></a><code>cstor_args : <span><span><a href="../index.html#type-select">select</a> list</span> lazy_t</span>;</code></td></tr><tr id="type-t.cstor_ty_as_data" class="anchored"><td class="def field"><a href="#type-t.cstor_ty_as_data" class="anchor"></a><code>cstor_ty_as_data : <a href="../index.html#type-data">data</a>;</code></td></tr><tr id="type-t.cstor_ty" class="anchored"><td class="def field"><a href="#type-t.cstor_ty" class="anchor"></a><code>cstor_ty : <span><a href="../index.html#type-ty">ty</a> lazy_t</span>;</code></td></tr></table><code>}</code></dt></dl><dl><dt class="spec value" id="val-id"><a href="#val-id" class="anchor"></a><code><span class="keyword">val</span> id : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../../../Sidekick_base_term/ID/index.html#type-t">Sidekick_base_term.ID.t</a></code></dt><dt class="spec value" id="val-ty_args"><a href="#val-ty_args" class="anchor"></a><code><span class="keyword">val</span> ty_args : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><a href="../index.html#type-ty">ty</a> Iter.t</span></code></dt><dt class="spec value" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span class="keyword">val</span> equal : <a href="../index.html#type-cstor">cstor</a> <span>&#45;&gt;</span> <a href="../index.html#type-cstor">cstor</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : CCFormat.t <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt></dl></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Proof (sidekick-arith.Sidekick_base_term__.Base_types.Proof)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../index.html">Sidekick_base_term__</a> &#x00BB; <a href="../index.html">Base_types</a> &#x00BB; Proof</nav><h1>Module <code>Base_types.Proof</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = </code><table class="variant"><tr id="type-t.Default" class="anchored"><td class="def constructor"><a href="#type-t.Default" class="anchor"></a><code>| </code><code><span class="constructor">Default</span></code></td></tr></table></dt></dl><dl><dt class="spec value" id="val-default"><a href="#val-default" class="anchor"></a><code><span class="keyword">val</span> default : <a href="index.html#type-t">t</a></code></dt></dl></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Iter_dag (sidekick-arith.Sidekick_base_term__.Base_types.Term.Iter_dag)</title><link rel="stylesheet" href="../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../index.html">Sidekick_base_term__</a> &#x00BB; <a href="../../index.html">Base_types</a> &#x00BB; <a href="../index.html">Term</a> &#x00BB; Iter_dag</nav><h1>Module <code>Term.Iter_dag</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-create"><a href="#val-create" class="anchor"></a><code><span class="keyword">val</span> create : unit <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-iter_dag"><a href="#val-iter_dag" class="anchor"></a><code><span class="keyword">val</span> iter_dag : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../../index.html#type-term">term</a> <span>&#45;&gt;</span> <span><a href="../../index.html#type-term">term</a> Iter.t</span></code></dt></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Iter_dag (sidekick-arith.Sidekick_base_term__.Base_types.Term.Iter_dag)</title><link rel="stylesheet" href="../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../../index.html">Sidekick_base_term__</a> &#x00BB; <a href="../../index.html">Base_types</a> &#x00BB; <a href="../index.html">Term</a> &#x00BB; Iter_dag</nav><h1>Module <code>Term.Iter_dag</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt><dt class="spec type" id="type-order"><a href="#type-order" class="anchor"></a><code><span class="keyword">type</span> order</code><code> = </code><table class="variant"><tr id="type-order.Pre" class="anchored"><td class="def constructor"><a href="#type-order.Pre" class="anchor"></a><code>| </code><code><span class="constructor">Pre</span></code></td></tr><tr id="type-order.Post" class="anchored"><td class="def constructor"><a href="#type-order.Post" class="anchor"></a><code>| </code><code><span class="constructor">Post</span></code></td></tr></table></dt></dl><dl><dt class="spec value" id="val-create"><a href="#val-create" class="anchor"></a><code><span class="keyword">val</span> create : unit <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-iter_dag"><a href="#val-iter_dag" class="anchor"></a><code><span class="keyword">val</span> iter_dag : <span>?&#8288;order:<a href="index.html#type-order">order</a></span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../../index.html#type-term">term</a> <span>&#45;&gt;</span> <span><a href="../../index.html#type-term">term</a> Iter.t</span></code></dt></dl></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Quip (sidekick-arith.Sidekick_base_term__.Proof.Quip)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../index.html">Sidekick_base_term__</a> &#x00BB; <a href="../index.html">Proof</a> &#x00BB; Quip</nav><h1>Module <code>Proof.Quip</code></h1></header><dl><dt class="spec value" id="val-output"><a href="#val-output" class="anchor"></a><code><span class="keyword">val</span> output : Stdlib.out_channel <span>&#45;&gt;</span> <a href="../index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Printer in Quip format (experimental)</p></dd></dl></div></body></html>

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sidekick_base_term__ (sidekick-arith.Sidekick_base_term__)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; Sidekick_base_term__</nav><h1>Module <code>Sidekick_base_term__</code></h1></header><dl><dt class="spec module" id="module-Base_types"><a href="#module-Base_types" class="anchor"></a><code><span class="keyword">module</span> <a href="Base_types/index.html">Base_types</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><dl><dt class="spec module" id="module-CCHet"><a href="#module-CCHet" class="anchor"></a><code><span class="keyword">module</span> <a href="CCHet/index.html">CCHet</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><dl><dt class="spec module" id="module-Config"><a href="#module-Config" class="anchor"></a><code><span class="keyword">module</span> <a href="Config/index.html">Config</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><dl><dt class="spec module" id="module-Hashcons"><a href="#module-Hashcons" class="anchor"></a><code><span class="keyword">module</span> <a href="Hashcons/index.html">Hashcons</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><dl><dt class="spec module" id="module-ID"><a href="#module-ID" class="anchor"></a><code><span class="keyword">module</span> <a href="ID/index.html">ID</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><dl><dt class="spec module" id="module-Model"><a href="#module-Model" class="anchor"></a><code><span class="keyword">module</span> <a href="Model/index.html">Model</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sidekick_base_term__ (sidekick-arith.Sidekick_base_term__)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; Sidekick_base_term__</nav><h1>Module <code>Sidekick_base_term__</code></h1></header><dl><dt class="spec module" id="module-Base_types"><a href="#module-Base_types" class="anchor"></a><code><span class="keyword">module</span> <a href="Base_types/index.html">Base_types</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><dl><dt class="spec module" id="module-CCHet"><a href="#module-CCHet" class="anchor"></a><code><span class="keyword">module</span> <a href="CCHet/index.html">CCHet</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><dl><dt class="spec module" id="module-Config"><a href="#module-Config" class="anchor"></a><code><span class="keyword">module</span> <a href="Config/index.html">Config</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><dl><dt class="spec module" id="module-Hashcons"><a href="#module-Hashcons" class="anchor"></a><code><span class="keyword">module</span> <a href="Hashcons/index.html">Hashcons</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><dl><dt class="spec module" id="module-ID"><a href="#module-ID" class="anchor"></a><code><span class="keyword">module</span> <a href="ID/index.html">ID</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><dl><dt class="spec module" id="module-Model"><a href="#module-Model" class="anchor"></a><code><span class="keyword">module</span> <a href="Model/index.html">Model</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl><dl><dt class="spec module" id="module-Proof"><a href="#module-Proof" class="anchor"></a><code><span class="keyword">module</span> <a href="Proof/index.html">Proof</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd></dd></dl></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Cstor (sidekick-arith.Sidekick_base_term__Base_types.Cstor)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../index.html">Sidekick_base_term__Base_types</a> &#x00BB; Cstor</nav><h1>Module <code>Sidekick_base_term__Base_types.Cstor</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = <a href="../index.html#type-cstor">cstor</a></code><code> = </code><code>{</code><table class="record"><tr id="type-t.cstor_id" class="anchored"><td class="def field"><a href="#type-t.cstor_id" class="anchor"></a><code>cstor_id : <a href="../../Sidekick_base_term/ID/index.html#type-t">Sidekick_base_term.ID.t</a>;</code></td></tr><tr id="type-t.cstor_is_a" class="anchored"><td class="def field"><a href="#type-t.cstor_is_a" class="anchor"></a><code>cstor_is_a : <a href="../../Sidekick_base_term/ID/index.html#type-t">Sidekick_base_term.ID.t</a>;</code></td></tr><tr id="type-t.cstor_arity" class="anchored"><td class="def field"><a href="#type-t.cstor_arity" class="anchor"></a><code><span class="keyword">mutable</span> cstor_arity : int;</code></td></tr><tr id="type-t.cstor_args" class="anchored"><td class="def field"><a href="#type-t.cstor_args" class="anchor"></a><code>cstor_args : <span><span><a href="../index.html#type-select">select</a> list</span> lazy_t</span>;</code></td></tr><tr id="type-t.cstor_ty_as_data" class="anchored"><td class="def field"><a href="#type-t.cstor_ty_as_data" class="anchor"></a><code>cstor_ty_as_data : <a href="../index.html#type-data">data</a>;</code></td></tr><tr id="type-t.cstor_ty" class="anchored"><td class="def field"><a href="#type-t.cstor_ty" class="anchor"></a><code>cstor_ty : <span><a href="../index.html#type-ty">ty</a> lazy_t</span>;</code></td></tr></table><code>}</code></dt></dl><dl><dt class="spec value" id="val-ty_args"><a href="#val-ty_args" class="anchor"></a><code><span class="keyword">val</span> ty_args : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><a href="../index.html#type-ty">ty</a> Iter.t</span></code></dt><dt class="spec value" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span class="keyword">val</span> equal : <a href="../index.html#type-cstor">cstor</a> <span>&#45;&gt;</span> <a href="../index.html#type-cstor">cstor</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : CCFormat.t <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Cstor (sidekick-arith.Sidekick_base_term__Base_types.Cstor)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../index.html">Sidekick_base_term__Base_types</a> &#x00BB; Cstor</nav><h1>Module <code>Sidekick_base_term__Base_types.Cstor</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = <a href="../index.html#type-cstor">cstor</a></code><code> = </code><code>{</code><table class="record"><tr id="type-t.cstor_id" class="anchored"><td class="def field"><a href="#type-t.cstor_id" class="anchor"></a><code>cstor_id : <a href="../../Sidekick_base_term/ID/index.html#type-t">Sidekick_base_term.ID.t</a>;</code></td></tr><tr id="type-t.cstor_is_a" class="anchored"><td class="def field"><a href="#type-t.cstor_is_a" class="anchor"></a><code>cstor_is_a : <a href="../../Sidekick_base_term/ID/index.html#type-t">Sidekick_base_term.ID.t</a>;</code></td></tr><tr id="type-t.cstor_arity" class="anchored"><td class="def field"><a href="#type-t.cstor_arity" class="anchor"></a><code><span class="keyword">mutable</span> cstor_arity : int;</code></td></tr><tr id="type-t.cstor_args" class="anchored"><td class="def field"><a href="#type-t.cstor_args" class="anchor"></a><code>cstor_args : <span><span><a href="../index.html#type-select">select</a> list</span> lazy_t</span>;</code></td></tr><tr id="type-t.cstor_ty_as_data" class="anchored"><td class="def field"><a href="#type-t.cstor_ty_as_data" class="anchor"></a><code>cstor_ty_as_data : <a href="../index.html#type-data">data</a>;</code></td></tr><tr id="type-t.cstor_ty" class="anchored"><td class="def field"><a href="#type-t.cstor_ty" class="anchor"></a><code>cstor_ty : <span><a href="../index.html#type-ty">ty</a> lazy_t</span>;</code></td></tr></table><code>}</code></dt></dl><dl><dt class="spec value" id="val-id"><a href="#val-id" class="anchor"></a><code><span class="keyword">val</span> id : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../../Sidekick_base_term/ID/index.html#type-t">Sidekick_base_term.ID.t</a></code></dt><dt class="spec value" id="val-ty_args"><a href="#val-ty_args" class="anchor"></a><code><span class="keyword">val</span> ty_args : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><a href="../index.html#type-ty">ty</a> Iter.t</span></code></dt><dt class="spec value" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span class="keyword">val</span> equal : <a href="../index.html#type-cstor">cstor</a> <span>&#45;&gt;</span> <a href="../index.html#type-cstor">cstor</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : CCFormat.t <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt></dl></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Proof (sidekick-arith.Sidekick_base_term__Base_types.Proof)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../index.html">Sidekick_base_term__Base_types</a> &#x00BB; Proof</nav><h1>Module <code>Sidekick_base_term__Base_types.Proof</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = </code><table class="variant"><tr id="type-t.Default" class="anchored"><td class="def constructor"><a href="#type-t.Default" class="anchor"></a><code>| </code><code><span class="constructor">Default</span></code></td></tr></table></dt></dl><dl><dt class="spec value" id="val-default"><a href="#val-default" class="anchor"></a><code><span class="keyword">val</span> default : <a href="index.html#type-t">t</a></code></dt></dl></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Iter_dag (sidekick-arith.Sidekick_base_term__Base_types.Term.Iter_dag)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../index.html">Sidekick_base_term__Base_types</a> &#x00BB; <a href="../index.html">Term</a> &#x00BB; Iter_dag</nav><h1>Module <code>Term.Iter_dag</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-create"><a href="#val-create" class="anchor"></a><code><span class="keyword">val</span> create : unit <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-iter_dag"><a href="#val-iter_dag" class="anchor"></a><code><span class="keyword">val</span> iter_dag : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../../index.html#type-term">term</a> <span>&#45;&gt;</span> <span><a href="../../index.html#type-term">term</a> Iter.t</span></code></dt></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Iter_dag (sidekick-arith.Sidekick_base_term__Base_types.Term.Iter_dag)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../../index.html">Sidekick_base_term__Base_types</a> &#x00BB; <a href="../index.html">Term</a> &#x00BB; Iter_dag</nav><h1>Module <code>Term.Iter_dag</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt><dt class="spec type" id="type-order"><a href="#type-order" class="anchor"></a><code><span class="keyword">type</span> order</code><code> = </code><table class="variant"><tr id="type-order.Pre" class="anchored"><td class="def constructor"><a href="#type-order.Pre" class="anchor"></a><code>| </code><code><span class="constructor">Pre</span></code></td></tr><tr id="type-order.Post" class="anchored"><td class="def constructor"><a href="#type-order.Post" class="anchor"></a><code>| </code><code><span class="constructor">Post</span></code></td></tr></table></dt></dl><dl><dt class="spec value" id="val-create"><a href="#val-create" class="anchor"></a><code><span class="keyword">val</span> create : unit <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-iter_dag"><a href="#val-iter_dag" class="anchor"></a><code><span class="keyword">val</span> iter_dag : <span>?&#8288;order:<a href="index.html#type-order">order</a></span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../../index.html#type-term">term</a> <span>&#45;&gt;</span> <span><a href="../../index.html#type-term">term</a> Iter.t</span></code></dt></dl></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Quip (sidekick-arith.Sidekick_base_term__Proof.Quip)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-arith</a> &#x00BB; <a href="../index.html">Sidekick_base_term__Proof</a> &#x00BB; Quip</nav><h1>Module <code>Sidekick_base_term__Proof.Quip</code></h1></header><dl><dt class="spec value" id="val-output"><a href="#val-output" class="anchor"></a><code><span class="keyword">val</span> output : Stdlib.out_channel <span>&#45;&gt;</span> <a href="../index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Printer in Quip format (experimental)</p></dd></dl></div></body></html>

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Lit (sidekick-bin.Sidekick_smtlib.Process.Solver.Lit)</title><link rel="stylesheet" href="../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../index.html">Sidekick_smtlib</a> &#x00BB; <a href="../../index.html">Process</a> &#x00BB; <a href="../index.html">Solver</a> &#x00BB; Lit</nav><h1>Module <code>Solver.Lit</code></h1></header><dl><dt class="spec module" id="module-T"><a href="#module-T" class="anchor"></a><code><span class="keyword">module</span> T = <a href="../index.html#module-T">T</a></code></dt><dd><p>Literals depend on terms</p></dd></dl><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt><dd><p>A literal</p></dd></dl><dl><dt class="spec value" id="val-term"><a href="#val-term" class="anchor"></a><code><span class="keyword">val</span> term : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="T/Term/index.html#type-t">T.Term.t</a></code></dt><dd><p>Get the (positive) term</p></dd></dl><dl><dt class="spec value" id="val-sign"><a href="#val-sign" class="anchor"></a><code><span class="keyword">val</span> sign : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Get the sign. A negated literal has sign <code>false</code>.</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="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p>Take negation of literal. <code>sign (neg lit) = not (sign lit)</code>.</p></dd></dl><dl><dt class="spec value" id="val-abs"><a href="#val-abs" class="anchor"></a><code><span class="keyword">val</span> abs : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p><code>abs lit</code> is like <code>lit</code> but always positive, i.e. <code>sign (abs lit) = true</code></p></dd></dl><dl><dt class="spec value" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span class="keyword">val</span> equal : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-hash"><a href="#val-hash" class="anchor"></a><code><span class="keyword">val</span> hash : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><a href="index.html#type-t">t</a> <a href="../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Lit (sidekick-bin.Sidekick_smtlib.Process.Solver.Lit)</title><link rel="stylesheet" href="../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../index.html">Sidekick_smtlib</a> &#x00BB; <a href="../../index.html">Process</a> &#x00BB; <a href="../index.html">Solver</a> &#x00BB; Lit</nav><h1>Module <code>Solver.Lit</code></h1></header><dl><dt class="spec module" id="module-T"><a href="#module-T" class="anchor"></a><code><span class="keyword">module</span> T = <a href="../index.html#module-T">T</a></code></dt><dd><p>Literals depend on terms</p></dd></dl><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt><dd><p>A literal</p></dd></dl><dl><dt class="spec value" id="val-term"><a href="#val-term" class="anchor"></a><code><span class="keyword">val</span> term : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="T/Term/index.html#type-t">T.Term.t</a></code></dt><dd><p>Get the (positive) term</p></dd></dl><dl><dt class="spec value" id="val-sign"><a href="#val-sign" class="anchor"></a><code><span class="keyword">val</span> sign : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Get the sign. A negated literal has sign <code>false</code>.</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="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p>Take negation of literal. <code>sign (neg lit) = not (sign lit)</code>.</p></dd></dl><dl><dt class="spec value" id="val-abs"><a href="#val-abs" class="anchor"></a><code><span class="keyword">val</span> abs : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p><code>abs lit</code> is like <code>lit</code> but always positive, i.e. <code>sign (abs lit) = true</code></p></dd></dl><dl><dt class="spec value" id="val-signed_term"><a href="#val-signed_term" class="anchor"></a><code><span class="keyword">val</span> signed_term : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="T/Term/index.html#type-t">T.Term.t</a> * bool</code></dt><dt class="spec value" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span class="keyword">val</span> equal : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-hash"><a href="#val-hash" class="anchor"></a><code><span class="keyword">val</span> hash : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><a href="index.html#type-t">t</a> <a href="../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt></dl></div></body></html>

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Quip (sidekick-bin.Sidekick_smtlib.Process.Solver.P.Quip)</title><link rel="stylesheet" href="../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../../index.html">Sidekick_smtlib</a> &#x00BB; <a href="../../../index.html">Process</a> &#x00BB; <a href="../../index.html">Solver</a> &#x00BB; <a href="../index.html">P</a> &#x00BB; Quip</nav><h1>Module <code>P.Quip</code></h1></header><dl><dt class="spec value" id="val-output"><a href="#val-output" class="anchor"></a><code><span class="keyword">val</span> output : Stdlib.out_channel <span>&#45;&gt;</span> <a href="../index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Printer in Quip format (experimental)</p></dd></dl></div></body></html>

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Pre_proof (sidekick-bin.Sidekick_smtlib.Process.Solver.Pre_proof)</title><link rel="stylesheet" href="../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../index.html">Sidekick_smtlib</a> &#x00BB; <a href="../../index.html">Process</a> &#x00BB; <a href="../index.html">Solver</a> &#x00BB; Pre_proof</nav><h1>Module <code>Solver.Pre_proof</code></h1><h3 id="internal-representation-of-proofs"><a href="#internal-representation-of-proofs" class="anchor"></a>Internal representation of proofs</h3><p>A type or state convertible into <a href="../P/index.html#type-t"><code>P.t</code></a></p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-output"><a href="#val-output" class="anchor"></a><code><span class="keyword">val</span> output : Stdlib.out_channel <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Output onto a channel, efficiently</p></dd></dl><dl><dt class="spec value" id="val-pp_debug"><a href="#val-pp_debug" class="anchor"></a><code><span class="keyword">val</span> pp_debug : <span><a href="index.html#type-t">t</a> <a href="../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt><dt class="spec value" id="val-pp_dot"><a href="#val-pp_dot" class="anchor"></a><code><span class="keyword">val</span> pp_dot : <span><span><a href="index.html#type-t">t</a> <a href="../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span> option</span></code></dt><dd><p>Optional printer into DOT/graphviz</p></dd></dl><dl><dt class="spec value" id="val-check"><a href="#val-check" class="anchor"></a><code><span class="keyword">val</span> check : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Check the proof (to an unspecified level of confidence; this can be a no-op). May fail.</p></dd></dl><dl><dt class="spec value" id="val-to_proof"><a href="#val-to_proof" class="anchor"></a><code><span class="keyword">val</span> to_proof : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../P/index.html#type-t">P.t</a></code></dt></dl></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Proof (sidekick-bin.Sidekick_smtlib.Process.Solver.Proof)</title><link rel="stylesheet" href="../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../index.html">Sidekick_smtlib</a> &#x00BB; <a href="../../index.html">Process</a> &#x00BB; <a href="../index.html">Solver</a> &#x00BB; Proof</nav><h1>Module <code>Solver.Proof</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-check"><a href="#val-check" class="anchor"></a><code><span class="keyword">val</span> check : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-pp_dot"><a href="#val-pp_dot" class="anchor"></a><code><span class="keyword">val</span> pp_dot : <span><a href="index.html#type-t">t</a> <a href="../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt></dl></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Actions (sidekick-bin.Sidekick_smtlib.Process.Solver.Solver_internal.CC.Actions)</title><link rel="stylesheet" href="../../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../../../index.html">Sidekick_smtlib</a> &#x00BB; <a href="../../../../index.html">Process</a> &#x00BB; <a href="../../../index.html">Solver</a> &#x00BB; <a href="../../index.html">Solver_internal</a> &#x00BB; <a href="../index.html">CC</a> &#x00BB; Actions</nav><h1>Module <code>CC.Actions</code></h1></header><div class="spec module" id="module-T"><a href="#module-T" class="anchor"></a><code><span class="keyword">module</span> T = <a href="../index.html#module-T">T</a></code></div><div class="spec module" id="module-P"><a href="#module-P" class="anchor"></a><code><span class="keyword">module</span> P = <a href="../index.html#module-P">P</a></code></div><div class="spec module" id="module-Lit"><a href="#module-Lit" class="anchor"></a><code><span class="keyword">module</span> Lit = <a href="../index.html#module-Lit">Lit</a></code></div><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = <a href="../../index.html#type-actions">actions</a></code></dt><dd><p>An action handle. It is used by the congruence closure to perform the actions below. How it performs the actions is not specified and is solver-specific.</p></dd></dl><dl><dt class="spec value" id="val-raise_conflict"><a href="#val-raise_conflict" class="anchor"></a><code><span class="keyword">val</span> raise_conflict : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><a href="Lit/index.html#type-t">Lit.t</a> list</span> <span>&#45;&gt;</span> <a href="P/index.html#type-t">P.t</a> <span>&#45;&gt;</span> <span class="type-var">'a</span></code></dt><dd><p><code>raise_conflict acts c pr</code> declares that <code>c</code> is a tautology of the theory of congruence. This does not return (it should raise an exception).</p><dl><dt>parameter pr</dt><dd><p>the proof of <code>c</code> being a tautology</p></dd></dl></dd></dl><dl><dt class="spec value" id="val-propagate"><a href="#val-propagate" class="anchor"></a><code><span class="keyword">val</span> propagate : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="Lit/index.html#type-t">Lit.t</a> <span>&#45;&gt;</span> <span>reason:<span>(unit <span>&#45;&gt;</span> <span><a href="Lit/index.html#type-t">Lit.t</a> list</span>)</span></span> <span>&#45;&gt;</span> <a href="P/index.html#type-t">P.t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p><code>propagate acts lit ~reason pr</code> declares that <code>reason() =&gt; lit</code> is a tautology.</p><ul><li><code>reason()</code> should return a list of literals that are currently true.</li><li><code>lit</code> should be a literal of interest (see <a href="../../../../../../../sidekick/Sidekick_core/module-type-CC_S/index.html#val-set_as_lit"><code>Sidekick_core.CC_S.set_as_lit</code></a>).</li></ul><p>This function might never be called, a congruence closure has the right to not propagate and only trigger conflicts.</p></dd></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Actions (sidekick-bin.Sidekick_smtlib.Process.Solver.Solver_internal.CC.Actions)</title><link rel="stylesheet" href="../../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../../../index.html">Sidekick_smtlib</a> &#x00BB; <a href="../../../../index.html">Process</a> &#x00BB; <a href="../../../index.html">Solver</a> &#x00BB; <a href="../../index.html">Solver_internal</a> &#x00BB; <a href="../index.html">CC</a> &#x00BB; Actions</nav><h1>Module <code>CC.Actions</code></h1></header><div class="spec module" id="module-T"><a href="#module-T" class="anchor"></a><code><span class="keyword">module</span> T = <a href="../index.html#module-T">T</a></code></div><div class="spec module" id="module-Lit"><a href="#module-Lit" class="anchor"></a><code><span class="keyword">module</span> Lit = <a href="../index.html#module-Lit">Lit</a></code></div><div class="spec module" id="module-P"><a href="#module-P" class="anchor"></a><code><span class="keyword">module</span> P = <a href="../index.html#module-P">P</a></code></div><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = <a href="../../index.html#type-actions">actions</a></code></dt><dd><p>An action handle. It is used by the congruence closure to perform the actions below. How it performs the actions is not specified and is solver-specific.</p></dd></dl><dl><dt class="spec value" id="val-raise_conflict"><a href="#val-raise_conflict" class="anchor"></a><code><span class="keyword">val</span> raise_conflict : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><a href="Lit/index.html#type-t">Lit.t</a> list</span> <span>&#45;&gt;</span> <a href="P/index.html#type-t">P.t</a> <span>&#45;&gt;</span> <span class="type-var">'a</span></code></dt><dd><p><code>raise_conflict acts c pr</code> declares that <code>c</code> is a tautology of the theory of congruence. This does not return (it should raise an exception).</p><dl><dt>parameter pr</dt><dd><p>the proof of <code>c</code> being a tautology</p></dd></dl></dd></dl><dl><dt class="spec value" id="val-propagate"><a href="#val-propagate" class="anchor"></a><code><span class="keyword">val</span> propagate : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="Lit/index.html#type-t">Lit.t</a> <span>&#45;&gt;</span> <span>reason:<span>(unit <span>&#45;&gt;</span> <span><a href="Lit/index.html#type-t">Lit.t</a> list</span> * <a href="P/index.html#type-t">P.t</a>)</span></span> <span>&#45;&gt;</span> unit</code></dt><dd><p><code>propagate acts lit ~reason pr</code> declares that <code>reason() =&gt; lit</code> is a tautology.</p><ul><li><code>reason()</code> should return a list of literals that are currently true.</li><li><code>lit</code> should be a literal of interest (see <a href="../../../../../../../sidekick/Sidekick_core/module-type-CC_S/index.html#val-set_as_lit"><code>Sidekick_core.CC_S.set_as_lit</code></a>).</li></ul><p>This function might never be called, a congruence closure has the right to not propagate and only trigger conflicts.</p></dd></dl></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Expl (sidekick-bin.Sidekick_smtlib.Process.Solver.Solver_internal.CC.Expl)</title><link rel="stylesheet" href="../../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../../../index.html">Sidekick_smtlib</a> &#x00BB; <a href="../../../../index.html">Process</a> &#x00BB; <a href="../../../index.html">Solver</a> &#x00BB; <a href="../../index.html">Solver_internal</a> &#x00BB; <a href="../index.html">CC</a> &#x00BB; Expl</nav><h1>Module <code>CC.Expl</code></h1><p>Explanations</p><p>Explanations are specialized proofs, created by the congruence closure when asked to justify why 2 terms are equal.</p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><a href="index.html#type-t">t</a> <a href="../../../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt><dt class="spec value" id="val-mk_merge"><a href="#val-mk_merge" class="anchor"></a><code><span class="keyword">val</span> mk_merge : <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_merge_t"><a href="#val-mk_merge_t" class="anchor"></a><code><span class="keyword">val</span> mk_merge_t : <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_lit"><a href="#val-mk_lit" class="anchor"></a><code><span class="keyword">val</span> mk_lit : <a href="../index.html#type-lit">lit</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_list"><a href="#val-mk_list" class="anchor"></a><code><span class="keyword">val</span> mk_list : <span><a href="index.html#type-t">t</a> list</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_theory"><a href="#val-mk_theory" class="anchor"></a><code><span class="keyword">val</span> mk_theory : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Expl (sidekick-bin.Sidekick_smtlib.Process.Solver.Solver_internal.CC.Expl)</title><link rel="stylesheet" href="../../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../../../index.html">Sidekick_smtlib</a> &#x00BB; <a href="../../../../index.html">Process</a> &#x00BB; <a href="../../../index.html">Solver</a> &#x00BB; <a href="../../index.html">Solver_internal</a> &#x00BB; <a href="../index.html">CC</a> &#x00BB; Expl</nav><h1>Module <code>CC.Expl</code></h1><p>Explanations</p><p>Explanations are specialized proofs, created by the congruence closure when asked to justify why 2 terms are equal.</p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><a href="index.html#type-t">t</a> <a href="../../../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt><dt class="spec value" id="val-mk_merge"><a href="#val-mk_merge" class="anchor"></a><code><span class="keyword">val</span> mk_merge : <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_merge_t"><a href="#val-mk_merge_t" class="anchor"></a><code><span class="keyword">val</span> mk_merge_t : <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_lit"><a href="#val-mk_lit" class="anchor"></a><code><span class="keyword">val</span> mk_lit : <a href="../index.html#type-lit">lit</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_list"><a href="#val-mk_list" class="anchor"></a><code><span class="keyword">val</span> mk_list : <span><a href="index.html#type-t">t</a> list</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_proof"><a href="#val-mk_proof" class="anchor"></a><code><span class="keyword">val</span> mk_proof : <a href="../P/index.html#type-t">P.t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_theory"><a href="#val-mk_theory" class="anchor"></a><code><span class="keyword">val</span> mk_theory : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt></dl></div></body></html>

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Simplify (sidekick-bin.Sidekick_smtlib.Process.Solver.Solver_internal.Simplify)</title><link rel="stylesheet" href="../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../../index.html">Sidekick_smtlib</a> &#x00BB; <a href="../../../index.html">Process</a> &#x00BB; <a href="../../index.html">Solver</a> &#x00BB; <a href="../index.html">Solver_internal</a> &#x00BB; Simplify</nav><h1>Module <code>Solver_internal.Simplify</code></h1><p>Simplify terms</p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-tst"><a href="#val-tst" class="anchor"></a><code><span class="keyword">val</span> tst : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term_state">term_state</a></code></dt><dt class="spec value" id="val-ty_st"><a href="#val-ty_st" class="anchor"></a><code><span class="keyword">val</span> ty_st : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-ty_state">ty_state</a></code></dt><dt class="spec value" id="val-clear"><a href="#val-clear" class="anchor"></a><code><span class="keyword">val</span> clear : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Reset internal cache, etc.</p></dd></dl><dl><dt class="spec type" id="type-hook"><a href="#type-hook" class="anchor"></a><code><span class="keyword">type</span> hook</code><code> = <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <span><a href="../index.html#type-term">term</a> option</span></code></dt><dd><p>Given a term, try to simplify it. Return <code>None</code> if it didn't change.</p><p>A simple example could be a hook that takes a term <code>t</code>, and if <code>t</code> is <code>app &quot;+&quot; (const x) (const y)</code> where <code>x</code> and <code>y</code> are number, returns <code>Some (const (x+y))</code>, and <code>None</code> otherwise.</p></dd></dl><dl><dt class="spec value" id="val-normalize"><a href="#val-normalize" class="anchor"></a><code><span class="keyword">val</span> normalize : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a></code></dt><dd><p>Normalize a term using all the hooks. This performs a fixpoint, i.e. it only stops when no hook applies anywhere inside the term.</p></dd></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Simplify (sidekick-bin.Sidekick_smtlib.Process.Solver.Solver_internal.Simplify)</title><link rel="stylesheet" href="../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../../index.html">Sidekick_smtlib</a> &#x00BB; <a href="../../../index.html">Process</a> &#x00BB; <a href="../../index.html">Solver</a> &#x00BB; <a href="../index.html">Solver_internal</a> &#x00BB; Simplify</nav><h1>Module <code>Solver_internal.Simplify</code></h1><p>Simplify terms</p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-tst"><a href="#val-tst" class="anchor"></a><code><span class="keyword">val</span> tst : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term_state">term_state</a></code></dt><dt class="spec value" id="val-ty_st"><a href="#val-ty_st" class="anchor"></a><code><span class="keyword">val</span> ty_st : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-ty_state">ty_state</a></code></dt><dt class="spec value" id="val-clear"><a href="#val-clear" class="anchor"></a><code><span class="keyword">val</span> clear : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Reset internal cache, etc.</p></dd></dl><dl><dt class="spec type" id="type-hook"><a href="#type-hook" class="anchor"></a><code><span class="keyword">type</span> hook</code><code> = <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <span><span>(<a href="../index.html#type-term">term</a> * <a href="../index.html#type-proof">proof</a>)</span> option</span></code></dt><dd><p>Given a term, try to simplify it. Return <code>None</code> if it didn't change.</p><p>A simple example could be a hook that takes a term <code>t</code>, and if <code>t</code> is <code>app &quot;+&quot; (const x) (const y)</code> where <code>x</code> and <code>y</code> are number, returns <code>Some (const (x+y))</code>, and <code>None</code> otherwise.</p></dd></dl><dl><dt class="spec value" id="val-normalize"><a href="#val-normalize" class="anchor"></a><code><span class="keyword">val</span> normalize : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <span><span>(<a href="../index.html#type-term">term</a> * <a href="../P/index.html#type-t">P.t</a>)</span> option</span></code></dt><dd><p>Normalize a term using all the hooks. This performs a fixpoint, i.e. it only stops when no hook applies anywhere inside the term.</p></dd></dl><dl><dt class="spec value" id="val-normalize_t"><a href="#val-normalize_t" class="anchor"></a><code><span class="keyword">val</span> normalize_t : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> * <a href="../P/index.html#type-t">P.t</a></code></dt><dd><p>Normalize a term using all the hooks, along with a proof that the simplification is correct. returns <code>t, refl t</code> if no simplification occurred.</p></dd></dl></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Process (sidekick-bin.Sidekick_smtlib.Process)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../index.html">Sidekick_smtlib</a> &#x00BB; Process</nav><h1>Module <code>Sidekick_smtlib.Process</code></h1><h2 id="process-statements"><a href="#process-statements" class="anchor"></a>Process Statements</h2></header><div class="spec module" id="module-Solver"><a href="#module-Solver" class="anchor"></a><code><span class="keyword">module</span> <a href="Solver/index.html">Solver</a> : <a href="../../../sidekick/Sidekick_msat_solver/index.html#module-type-S">Sidekick_msat_solver.S</a> <span class="keyword">with</span> <span class="keyword">type</span> <a href="../../../sidekick/Sidekick_msat_solver/module-type-S/T/Term/index.html#type-t">T.Term.t</a> = <a href="../../../sidekick-arith/Sidekick_base_term__Base_types/Term/index.html#type-t">Sidekick_base_term.Term.t</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../../sidekick/Sidekick_msat_solver/module-type-S/T/Term/index.html#type-state">T.Term.state</a> = <a href="../../../sidekick-arith/Sidekick_base_term__Base_types/Term/index.html#type-state">Sidekick_base_term.Term.state</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../../sidekick/Sidekick_msat_solver/module-type-S/T/Ty/index.html#type-t">T.Ty.t</a> = <a href="../../../sidekick-arith/Sidekick_base_term__Base_types/Ty/index.html#type-t">Sidekick_base_term.Ty.t</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../../sidekick/Sidekick_msat_solver/module-type-S/T/Ty/index.html#type-state">T.Ty.state</a> = <a href="../../../sidekick-arith/Sidekick_base_term__Base_types/Ty/index.html#type-state">Sidekick_base_term.Ty.state</a></code></div><dl><dt class="spec value" id="val-th_bool"><a href="#val-th_bool" class="anchor"></a><code><span class="keyword">val</span> th_bool : <a href="Solver/index.html#type-theory">Solver.theory</a></code></dt><dt class="spec value" id="val-th_data"><a href="#val-th_data" class="anchor"></a><code><span class="keyword">val</span> th_data : <a href="Solver/index.html#type-theory">Solver.theory</a></code></dt><dt class="spec value" id="val-th_lra"><a href="#val-th_lra" class="anchor"></a><code><span class="keyword">val</span> th_lra : <a href="Solver/index.html#type-theory">Solver.theory</a></code></dt></dl><dl><dt class="spec type" id="type-or_error"><a href="#type-or_error" class="anchor"></a><code><span class="keyword">type</span> <span>'a or_error</span></code><code> = <span><span>(<span class="type-var">'a</span>, string)</span> CCResult.t</span></code></dt></dl><div class="spec module" id="module-Check_cc"><a href="#module-Check_cc" class="anchor"></a><code><span class="keyword">module</span> <a href="Check_cc/index.html">Check_cc</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><dl><dt class="spec value" id="val-process_stmt"><a href="#val-process_stmt" class="anchor"></a><code><span class="keyword">val</span> process_stmt : <span>?&#8288;hyps:<span><span><a href="Solver/Atom/index.html#type-t">Solver.Atom.t</a> list</span> <a href="../../../sidekick/Sidekick_util/index.html#module-Vec">Sidekick_util.Vec</a>.t</span></span> <span>&#45;&gt;</span> <span>?&#8288;gc:bool</span> <span>&#45;&gt;</span> <span>?&#8288;restarts:bool</span> <span>&#45;&gt;</span> <span>?&#8288;pp_cnf:bool</span> <span>&#45;&gt;</span> <span>?&#8288;dot_proof:string</span> <span>&#45;&gt;</span> <span>?&#8288;pp_model:bool</span> <span>&#45;&gt;</span> <span>?&#8288;check:bool</span> <span>&#45;&gt;</span> <span>?&#8288;time:float</span> <span>&#45;&gt;</span> <span>?&#8288;memory:float</span> <span>&#45;&gt;</span> <span>?&#8288;progress:bool</span> <span>&#45;&gt;</span> <a href="Solver/index.html#type-t">Solver.t</a> <span>&#45;&gt;</span> <a href="../../../sidekick-arith/Sidekick_base_term__Base_types/Statement/index.html#type-t">Sidekick_base_term.Statement.t</a> <span>&#45;&gt;</span> <span>unit <a href="index.html#type-or_error">or_error</a></span></code></dt></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Process (sidekick-bin.Sidekick_smtlib.Process)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../index.html">Sidekick_smtlib</a> &#x00BB; Process</nav><h1>Module <code>Sidekick_smtlib.Process</code></h1><h2 id="process-statements"><a href="#process-statements" class="anchor"></a>Process Statements</h2></header><div class="spec module" id="module-Solver"><a href="#module-Solver" class="anchor"></a><code><span class="keyword">module</span> <a href="Solver/index.html">Solver</a> : <a href="../../../sidekick/Sidekick_msat_solver/index.html#module-type-S">Sidekick_msat_solver.S</a> <span class="keyword">with</span> <span class="keyword">type</span> <a href="../../../sidekick/Sidekick_msat_solver/module-type-S/T/Term/index.html#type-t">T.Term.t</a> = <a href="../../../sidekick-arith/Sidekick_base_term__Base_types/Term/index.html#type-t">Sidekick_base_term.Term.t</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../../sidekick/Sidekick_msat_solver/module-type-S/T/Term/index.html#type-state">T.Term.state</a> = <a href="../../../sidekick-arith/Sidekick_base_term__Base_types/Term/index.html#type-state">Sidekick_base_term.Term.state</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../../sidekick/Sidekick_msat_solver/module-type-S/T/Ty/index.html#type-t">T.Ty.t</a> = <a href="../../../sidekick-arith/Sidekick_base_term__Base_types/Ty/index.html#type-t">Sidekick_base_term.Ty.t</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../../sidekick/Sidekick_msat_solver/module-type-S/T/Ty/index.html#type-state">T.Ty.state</a> = <a href="../../../sidekick-arith/Sidekick_base_term__Base_types/Ty/index.html#type-state">Sidekick_base_term.Ty.state</a></code></div><dl><dt class="spec value" id="val-th_bool"><a href="#val-th_bool" class="anchor"></a><code><span class="keyword">val</span> th_bool : <a href="Solver/index.html#type-theory">Solver.theory</a></code></dt><dt class="spec value" id="val-th_data"><a href="#val-th_data" class="anchor"></a><code><span class="keyword">val</span> th_data : <a href="Solver/index.html#type-theory">Solver.theory</a></code></dt><dt class="spec value" id="val-th_lra"><a href="#val-th_lra" class="anchor"></a><code><span class="keyword">val</span> th_lra : <a href="Solver/index.html#type-theory">Solver.theory</a></code></dt></dl><dl><dt class="spec type" id="type-or_error"><a href="#type-or_error" class="anchor"></a><code><span class="keyword">type</span> <span>'a or_error</span></code><code> = <span><span>(<span class="type-var">'a</span>, string)</span> CCResult.t</span></code></dt></dl><div class="spec module" id="module-Check_cc"><a href="#module-Check_cc" class="anchor"></a><code><span class="keyword">module</span> <a href="Check_cc/index.html">Check_cc</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><dl><dt class="spec value" id="val-process_stmt"><a href="#val-process_stmt" class="anchor"></a><code><span class="keyword">val</span> process_stmt : <span>?&#8288;hyps:<span><span><a href="Solver/Atom/index.html#type-t">Solver.Atom.t</a> list</span> <a href="../../../sidekick/Sidekick_util/index.html#module-Vec">Sidekick_util.Vec</a>.t</span></span> <span>&#45;&gt;</span> <span>?&#8288;gc:bool</span> <span>&#45;&gt;</span> <span>?&#8288;restarts:bool</span> <span>&#45;&gt;</span> <span>?&#8288;pp_cnf:bool</span> <span>&#45;&gt;</span> <span>?&#8288;dot_proof:string</span> <span>&#45;&gt;</span> <span>?&#8288;proof_file:string</span> <span>&#45;&gt;</span> <span>?&#8288;pp_model:bool</span> <span>&#45;&gt;</span> <span>?&#8288;check:bool</span> <span>&#45;&gt;</span> <span>?&#8288;time:float</span> <span>&#45;&gt;</span> <span>?&#8288;memory:float</span> <span>&#45;&gt;</span> <span>?&#8288;progress:bool</span> <span>&#45;&gt;</span> <a href="Solver/index.html#type-t">Solver.t</a> <span>&#45;&gt;</span> <a href="../../../sidekick-arith/Sidekick_base_term__Base_types/Statement/index.html#type-t">Sidekick_base_term.Statement.t</a> <span>&#45;&gt;</span> <span>unit <a href="index.html#type-or_error">or_error</a></span></code></dt></dl></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Lit (sidekick-bin.Sidekick_smtlib__.Process.Solver.Lit)</title><link rel="stylesheet" href="../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../index.html">Sidekick_smtlib__</a> &#x00BB; <a href="../../index.html">Process</a> &#x00BB; <a href="../index.html">Solver</a> &#x00BB; Lit</nav><h1>Module <code>Solver.Lit</code></h1></header><dl><dt class="spec module" id="module-T"><a href="#module-T" class="anchor"></a><code><span class="keyword">module</span> T = <a href="../index.html#module-T">T</a></code></dt><dd><p>Literals depend on terms</p></dd></dl><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt><dd><p>A literal</p></dd></dl><dl><dt class="spec value" id="val-term"><a href="#val-term" class="anchor"></a><code><span class="keyword">val</span> term : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="T/Term/index.html#type-t">T.Term.t</a></code></dt><dd><p>Get the (positive) term</p></dd></dl><dl><dt class="spec value" id="val-sign"><a href="#val-sign" class="anchor"></a><code><span class="keyword">val</span> sign : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Get the sign. A negated literal has sign <code>false</code>.</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="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p>Take negation of literal. <code>sign (neg lit) = not (sign lit)</code>.</p></dd></dl><dl><dt class="spec value" id="val-abs"><a href="#val-abs" class="anchor"></a><code><span class="keyword">val</span> abs : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p><code>abs lit</code> is like <code>lit</code> but always positive, i.e. <code>sign (abs lit) = true</code></p></dd></dl><dl><dt class="spec value" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span class="keyword">val</span> equal : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-hash"><a href="#val-hash" class="anchor"></a><code><span class="keyword">val</span> hash : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><a href="index.html#type-t">t</a> <a href="../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Lit (sidekick-bin.Sidekick_smtlib__.Process.Solver.Lit)</title><link rel="stylesheet" href="../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../index.html">Sidekick_smtlib__</a> &#x00BB; <a href="../../index.html">Process</a> &#x00BB; <a href="../index.html">Solver</a> &#x00BB; Lit</nav><h1>Module <code>Solver.Lit</code></h1></header><dl><dt class="spec module" id="module-T"><a href="#module-T" class="anchor"></a><code><span class="keyword">module</span> T = <a href="../index.html#module-T">T</a></code></dt><dd><p>Literals depend on terms</p></dd></dl><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt><dd><p>A literal</p></dd></dl><dl><dt class="spec value" id="val-term"><a href="#val-term" class="anchor"></a><code><span class="keyword">val</span> term : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="T/Term/index.html#type-t">T.Term.t</a></code></dt><dd><p>Get the (positive) term</p></dd></dl><dl><dt class="spec value" id="val-sign"><a href="#val-sign" class="anchor"></a><code><span class="keyword">val</span> sign : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Get the sign. A negated literal has sign <code>false</code>.</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="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p>Take negation of literal. <code>sign (neg lit) = not (sign lit)</code>.</p></dd></dl><dl><dt class="spec value" id="val-abs"><a href="#val-abs" class="anchor"></a><code><span class="keyword">val</span> abs : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p><code>abs lit</code> is like <code>lit</code> but always positive, i.e. <code>sign (abs lit) = true</code></p></dd></dl><dl><dt class="spec value" id="val-signed_term"><a href="#val-signed_term" class="anchor"></a><code><span class="keyword">val</span> signed_term : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="T/Term/index.html#type-t">T.Term.t</a> * bool</code></dt><dt class="spec value" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span class="keyword">val</span> equal : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-hash"><a href="#val-hash" class="anchor"></a><code><span class="keyword">val</span> hash : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><a href="index.html#type-t">t</a> <a href="../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt></dl></div></body></html>

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Quip (sidekick-bin.Sidekick_smtlib__.Process.Solver.P.Quip)</title><link rel="stylesheet" href="../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../../index.html">Sidekick_smtlib__</a> &#x00BB; <a href="../../../index.html">Process</a> &#x00BB; <a href="../../index.html">Solver</a> &#x00BB; <a href="../index.html">P</a> &#x00BB; Quip</nav><h1>Module <code>P.Quip</code></h1></header><dl><dt class="spec value" id="val-output"><a href="#val-output" class="anchor"></a><code><span class="keyword">val</span> output : Stdlib.out_channel <span>&#45;&gt;</span> <a href="../index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Printer in Quip format (experimental)</p></dd></dl></div></body></html>

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Pre_proof (sidekick-bin.Sidekick_smtlib__.Process.Solver.Pre_proof)</title><link rel="stylesheet" href="../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../index.html">Sidekick_smtlib__</a> &#x00BB; <a href="../../index.html">Process</a> &#x00BB; <a href="../index.html">Solver</a> &#x00BB; Pre_proof</nav><h1>Module <code>Solver.Pre_proof</code></h1><h3 id="internal-representation-of-proofs"><a href="#internal-representation-of-proofs" class="anchor"></a>Internal representation of proofs</h3><p>A type or state convertible into <a href="../P/index.html#type-t"><code>P.t</code></a></p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-output"><a href="#val-output" class="anchor"></a><code><span class="keyword">val</span> output : Stdlib.out_channel <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Output onto a channel, efficiently</p></dd></dl><dl><dt class="spec value" id="val-pp_debug"><a href="#val-pp_debug" class="anchor"></a><code><span class="keyword">val</span> pp_debug : <span><a href="index.html#type-t">t</a> <a href="../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt><dt class="spec value" id="val-pp_dot"><a href="#val-pp_dot" class="anchor"></a><code><span class="keyword">val</span> pp_dot : <span><span><a href="index.html#type-t">t</a> <a href="../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span> option</span></code></dt><dd><p>Optional printer into DOT/graphviz</p></dd></dl><dl><dt class="spec value" id="val-check"><a href="#val-check" class="anchor"></a><code><span class="keyword">val</span> check : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Check the proof (to an unspecified level of confidence; this can be a no-op). May fail.</p></dd></dl><dl><dt class="spec value" id="val-to_proof"><a href="#val-to_proof" class="anchor"></a><code><span class="keyword">val</span> to_proof : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../P/index.html#type-t">P.t</a></code></dt></dl></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Proof (sidekick-bin.Sidekick_smtlib__.Process.Solver.Proof)</title><link rel="stylesheet" href="../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../index.html">Sidekick_smtlib__</a> &#x00BB; <a href="../../index.html">Process</a> &#x00BB; <a href="../index.html">Solver</a> &#x00BB; Proof</nav><h1>Module <code>Solver.Proof</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-check"><a href="#val-check" class="anchor"></a><code><span class="keyword">val</span> check : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-pp_dot"><a href="#val-pp_dot" class="anchor"></a><code><span class="keyword">val</span> pp_dot : <span><a href="index.html#type-t">t</a> <a href="../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt></dl></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Actions (sidekick-bin.Sidekick_smtlib__.Process.Solver.Solver_internal.CC.Actions)</title><link rel="stylesheet" href="../../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../../../index.html">Sidekick_smtlib__</a> &#x00BB; <a href="../../../../index.html">Process</a> &#x00BB; <a href="../../../index.html">Solver</a> &#x00BB; <a href="../../index.html">Solver_internal</a> &#x00BB; <a href="../index.html">CC</a> &#x00BB; Actions</nav><h1>Module <code>CC.Actions</code></h1></header><div class="spec module" id="module-T"><a href="#module-T" class="anchor"></a><code><span class="keyword">module</span> T = <a href="../index.html#module-T">T</a></code></div><div class="spec module" id="module-P"><a href="#module-P" class="anchor"></a><code><span class="keyword">module</span> P = <a href="../index.html#module-P">P</a></code></div><div class="spec module" id="module-Lit"><a href="#module-Lit" class="anchor"></a><code><span class="keyword">module</span> Lit = <a href="../index.html#module-Lit">Lit</a></code></div><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = <a href="../../index.html#type-actions">actions</a></code></dt><dd><p>An action handle. It is used by the congruence closure to perform the actions below. How it performs the actions is not specified and is solver-specific.</p></dd></dl><dl><dt class="spec value" id="val-raise_conflict"><a href="#val-raise_conflict" class="anchor"></a><code><span class="keyword">val</span> raise_conflict : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><a href="Lit/index.html#type-t">Lit.t</a> list</span> <span>&#45;&gt;</span> <a href="P/index.html#type-t">P.t</a> <span>&#45;&gt;</span> <span class="type-var">'a</span></code></dt><dd><p><code>raise_conflict acts c pr</code> declares that <code>c</code> is a tautology of the theory of congruence. This does not return (it should raise an exception).</p><dl><dt>parameter pr</dt><dd><p>the proof of <code>c</code> being a tautology</p></dd></dl></dd></dl><dl><dt class="spec value" id="val-propagate"><a href="#val-propagate" class="anchor"></a><code><span class="keyword">val</span> propagate : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="Lit/index.html#type-t">Lit.t</a> <span>&#45;&gt;</span> <span>reason:<span>(unit <span>&#45;&gt;</span> <span><a href="Lit/index.html#type-t">Lit.t</a> list</span>)</span></span> <span>&#45;&gt;</span> <a href="P/index.html#type-t">P.t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p><code>propagate acts lit ~reason pr</code> declares that <code>reason() =&gt; lit</code> is a tautology.</p><ul><li><code>reason()</code> should return a list of literals that are currently true.</li><li><code>lit</code> should be a literal of interest (see <a href="../../../../../../../sidekick/Sidekick_core/module-type-CC_S/index.html#val-set_as_lit"><code>Sidekick_core.CC_S.set_as_lit</code></a>).</li></ul><p>This function might never be called, a congruence closure has the right to not propagate and only trigger conflicts.</p></dd></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Actions (sidekick-bin.Sidekick_smtlib__.Process.Solver.Solver_internal.CC.Actions)</title><link rel="stylesheet" href="../../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../../../index.html">Sidekick_smtlib__</a> &#x00BB; <a href="../../../../index.html">Process</a> &#x00BB; <a href="../../../index.html">Solver</a> &#x00BB; <a href="../../index.html">Solver_internal</a> &#x00BB; <a href="../index.html">CC</a> &#x00BB; Actions</nav><h1>Module <code>CC.Actions</code></h1></header><div class="spec module" id="module-T"><a href="#module-T" class="anchor"></a><code><span class="keyword">module</span> T = <a href="../index.html#module-T">T</a></code></div><div class="spec module" id="module-Lit"><a href="#module-Lit" class="anchor"></a><code><span class="keyword">module</span> Lit = <a href="../index.html#module-Lit">Lit</a></code></div><div class="spec module" id="module-P"><a href="#module-P" class="anchor"></a><code><span class="keyword">module</span> P = <a href="../index.html#module-P">P</a></code></div><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = <a href="../../index.html#type-actions">actions</a></code></dt><dd><p>An action handle. It is used by the congruence closure to perform the actions below. How it performs the actions is not specified and is solver-specific.</p></dd></dl><dl><dt class="spec value" id="val-raise_conflict"><a href="#val-raise_conflict" class="anchor"></a><code><span class="keyword">val</span> raise_conflict : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><a href="Lit/index.html#type-t">Lit.t</a> list</span> <span>&#45;&gt;</span> <a href="P/index.html#type-t">P.t</a> <span>&#45;&gt;</span> <span class="type-var">'a</span></code></dt><dd><p><code>raise_conflict acts c pr</code> declares that <code>c</code> is a tautology of the theory of congruence. This does not return (it should raise an exception).</p><dl><dt>parameter pr</dt><dd><p>the proof of <code>c</code> being a tautology</p></dd></dl></dd></dl><dl><dt class="spec value" id="val-propagate"><a href="#val-propagate" class="anchor"></a><code><span class="keyword">val</span> propagate : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="Lit/index.html#type-t">Lit.t</a> <span>&#45;&gt;</span> <span>reason:<span>(unit <span>&#45;&gt;</span> <span><a href="Lit/index.html#type-t">Lit.t</a> list</span> * <a href="P/index.html#type-t">P.t</a>)</span></span> <span>&#45;&gt;</span> unit</code></dt><dd><p><code>propagate acts lit ~reason pr</code> declares that <code>reason() =&gt; lit</code> is a tautology.</p><ul><li><code>reason()</code> should return a list of literals that are currently true.</li><li><code>lit</code> should be a literal of interest (see <a href="../../../../../../../sidekick/Sidekick_core/module-type-CC_S/index.html#val-set_as_lit"><code>Sidekick_core.CC_S.set_as_lit</code></a>).</li></ul><p>This function might never be called, a congruence closure has the right to not propagate and only trigger conflicts.</p></dd></dl></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Expl (sidekick-bin.Sidekick_smtlib__.Process.Solver.Solver_internal.CC.Expl)</title><link rel="stylesheet" href="../../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../../../index.html">Sidekick_smtlib__</a> &#x00BB; <a href="../../../../index.html">Process</a> &#x00BB; <a href="../../../index.html">Solver</a> &#x00BB; <a href="../../index.html">Solver_internal</a> &#x00BB; <a href="../index.html">CC</a> &#x00BB; Expl</nav><h1>Module <code>CC.Expl</code></h1><p>Explanations</p><p>Explanations are specialized proofs, created by the congruence closure when asked to justify why 2 terms are equal.</p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><a href="index.html#type-t">t</a> <a href="../../../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt><dt class="spec value" id="val-mk_merge"><a href="#val-mk_merge" class="anchor"></a><code><span class="keyword">val</span> mk_merge : <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_merge_t"><a href="#val-mk_merge_t" class="anchor"></a><code><span class="keyword">val</span> mk_merge_t : <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_lit"><a href="#val-mk_lit" class="anchor"></a><code><span class="keyword">val</span> mk_lit : <a href="../index.html#type-lit">lit</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_list"><a href="#val-mk_list" class="anchor"></a><code><span class="keyword">val</span> mk_list : <span><a href="index.html#type-t">t</a> list</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_theory"><a href="#val-mk_theory" class="anchor"></a><code><span class="keyword">val</span> mk_theory : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Expl (sidekick-bin.Sidekick_smtlib__.Process.Solver.Solver_internal.CC.Expl)</title><link rel="stylesheet" href="../../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../../../index.html">Sidekick_smtlib__</a> &#x00BB; <a href="../../../../index.html">Process</a> &#x00BB; <a href="../../../index.html">Solver</a> &#x00BB; <a href="../../index.html">Solver_internal</a> &#x00BB; <a href="../index.html">CC</a> &#x00BB; Expl</nav><h1>Module <code>CC.Expl</code></h1><p>Explanations</p><p>Explanations are specialized proofs, created by the congruence closure when asked to justify why 2 terms are equal.</p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><a href="index.html#type-t">t</a> <a href="../../../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt><dt class="spec value" id="val-mk_merge"><a href="#val-mk_merge" class="anchor"></a><code><span class="keyword">val</span> mk_merge : <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_merge_t"><a href="#val-mk_merge_t" class="anchor"></a><code><span class="keyword">val</span> mk_merge_t : <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_lit"><a href="#val-mk_lit" class="anchor"></a><code><span class="keyword">val</span> mk_lit : <a href="../index.html#type-lit">lit</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_list"><a href="#val-mk_list" class="anchor"></a><code><span class="keyword">val</span> mk_list : <span><a href="index.html#type-t">t</a> list</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_proof"><a href="#val-mk_proof" class="anchor"></a><code><span class="keyword">val</span> mk_proof : <a href="../P/index.html#type-t">P.t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_theory"><a href="#val-mk_theory" class="anchor"></a><code><span class="keyword">val</span> mk_theory : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt></dl></div></body></html>

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Simplify (sidekick-bin.Sidekick_smtlib__.Process.Solver.Solver_internal.Simplify)</title><link rel="stylesheet" href="../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../../index.html">Sidekick_smtlib__</a> &#x00BB; <a href="../../../index.html">Process</a> &#x00BB; <a href="../../index.html">Solver</a> &#x00BB; <a href="../index.html">Solver_internal</a> &#x00BB; Simplify</nav><h1>Module <code>Solver_internal.Simplify</code></h1><p>Simplify terms</p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-tst"><a href="#val-tst" class="anchor"></a><code><span class="keyword">val</span> tst : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term_state">term_state</a></code></dt><dt class="spec value" id="val-ty_st"><a href="#val-ty_st" class="anchor"></a><code><span class="keyword">val</span> ty_st : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-ty_state">ty_state</a></code></dt><dt class="spec value" id="val-clear"><a href="#val-clear" class="anchor"></a><code><span class="keyword">val</span> clear : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Reset internal cache, etc.</p></dd></dl><dl><dt class="spec type" id="type-hook"><a href="#type-hook" class="anchor"></a><code><span class="keyword">type</span> hook</code><code> = <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <span><a href="../index.html#type-term">term</a> option</span></code></dt><dd><p>Given a term, try to simplify it. Return <code>None</code> if it didn't change.</p><p>A simple example could be a hook that takes a term <code>t</code>, and if <code>t</code> is <code>app &quot;+&quot; (const x) (const y)</code> where <code>x</code> and <code>y</code> are number, returns <code>Some (const (x+y))</code>, and <code>None</code> otherwise.</p></dd></dl><dl><dt class="spec value" id="val-normalize"><a href="#val-normalize" class="anchor"></a><code><span class="keyword">val</span> normalize : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a></code></dt><dd><p>Normalize a term using all the hooks. This performs a fixpoint, i.e. it only stops when no hook applies anywhere inside the term.</p></dd></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Simplify (sidekick-bin.Sidekick_smtlib__.Process.Solver.Solver_internal.Simplify)</title><link rel="stylesheet" href="../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../../index.html">Sidekick_smtlib__</a> &#x00BB; <a href="../../../index.html">Process</a> &#x00BB; <a href="../../index.html">Solver</a> &#x00BB; <a href="../index.html">Solver_internal</a> &#x00BB; Simplify</nav><h1>Module <code>Solver_internal.Simplify</code></h1><p>Simplify terms</p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-tst"><a href="#val-tst" class="anchor"></a><code><span class="keyword">val</span> tst : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term_state">term_state</a></code></dt><dt class="spec value" id="val-ty_st"><a href="#val-ty_st" class="anchor"></a><code><span class="keyword">val</span> ty_st : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-ty_state">ty_state</a></code></dt><dt class="spec value" id="val-clear"><a href="#val-clear" class="anchor"></a><code><span class="keyword">val</span> clear : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Reset internal cache, etc.</p></dd></dl><dl><dt class="spec type" id="type-hook"><a href="#type-hook" class="anchor"></a><code><span class="keyword">type</span> hook</code><code> = <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <span><span>(<a href="../index.html#type-term">term</a> * <a href="../index.html#type-proof">proof</a>)</span> option</span></code></dt><dd><p>Given a term, try to simplify it. Return <code>None</code> if it didn't change.</p><p>A simple example could be a hook that takes a term <code>t</code>, and if <code>t</code> is <code>app &quot;+&quot; (const x) (const y)</code> where <code>x</code> and <code>y</code> are number, returns <code>Some (const (x+y))</code>, and <code>None</code> otherwise.</p></dd></dl><dl><dt class="spec value" id="val-normalize"><a href="#val-normalize" class="anchor"></a><code><span class="keyword">val</span> normalize : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <span><span>(<a href="../index.html#type-term">term</a> * <a href="../P/index.html#type-t">P.t</a>)</span> option</span></code></dt><dd><p>Normalize a term using all the hooks. This performs a fixpoint, i.e. it only stops when no hook applies anywhere inside the term.</p></dd></dl><dl><dt class="spec value" id="val-normalize_t"><a href="#val-normalize_t" class="anchor"></a><code><span class="keyword">val</span> normalize_t : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> * <a href="../P/index.html#type-t">P.t</a></code></dt><dd><p>Normalize a term using all the hooks, along with a proof that the simplification is correct. returns <code>t, refl t</code> if no simplification occurred.</p></dd></dl></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Process (sidekick-bin.Sidekick_smtlib__.Process)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../index.html">Sidekick_smtlib__</a> &#x00BB; Process</nav><h1>Module <code>Sidekick_smtlib__.Process</code></h1><nav class="toc"><ul><li><a href="#process-statements">Process Statements</a></li></ul></nav></header><section><header><h2 id="process-statements"><a href="#process-statements" class="anchor"></a>Process Statements</h2></header><div class="spec module" id="module-Solver"><a href="#module-Solver" class="anchor"></a><code><span class="keyword">module</span> <a href="Solver/index.html">Solver</a> : <a href="../../../sidekick/Sidekick_msat_solver/index.html#module-type-S">Sidekick_msat_solver.S</a> <span class="keyword">with</span> <span class="keyword">type</span> <a href="../../../sidekick/Sidekick_msat_solver/module-type-S/T/Term/index.html#type-t">T.Term.t</a> = <a href="../../../sidekick-arith/Sidekick_base_term__Base_types/Term/index.html#type-t">Sidekick_base_term.Term.t</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../../sidekick/Sidekick_msat_solver/module-type-S/T/Term/index.html#type-state">T.Term.state</a> = <a href="../../../sidekick-arith/Sidekick_base_term__Base_types/Term/index.html#type-state">Sidekick_base_term.Term.state</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../../sidekick/Sidekick_msat_solver/module-type-S/T/Ty/index.html#type-t">T.Ty.t</a> = <a href="../../../sidekick-arith/Sidekick_base_term__Base_types/Ty/index.html#type-t">Sidekick_base_term.Ty.t</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../../sidekick/Sidekick_msat_solver/module-type-S/T/Ty/index.html#type-state">T.Ty.state</a> = <a href="../../../sidekick-arith/Sidekick_base_term__Base_types/Ty/index.html#type-state">Sidekick_base_term.Ty.state</a></code></div><dl><dt class="spec value" id="val-th_bool"><a href="#val-th_bool" class="anchor"></a><code><span class="keyword">val</span> th_bool : <a href="Solver/index.html#type-theory">Solver.theory</a></code></dt><dt class="spec value" id="val-th_data"><a href="#val-th_data" class="anchor"></a><code><span class="keyword">val</span> th_data : <a href="Solver/index.html#type-theory">Solver.theory</a></code></dt><dt class="spec value" id="val-th_lra"><a href="#val-th_lra" class="anchor"></a><code><span class="keyword">val</span> th_lra : <a href="Solver/index.html#type-theory">Solver.theory</a></code></dt></dl><dl><dt class="spec type" id="type-or_error"><a href="#type-or_error" class="anchor"></a><code><span class="keyword">type</span> <span>'a or_error</span></code><code> = <span><span>(<span class="type-var">'a</span>, string)</span> CCResult.t</span></code></dt></dl><div class="spec module" id="module-Check_cc"><a href="#module-Check_cc" class="anchor"></a><code><span class="keyword">module</span> <a href="Check_cc/index.html">Check_cc</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><dl><dt class="spec value" id="val-process_stmt"><a href="#val-process_stmt" class="anchor"></a><code><span class="keyword">val</span> process_stmt : <span>?&#8288;hyps:<span><span><a href="Solver/Atom/index.html#type-t">Solver.Atom.t</a> list</span> <a href="../../../sidekick/Sidekick_util/index.html#module-Vec">Sidekick_util.Vec</a>.t</span></span> <span>&#45;&gt;</span> <span>?&#8288;gc:bool</span> <span>&#45;&gt;</span> <span>?&#8288;restarts:bool</span> <span>&#45;&gt;</span> <span>?&#8288;pp_cnf:bool</span> <span>&#45;&gt;</span> <span>?&#8288;dot_proof:string</span> <span>&#45;&gt;</span> <span>?&#8288;pp_model:bool</span> <span>&#45;&gt;</span> <span>?&#8288;check:bool</span> <span>&#45;&gt;</span> <span>?&#8288;time:float</span> <span>&#45;&gt;</span> <span>?&#8288;memory:float</span> <span>&#45;&gt;</span> <span>?&#8288;progress:bool</span> <span>&#45;&gt;</span> <a href="Solver/index.html#type-t">Solver.t</a> <span>&#45;&gt;</span> <a href="../../../sidekick-arith/Sidekick_base_term__Base_types/Statement/index.html#type-t">Sidekick_base_term.Statement.t</a> <span>&#45;&gt;</span> <span>unit <a href="index.html#type-or_error">or_error</a></span></code></dt></dl></section></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Process (sidekick-bin.Sidekick_smtlib__.Process)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../index.html">Sidekick_smtlib__</a> &#x00BB; Process</nav><h1>Module <code>Sidekick_smtlib__.Process</code></h1><nav class="toc"><ul><li><a href="#process-statements">Process Statements</a></li></ul></nav></header><section><header><h2 id="process-statements"><a href="#process-statements" class="anchor"></a>Process Statements</h2></header><div class="spec module" id="module-Solver"><a href="#module-Solver" class="anchor"></a><code><span class="keyword">module</span> <a href="Solver/index.html">Solver</a> : <a href="../../../sidekick/Sidekick_msat_solver/index.html#module-type-S">Sidekick_msat_solver.S</a> <span class="keyword">with</span> <span class="keyword">type</span> <a href="../../../sidekick/Sidekick_msat_solver/module-type-S/T/Term/index.html#type-t">T.Term.t</a> = <a href="../../../sidekick-arith/Sidekick_base_term__Base_types/Term/index.html#type-t">Sidekick_base_term.Term.t</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../../sidekick/Sidekick_msat_solver/module-type-S/T/Term/index.html#type-state">T.Term.state</a> = <a href="../../../sidekick-arith/Sidekick_base_term__Base_types/Term/index.html#type-state">Sidekick_base_term.Term.state</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../../sidekick/Sidekick_msat_solver/module-type-S/T/Ty/index.html#type-t">T.Ty.t</a> = <a href="../../../sidekick-arith/Sidekick_base_term__Base_types/Ty/index.html#type-t">Sidekick_base_term.Ty.t</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../../sidekick/Sidekick_msat_solver/module-type-S/T/Ty/index.html#type-state">T.Ty.state</a> = <a href="../../../sidekick-arith/Sidekick_base_term__Base_types/Ty/index.html#type-state">Sidekick_base_term.Ty.state</a></code></div><dl><dt class="spec value" id="val-th_bool"><a href="#val-th_bool" class="anchor"></a><code><span class="keyword">val</span> th_bool : <a href="Solver/index.html#type-theory">Solver.theory</a></code></dt><dt class="spec value" id="val-th_data"><a href="#val-th_data" class="anchor"></a><code><span class="keyword">val</span> th_data : <a href="Solver/index.html#type-theory">Solver.theory</a></code></dt><dt class="spec value" id="val-th_lra"><a href="#val-th_lra" class="anchor"></a><code><span class="keyword">val</span> th_lra : <a href="Solver/index.html#type-theory">Solver.theory</a></code></dt></dl><dl><dt class="spec type" id="type-or_error"><a href="#type-or_error" class="anchor"></a><code><span class="keyword">type</span> <span>'a or_error</span></code><code> = <span><span>(<span class="type-var">'a</span>, string)</span> CCResult.t</span></code></dt></dl><div class="spec module" id="module-Check_cc"><a href="#module-Check_cc" class="anchor"></a><code><span class="keyword">module</span> <a href="Check_cc/index.html">Check_cc</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><dl><dt class="spec value" id="val-process_stmt"><a href="#val-process_stmt" class="anchor"></a><code><span class="keyword">val</span> process_stmt : <span>?&#8288;hyps:<span><span><a href="Solver/Atom/index.html#type-t">Solver.Atom.t</a> list</span> <a href="../../../sidekick/Sidekick_util/index.html#module-Vec">Sidekick_util.Vec</a>.t</span></span> <span>&#45;&gt;</span> <span>?&#8288;gc:bool</span> <span>&#45;&gt;</span> <span>?&#8288;restarts:bool</span> <span>&#45;&gt;</span> <span>?&#8288;pp_cnf:bool</span> <span>&#45;&gt;</span> <span>?&#8288;dot_proof:string</span> <span>&#45;&gt;</span> <span>?&#8288;proof_file:string</span> <span>&#45;&gt;</span> <span>?&#8288;pp_model:bool</span> <span>&#45;&gt;</span> <span>?&#8288;check:bool</span> <span>&#45;&gt;</span> <span>?&#8288;time:float</span> <span>&#45;&gt;</span> <span>?&#8288;memory:float</span> <span>&#45;&gt;</span> <span>?&#8288;progress:bool</span> <span>&#45;&gt;</span> <a href="Solver/index.html#type-t">Solver.t</a> <span>&#45;&gt;</span> <a href="../../../sidekick-arith/Sidekick_base_term__Base_types/Statement/index.html#type-t">Sidekick_base_term.Statement.t</a> <span>&#45;&gt;</span> <span>unit <a href="index.html#type-or_error">or_error</a></span></code></dt></dl></section></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Lit (sidekick-bin.Sidekick_smtlib__Process.Solver.Lit)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../index.html">Sidekick_smtlib__Process</a> &#x00BB; <a href="../index.html">Solver</a> &#x00BB; Lit</nav><h1>Module <code>Solver.Lit</code></h1></header><dl><dt class="spec module" id="module-T"><a href="#module-T" class="anchor"></a><code><span class="keyword">module</span> T = <a href="../index.html#module-T">T</a></code></dt><dd><p>Literals depend on terms</p></dd></dl><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt><dd><p>A literal</p></dd></dl><dl><dt class="spec value" id="val-term"><a href="#val-term" class="anchor"></a><code><span class="keyword">val</span> term : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="T/Term/index.html#type-t">T.Term.t</a></code></dt><dd><p>Get the (positive) term</p></dd></dl><dl><dt class="spec value" id="val-sign"><a href="#val-sign" class="anchor"></a><code><span class="keyword">val</span> sign : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Get the sign. A negated literal has sign <code>false</code>.</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="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p>Take negation of literal. <code>sign (neg lit) = not (sign lit)</code>.</p></dd></dl><dl><dt class="spec value" id="val-abs"><a href="#val-abs" class="anchor"></a><code><span class="keyword">val</span> abs : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p><code>abs lit</code> is like <code>lit</code> but always positive, i.e. <code>sign (abs lit) = true</code></p></dd></dl><dl><dt class="spec value" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span class="keyword">val</span> equal : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-hash"><a href="#val-hash" class="anchor"></a><code><span class="keyword">val</span> hash : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><a href="index.html#type-t">t</a> <a href="../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Lit (sidekick-bin.Sidekick_smtlib__Process.Solver.Lit)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../index.html">Sidekick_smtlib__Process</a> &#x00BB; <a href="../index.html">Solver</a> &#x00BB; Lit</nav><h1>Module <code>Solver.Lit</code></h1></header><dl><dt class="spec module" id="module-T"><a href="#module-T" class="anchor"></a><code><span class="keyword">module</span> T = <a href="../index.html#module-T">T</a></code></dt><dd><p>Literals depend on terms</p></dd></dl><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt><dd><p>A literal</p></dd></dl><dl><dt class="spec value" id="val-term"><a href="#val-term" class="anchor"></a><code><span class="keyword">val</span> term : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="T/Term/index.html#type-t">T.Term.t</a></code></dt><dd><p>Get the (positive) term</p></dd></dl><dl><dt class="spec value" id="val-sign"><a href="#val-sign" class="anchor"></a><code><span class="keyword">val</span> sign : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Get the sign. A negated literal has sign <code>false</code>.</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="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p>Take negation of literal. <code>sign (neg lit) = not (sign lit)</code>.</p></dd></dl><dl><dt class="spec value" id="val-abs"><a href="#val-abs" class="anchor"></a><code><span class="keyword">val</span> abs : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p><code>abs lit</code> is like <code>lit</code> but always positive, i.e. <code>sign (abs lit) = true</code></p></dd></dl><dl><dt class="spec value" id="val-signed_term"><a href="#val-signed_term" class="anchor"></a><code><span class="keyword">val</span> signed_term : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="T/Term/index.html#type-t">T.Term.t</a> * bool</code></dt><dt class="spec value" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span class="keyword">val</span> equal : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-hash"><a href="#val-hash" class="anchor"></a><code><span class="keyword">val</span> hash : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><a href="index.html#type-t">t</a> <a href="../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt></dl></div></body></html>

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Quip (sidekick-bin.Sidekick_smtlib__Process.Solver.P.Quip)</title><link rel="stylesheet" href="../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../index.html">Sidekick_smtlib__Process</a> &#x00BB; <a href="../../index.html">Solver</a> &#x00BB; <a href="../index.html">P</a> &#x00BB; Quip</nav><h1>Module <code>P.Quip</code></h1></header><dl><dt class="spec value" id="val-output"><a href="#val-output" class="anchor"></a><code><span class="keyword">val</span> output : Stdlib.out_channel <span>&#45;&gt;</span> <a href="../index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Printer in Quip format (experimental)</p></dd></dl></div></body></html>

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Pre_proof (sidekick-bin.Sidekick_smtlib__Process.Solver.Pre_proof)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../index.html">Sidekick_smtlib__Process</a> &#x00BB; <a href="../index.html">Solver</a> &#x00BB; Pre_proof</nav><h1>Module <code>Solver.Pre_proof</code></h1><h3 id="internal-representation-of-proofs"><a href="#internal-representation-of-proofs" class="anchor"></a>Internal representation of proofs</h3><p>A type or state convertible into <a href="../P/index.html#type-t"><code>P.t</code></a></p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-output"><a href="#val-output" class="anchor"></a><code><span class="keyword">val</span> output : Stdlib.out_channel <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Output onto a channel, efficiently</p></dd></dl><dl><dt class="spec value" id="val-pp_debug"><a href="#val-pp_debug" class="anchor"></a><code><span class="keyword">val</span> pp_debug : <span><a href="index.html#type-t">t</a> <a href="../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt><dt class="spec value" id="val-pp_dot"><a href="#val-pp_dot" class="anchor"></a><code><span class="keyword">val</span> pp_dot : <span><span><a href="index.html#type-t">t</a> <a href="../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span> option</span></code></dt><dd><p>Optional printer into DOT/graphviz</p></dd></dl><dl><dt class="spec value" id="val-check"><a href="#val-check" class="anchor"></a><code><span class="keyword">val</span> check : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Check the proof (to an unspecified level of confidence; this can be a no-op). May fail.</p></dd></dl><dl><dt class="spec value" id="val-to_proof"><a href="#val-to_proof" class="anchor"></a><code><span class="keyword">val</span> to_proof : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../P/index.html#type-t">P.t</a></code></dt></dl></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Proof (sidekick-bin.Sidekick_smtlib__Process.Solver.Proof)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../index.html">Sidekick_smtlib__Process</a> &#x00BB; <a href="../index.html">Solver</a> &#x00BB; Proof</nav><h1>Module <code>Solver.Proof</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-check"><a href="#val-check" class="anchor"></a><code><span class="keyword">val</span> check : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-pp_dot"><a href="#val-pp_dot" class="anchor"></a><code><span class="keyword">val</span> pp_dot : <span><a href="index.html#type-t">t</a> <a href="../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt></dl></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Actions (sidekick-bin.Sidekick_smtlib__Process.Solver.Solver_internal.CC.Actions)</title><link rel="stylesheet" href="../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../../index.html">Sidekick_smtlib__Process</a> &#x00BB; <a href="../../../index.html">Solver</a> &#x00BB; <a href="../../index.html">Solver_internal</a> &#x00BB; <a href="../index.html">CC</a> &#x00BB; Actions</nav><h1>Module <code>CC.Actions</code></h1></header><div class="spec module" id="module-T"><a href="#module-T" class="anchor"></a><code><span class="keyword">module</span> T = <a href="../index.html#module-T">T</a></code></div><div class="spec module" id="module-P"><a href="#module-P" class="anchor"></a><code><span class="keyword">module</span> P = <a href="../index.html#module-P">P</a></code></div><div class="spec module" id="module-Lit"><a href="#module-Lit" class="anchor"></a><code><span class="keyword">module</span> Lit = <a href="../index.html#module-Lit">Lit</a></code></div><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = <a href="../../index.html#type-actions">actions</a></code></dt><dd><p>An action handle. It is used by the congruence closure to perform the actions below. How it performs the actions is not specified and is solver-specific.</p></dd></dl><dl><dt class="spec value" id="val-raise_conflict"><a href="#val-raise_conflict" class="anchor"></a><code><span class="keyword">val</span> raise_conflict : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><a href="Lit/index.html#type-t">Lit.t</a> list</span> <span>&#45;&gt;</span> <a href="P/index.html#type-t">P.t</a> <span>&#45;&gt;</span> <span class="type-var">'a</span></code></dt><dd><p><code>raise_conflict acts c pr</code> declares that <code>c</code> is a tautology of the theory of congruence. This does not return (it should raise an exception).</p><dl><dt>parameter pr</dt><dd><p>the proof of <code>c</code> being a tautology</p></dd></dl></dd></dl><dl><dt class="spec value" id="val-propagate"><a href="#val-propagate" class="anchor"></a><code><span class="keyword">val</span> propagate : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="Lit/index.html#type-t">Lit.t</a> <span>&#45;&gt;</span> <span>reason:<span>(unit <span>&#45;&gt;</span> <span><a href="Lit/index.html#type-t">Lit.t</a> list</span>)</span></span> <span>&#45;&gt;</span> <a href="P/index.html#type-t">P.t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p><code>propagate acts lit ~reason pr</code> declares that <code>reason() =&gt; lit</code> is a tautology.</p><ul><li><code>reason()</code> should return a list of literals that are currently true.</li><li><code>lit</code> should be a literal of interest (see <a href="../../../../../../sidekick/Sidekick_core/module-type-CC_S/index.html#val-set_as_lit"><code>Sidekick_core.CC_S.set_as_lit</code></a>).</li></ul><p>This function might never be called, a congruence closure has the right to not propagate and only trigger conflicts.</p></dd></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Actions (sidekick-bin.Sidekick_smtlib__Process.Solver.Solver_internal.CC.Actions)</title><link rel="stylesheet" href="../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../../index.html">Sidekick_smtlib__Process</a> &#x00BB; <a href="../../../index.html">Solver</a> &#x00BB; <a href="../../index.html">Solver_internal</a> &#x00BB; <a href="../index.html">CC</a> &#x00BB; Actions</nav><h1>Module <code>CC.Actions</code></h1></header><div class="spec module" id="module-T"><a href="#module-T" class="anchor"></a><code><span class="keyword">module</span> T = <a href="../index.html#module-T">T</a></code></div><div class="spec module" id="module-Lit"><a href="#module-Lit" class="anchor"></a><code><span class="keyword">module</span> Lit = <a href="../index.html#module-Lit">Lit</a></code></div><div class="spec module" id="module-P"><a href="#module-P" class="anchor"></a><code><span class="keyword">module</span> P = <a href="../index.html#module-P">P</a></code></div><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = <a href="../../index.html#type-actions">actions</a></code></dt><dd><p>An action handle. It is used by the congruence closure to perform the actions below. How it performs the actions is not specified and is solver-specific.</p></dd></dl><dl><dt class="spec value" id="val-raise_conflict"><a href="#val-raise_conflict" class="anchor"></a><code><span class="keyword">val</span> raise_conflict : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><a href="Lit/index.html#type-t">Lit.t</a> list</span> <span>&#45;&gt;</span> <a href="P/index.html#type-t">P.t</a> <span>&#45;&gt;</span> <span class="type-var">'a</span></code></dt><dd><p><code>raise_conflict acts c pr</code> declares that <code>c</code> is a tautology of the theory of congruence. This does not return (it should raise an exception).</p><dl><dt>parameter pr</dt><dd><p>the proof of <code>c</code> being a tautology</p></dd></dl></dd></dl><dl><dt class="spec value" id="val-propagate"><a href="#val-propagate" class="anchor"></a><code><span class="keyword">val</span> propagate : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="Lit/index.html#type-t">Lit.t</a> <span>&#45;&gt;</span> <span>reason:<span>(unit <span>&#45;&gt;</span> <span><a href="Lit/index.html#type-t">Lit.t</a> list</span> * <a href="P/index.html#type-t">P.t</a>)</span></span> <span>&#45;&gt;</span> unit</code></dt><dd><p><code>propagate acts lit ~reason pr</code> declares that <code>reason() =&gt; lit</code> is a tautology.</p><ul><li><code>reason()</code> should return a list of literals that are currently true.</li><li><code>lit</code> should be a literal of interest (see <a href="../../../../../../sidekick/Sidekick_core/module-type-CC_S/index.html#val-set_as_lit"><code>Sidekick_core.CC_S.set_as_lit</code></a>).</li></ul><p>This function might never be called, a congruence closure has the right to not propagate and only trigger conflicts.</p></dd></dl></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Expl (sidekick-bin.Sidekick_smtlib__Process.Solver.Solver_internal.CC.Expl)</title><link rel="stylesheet" href="../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../../index.html">Sidekick_smtlib__Process</a> &#x00BB; <a href="../../../index.html">Solver</a> &#x00BB; <a href="../../index.html">Solver_internal</a> &#x00BB; <a href="../index.html">CC</a> &#x00BB; Expl</nav><h1>Module <code>CC.Expl</code></h1><p>Explanations</p><p>Explanations are specialized proofs, created by the congruence closure when asked to justify why 2 terms are equal.</p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><a href="index.html#type-t">t</a> <a href="../../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt><dt class="spec value" id="val-mk_merge"><a href="#val-mk_merge" class="anchor"></a><code><span class="keyword">val</span> mk_merge : <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_merge_t"><a href="#val-mk_merge_t" class="anchor"></a><code><span class="keyword">val</span> mk_merge_t : <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_lit"><a href="#val-mk_lit" class="anchor"></a><code><span class="keyword">val</span> mk_lit : <a href="../index.html#type-lit">lit</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_list"><a href="#val-mk_list" class="anchor"></a><code><span class="keyword">val</span> mk_list : <span><a href="index.html#type-t">t</a> list</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_theory"><a href="#val-mk_theory" class="anchor"></a><code><span class="keyword">val</span> mk_theory : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Expl (sidekick-bin.Sidekick_smtlib__Process.Solver.Solver_internal.CC.Expl)</title><link rel="stylesheet" href="../../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../../index.html">Sidekick_smtlib__Process</a> &#x00BB; <a href="../../../index.html">Solver</a> &#x00BB; <a href="../../index.html">Solver_internal</a> &#x00BB; <a href="../index.html">CC</a> &#x00BB; Expl</nav><h1>Module <code>CC.Expl</code></h1><p>Explanations</p><p>Explanations are specialized proofs, created by the congruence closure when asked to justify why 2 terms are equal.</p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><a href="index.html#type-t">t</a> <a href="../../../../../../sidekick/Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt><dt class="spec value" id="val-mk_merge"><a href="#val-mk_merge" class="anchor"></a><code><span class="keyword">val</span> mk_merge : <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_merge_t"><a href="#val-mk_merge_t" class="anchor"></a><code><span class="keyword">val</span> mk_merge_t : <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_lit"><a href="#val-mk_lit" class="anchor"></a><code><span class="keyword">val</span> mk_lit : <a href="../index.html#type-lit">lit</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_list"><a href="#val-mk_list" class="anchor"></a><code><span class="keyword">val</span> mk_list : <span><a href="index.html#type-t">t</a> list</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_proof"><a href="#val-mk_proof" class="anchor"></a><code><span class="keyword">val</span> mk_proof : <a href="../P/index.html#type-t">P.t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_theory"><a href="#val-mk_theory" class="anchor"></a><code><span class="keyword">val</span> mk_theory : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt></dl></div></body></html>

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Simplify (sidekick-bin.Sidekick_smtlib__Process.Solver.Solver_internal.Simplify)</title><link rel="stylesheet" href="../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../index.html">Sidekick_smtlib__Process</a> &#x00BB; <a href="../../index.html">Solver</a> &#x00BB; <a href="../index.html">Solver_internal</a> &#x00BB; Simplify</nav><h1>Module <code>Solver_internal.Simplify</code></h1><p>Simplify terms</p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-tst"><a href="#val-tst" class="anchor"></a><code><span class="keyword">val</span> tst : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term_state">term_state</a></code></dt><dt class="spec value" id="val-ty_st"><a href="#val-ty_st" class="anchor"></a><code><span class="keyword">val</span> ty_st : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-ty_state">ty_state</a></code></dt><dt class="spec value" id="val-clear"><a href="#val-clear" class="anchor"></a><code><span class="keyword">val</span> clear : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Reset internal cache, etc.</p></dd></dl><dl><dt class="spec type" id="type-hook"><a href="#type-hook" class="anchor"></a><code><span class="keyword">type</span> hook</code><code> = <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <span><a href="../index.html#type-term">term</a> option</span></code></dt><dd><p>Given a term, try to simplify it. Return <code>None</code> if it didn't change.</p><p>A simple example could be a hook that takes a term <code>t</code>, and if <code>t</code> is <code>app &quot;+&quot; (const x) (const y)</code> where <code>x</code> and <code>y</code> are number, returns <code>Some (const (x+y))</code>, and <code>None</code> otherwise.</p></dd></dl><dl><dt class="spec value" id="val-normalize"><a href="#val-normalize" class="anchor"></a><code><span class="keyword">val</span> normalize : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a></code></dt><dd><p>Normalize a term using all the hooks. This performs a fixpoint, i.e. it only stops when no hook applies anywhere inside the term.</p></dd></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Simplify (sidekick-bin.Sidekick_smtlib__Process.Solver.Solver_internal.Simplify)</title><link rel="stylesheet" href="../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; <a href="../../../index.html">Sidekick_smtlib__Process</a> &#x00BB; <a href="../../index.html">Solver</a> &#x00BB; <a href="../index.html">Solver_internal</a> &#x00BB; Simplify</nav><h1>Module <code>Solver_internal.Simplify</code></h1><p>Simplify terms</p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-tst"><a href="#val-tst" class="anchor"></a><code><span class="keyword">val</span> tst : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term_state">term_state</a></code></dt><dt class="spec value" id="val-ty_st"><a href="#val-ty_st" class="anchor"></a><code><span class="keyword">val</span> ty_st : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-ty_state">ty_state</a></code></dt><dt class="spec value" id="val-clear"><a href="#val-clear" class="anchor"></a><code><span class="keyword">val</span> clear : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Reset internal cache, etc.</p></dd></dl><dl><dt class="spec type" id="type-hook"><a href="#type-hook" class="anchor"></a><code><span class="keyword">type</span> hook</code><code> = <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <span><span>(<a href="../index.html#type-term">term</a> * <a href="../index.html#type-proof">proof</a>)</span> option</span></code></dt><dd><p>Given a term, try to simplify it. Return <code>None</code> if it didn't change.</p><p>A simple example could be a hook that takes a term <code>t</code>, and if <code>t</code> is <code>app &quot;+&quot; (const x) (const y)</code> where <code>x</code> and <code>y</code> are number, returns <code>Some (const (x+y))</code>, and <code>None</code> otherwise.</p></dd></dl><dl><dt class="spec value" id="val-normalize"><a href="#val-normalize" class="anchor"></a><code><span class="keyword">val</span> normalize : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <span><span>(<a href="../index.html#type-term">term</a> * <a href="../P/index.html#type-t">P.t</a>)</span> option</span></code></dt><dd><p>Normalize a term using all the hooks. This performs a fixpoint, i.e. it only stops when no hook applies anywhere inside the term.</p></dd></dl><dl><dt class="spec value" id="val-normalize_t"><a href="#val-normalize_t" class="anchor"></a><code><span class="keyword">val</span> normalize_t : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> * <a href="../P/index.html#type-t">P.t</a></code></dt><dd><p>Normalize a term using all the hooks, along with a proof that the simplification is correct. returns <code>t, refl t</code> if no simplification occurred.</p></dd></dl></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sidekick_smtlib__Process (sidekick-bin.Sidekick_smtlib__Process)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; Sidekick_smtlib__Process</nav><h1>Module <code>Sidekick_smtlib__Process</code></h1><h2 id="process-statements"><a href="#process-statements" class="anchor"></a>Process Statements</h2></header><div class="spec module" id="module-Solver"><a href="#module-Solver" class="anchor"></a><code><span class="keyword">module</span> <a href="Solver/index.html">Solver</a> : <a href="../../sidekick/Sidekick_msat_solver/index.html#module-type-S">Sidekick_msat_solver.S</a> <span class="keyword">with</span> <span class="keyword">type</span> <a href="../../sidekick/Sidekick_msat_solver/module-type-S/T/Term/index.html#type-t">T.Term.t</a> = <a href="../../sidekick-arith/Sidekick_base_term__Base_types/Term/index.html#type-t">Sidekick_base_term.Term.t</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../sidekick/Sidekick_msat_solver/module-type-S/T/Term/index.html#type-state">T.Term.state</a> = <a href="../../sidekick-arith/Sidekick_base_term__Base_types/Term/index.html#type-state">Sidekick_base_term.Term.state</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../sidekick/Sidekick_msat_solver/module-type-S/T/Ty/index.html#type-t">T.Ty.t</a> = <a href="../../sidekick-arith/Sidekick_base_term__Base_types/Ty/index.html#type-t">Sidekick_base_term.Ty.t</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../sidekick/Sidekick_msat_solver/module-type-S/T/Ty/index.html#type-state">T.Ty.state</a> = <a href="../../sidekick-arith/Sidekick_base_term__Base_types/Ty/index.html#type-state">Sidekick_base_term.Ty.state</a></code></div><dl><dt class="spec value" id="val-th_bool"><a href="#val-th_bool" class="anchor"></a><code><span class="keyword">val</span> th_bool : <a href="Solver/index.html#type-theory">Solver.theory</a></code></dt><dt class="spec value" id="val-th_data"><a href="#val-th_data" class="anchor"></a><code><span class="keyword">val</span> th_data : <a href="Solver/index.html#type-theory">Solver.theory</a></code></dt><dt class="spec value" id="val-th_lra"><a href="#val-th_lra" class="anchor"></a><code><span class="keyword">val</span> th_lra : <a href="Solver/index.html#type-theory">Solver.theory</a></code></dt></dl><dl><dt class="spec type" id="type-or_error"><a href="#type-or_error" class="anchor"></a><code><span class="keyword">type</span> <span>'a or_error</span></code><code> = <span><span>(<span class="type-var">'a</span>, string)</span> CCResult.t</span></code></dt></dl><div class="spec module" id="module-Check_cc"><a href="#module-Check_cc" class="anchor"></a><code><span class="keyword">module</span> <a href="Check_cc/index.html">Check_cc</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><dl><dt class="spec value" id="val-process_stmt"><a href="#val-process_stmt" class="anchor"></a><code><span class="keyword">val</span> process_stmt : <span>?&#8288;hyps:<span><span><a href="Solver/Atom/index.html#type-t">Solver.Atom.t</a> list</span> <a href="../../sidekick/Sidekick_util/index.html#module-Vec">Sidekick_util.Vec</a>.t</span></span> <span>&#45;&gt;</span> <span>?&#8288;gc:bool</span> <span>&#45;&gt;</span> <span>?&#8288;restarts:bool</span> <span>&#45;&gt;</span> <span>?&#8288;pp_cnf:bool</span> <span>&#45;&gt;</span> <span>?&#8288;dot_proof:string</span> <span>&#45;&gt;</span> <span>?&#8288;pp_model:bool</span> <span>&#45;&gt;</span> <span>?&#8288;check:bool</span> <span>&#45;&gt;</span> <span>?&#8288;time:float</span> <span>&#45;&gt;</span> <span>?&#8288;memory:float</span> <span>&#45;&gt;</span> <span>?&#8288;progress:bool</span> <span>&#45;&gt;</span> <a href="Solver/index.html#type-t">Solver.t</a> <span>&#45;&gt;</span> <a href="../../sidekick-arith/Sidekick_base_term__Base_types/Statement/index.html#type-t">Sidekick_base_term.Statement.t</a> <span>&#45;&gt;</span> <span>unit <a href="index.html#type-or_error">or_error</a></span></code></dt></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sidekick_smtlib__Process (sidekick-bin.Sidekick_smtlib__Process)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick-bin</a> &#x00BB; Sidekick_smtlib__Process</nav><h1>Module <code>Sidekick_smtlib__Process</code></h1><h2 id="process-statements"><a href="#process-statements" class="anchor"></a>Process Statements</h2></header><div class="spec module" id="module-Solver"><a href="#module-Solver" class="anchor"></a><code><span class="keyword">module</span> <a href="Solver/index.html">Solver</a> : <a href="../../sidekick/Sidekick_msat_solver/index.html#module-type-S">Sidekick_msat_solver.S</a> <span class="keyword">with</span> <span class="keyword">type</span> <a href="../../sidekick/Sidekick_msat_solver/module-type-S/T/Term/index.html#type-t">T.Term.t</a> = <a href="../../sidekick-arith/Sidekick_base_term__Base_types/Term/index.html#type-t">Sidekick_base_term.Term.t</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../sidekick/Sidekick_msat_solver/module-type-S/T/Term/index.html#type-state">T.Term.state</a> = <a href="../../sidekick-arith/Sidekick_base_term__Base_types/Term/index.html#type-state">Sidekick_base_term.Term.state</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../sidekick/Sidekick_msat_solver/module-type-S/T/Ty/index.html#type-t">T.Ty.t</a> = <a href="../../sidekick-arith/Sidekick_base_term__Base_types/Ty/index.html#type-t">Sidekick_base_term.Ty.t</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../sidekick/Sidekick_msat_solver/module-type-S/T/Ty/index.html#type-state">T.Ty.state</a> = <a href="../../sidekick-arith/Sidekick_base_term__Base_types/Ty/index.html#type-state">Sidekick_base_term.Ty.state</a></code></div><dl><dt class="spec value" id="val-th_bool"><a href="#val-th_bool" class="anchor"></a><code><span class="keyword">val</span> th_bool : <a href="Solver/index.html#type-theory">Solver.theory</a></code></dt><dt class="spec value" id="val-th_data"><a href="#val-th_data" class="anchor"></a><code><span class="keyword">val</span> th_data : <a href="Solver/index.html#type-theory">Solver.theory</a></code></dt><dt class="spec value" id="val-th_lra"><a href="#val-th_lra" class="anchor"></a><code><span class="keyword">val</span> th_lra : <a href="Solver/index.html#type-theory">Solver.theory</a></code></dt></dl><dl><dt class="spec type" id="type-or_error"><a href="#type-or_error" class="anchor"></a><code><span class="keyword">type</span> <span>'a or_error</span></code><code> = <span><span>(<span class="type-var">'a</span>, string)</span> CCResult.t</span></code></dt></dl><div class="spec module" id="module-Check_cc"><a href="#module-Check_cc" class="anchor"></a><code><span class="keyword">module</span> <a href="Check_cc/index.html">Check_cc</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><dl><dt class="spec value" id="val-process_stmt"><a href="#val-process_stmt" class="anchor"></a><code><span class="keyword">val</span> process_stmt : <span>?&#8288;hyps:<span><span><a href="Solver/Atom/index.html#type-t">Solver.Atom.t</a> list</span> <a href="../../sidekick/Sidekick_util/index.html#module-Vec">Sidekick_util.Vec</a>.t</span></span> <span>&#45;&gt;</span> <span>?&#8288;gc:bool</span> <span>&#45;&gt;</span> <span>?&#8288;restarts:bool</span> <span>&#45;&gt;</span> <span>?&#8288;pp_cnf:bool</span> <span>&#45;&gt;</span> <span>?&#8288;dot_proof:string</span> <span>&#45;&gt;</span> <span>?&#8288;proof_file:string</span> <span>&#45;&gt;</span> <span>?&#8288;pp_model:bool</span> <span>&#45;&gt;</span> <span>?&#8288;check:bool</span> <span>&#45;&gt;</span> <span>?&#8288;time:float</span> <span>&#45;&gt;</span> <span>?&#8288;memory:float</span> <span>&#45;&gt;</span> <span>?&#8288;progress:bool</span> <span>&#45;&gt;</span> <a href="Solver/index.html#type-t">Solver.t</a> <span>&#45;&gt;</span> <a href="../../sidekick-arith/Sidekick_base_term__Base_types/Statement/index.html#type-t">Sidekick_base_term.Statement.t</a> <span>&#45;&gt;</span> <span>unit <a href="index.html#type-or_error">or_error</a></span></code></dt></dl></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Expl (sidekick.Sidekick_cc.Make.Expl)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick</a> &#x00BB; <a href="../../index.html">Sidekick_cc</a> &#x00BB; <a href="../index.html">Make</a> &#x00BB; Expl</nav><h1>Module <code>Make.Expl</code></h1><p>Explanations</p><p>Explanations are specialized proofs, created by the congruence closure when asked to justify why 2 terms are equal.</p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><a href="index.html#type-t">t</a> <a href="../../../Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt><dt class="spec value" id="val-mk_merge"><a href="#val-mk_merge" class="anchor"></a><code><span class="keyword">val</span> mk_merge : <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_merge_t"><a href="#val-mk_merge_t" class="anchor"></a><code><span class="keyword">val</span> mk_merge_t : <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_lit"><a href="#val-mk_lit" class="anchor"></a><code><span class="keyword">val</span> mk_lit : <a href="../index.html#type-lit">lit</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_list"><a href="#val-mk_list" class="anchor"></a><code><span class="keyword">val</span> mk_list : <span><a href="index.html#type-t">t</a> list</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_theory"><a href="#val-mk_theory" class="anchor"></a><code><span class="keyword">val</span> mk_theory : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt></dl></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Expl (sidekick.Sidekick_cc.Make.Expl)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">sidekick</a> &#x00BB; <a href="../../index.html">Sidekick_cc</a> &#x00BB; <a href="../index.html">Make</a> &#x00BB; Expl</nav><h1>Module <code>Make.Expl</code></h1><p>Explanations</p><p>Explanations are specialized proofs, created by the congruence closure when asked to justify why 2 terms are equal.</p></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><a href="index.html#type-t">t</a> <a href="../../../Sidekick_core/index.html#module-Fmt">Sidekick_core.Fmt</a>.printer</span></code></dt><dt class="spec value" id="val-mk_merge"><a href="#val-mk_merge" class="anchor"></a><code><span class="keyword">val</span> mk_merge : <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="../N/index.html#type-t">N.t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_merge_t"><a href="#val-mk_merge_t" class="anchor"></a><code><span class="keyword">val</span> mk_merge_t : <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="../index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_lit"><a href="#val-mk_lit" class="anchor"></a><code><span class="keyword">val</span> mk_lit : <a href="../index.html#type-lit">lit</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_list"><a href="#val-mk_list" class="anchor"></a><code><span class="keyword">val</span> mk_list : <span><a href="index.html#type-t">t</a> list</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_proof"><a href="#val-mk_proof" class="anchor"></a><code><span class="keyword">val</span> mk_proof : <a href="../P/index.html#type-t">P.t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_theory"><a href="#val-mk_theory" class="anchor"></a><code><span class="keyword">val</span> mk_theory : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt></dl></div></body></html>

Some files were not shown because too many files have changed in this diff Show more