This commit is contained in:
c-cube 2022-10-10 20:07:35 +00:00
parent 2381aa24a3
commit e9a698b686
22 changed files with 82 additions and 39 deletions

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Unknown (sidekick-base.Sidekick_base.Solver.Unknown)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.1.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../../index.html">sidekick-base</a> &#x00BB; <a href="../../index.html">Sidekick_base</a> &#x00BB; <a href="../index.html">Solver</a> &#x00BB; Unknown</nav><header class="odoc-preamble"><h1>Module <code><span>Solver.Unknown</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type" id="type-t" class="anchored"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-pp" class="anchored"><a href="#val-pp" class="anchor"></a><code><span><span class="keyword">val</span> pp : <span><a href="#type-t">t</a> <span class="xref-unresolved">CCFormat</span>.printer</span></span></code></div></div></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>Check_cc (sidekick-base.Sidekick_smtlib.Check_cc)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.1.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../index.html">sidekick-base</a> &#x00BB; <a href="../index.html">Sidekick_smtlib</a> &#x00BB; Check_cc</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_smtlib.Check_cc</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value" id="val-theory" class="anchored"><a href="#val-theory" class="anchor"></a><code><span><span class="keyword">val</span> theory : <a href="../Solver/index.html#type-cdcl_theory">Solver.cdcl_theory</a></span></code></div><div class="spec-doc"><p>theory that check validity of EUF conflicts, on the fly</p></div></div></div></body></html>

View file

@ -0,0 +1,12 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Driver (sidekick-base.Sidekick_smtlib.Driver)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.1.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../index.html">sidekick-base</a> &#x00BB; <a href="../index.html">Sidekick_smtlib</a> &#x00BB; Driver</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_smtlib.Driver</span></code></h1><p>Driver.</p><p>The driver is responsible for processing statements from a SMTLIB file, and interacting with the solver based on the statement (asserting formulas, calling &quot;solve&quot;, etc.)</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec module" id="module-Asolver" class="anchored"><a href="#module-Asolver" class="anchor"></a><code><span><span class="keyword">module</span> Asolver</span><span> = <a href="../../../sidekick/Sidekick_abstract_solver/Asolver/index.html">Solver.Asolver</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-th_bool_dyn" class="anchored"><a href="#val-th_bool_dyn" class="anchor"></a><code><span><span class="keyword">val</span> th_bool_dyn : <a href="../../Sidekick_base/Solver/index.html#type-theory">Sidekick_base.Solver.theory</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-th_bool_static" class="anchored"><a href="#val-th_bool_static" class="anchor"></a><code><span><span class="keyword">val</span> th_bool_static : <a href="../../Sidekick_base/Solver/index.html#type-theory">Sidekick_base.Solver.theory</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-th_bool" class="anchored"><a href="#val-th_bool" class="anchor"></a><code><span><span class="keyword">val</span> th_bool : <span><a href="../../Sidekick_base/Config/index.html#type-t">Sidekick_base.Config.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="../../Sidekick_base/Solver/index.html#type-theory">Sidekick_base.Solver.theory</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-th_data" class="anchored"><a href="#val-th_data" class="anchor"></a><code><span><span class="keyword">val</span> th_data : <a href="../../Sidekick_base/Solver/index.html#type-theory">Sidekick_base.Solver.theory</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-th_lra" class="anchored"><a href="#val-th_lra" class="anchor"></a><code><span><span class="keyword">val</span> th_lra : <a href="../../Sidekick_base/Solver/index.html#type-theory">Sidekick_base.Solver.theory</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-th_ty_unin" class="anchored"><a href="#val-th_ty_unin" class="anchor"></a><code><span><span class="keyword">val</span> th_ty_unin : <a href="../../Sidekick_base/Solver/index.html#type-theory">Sidekick_base.Solver.theory</a></span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-or_error" class="anchored"><a href="#type-or_error" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a or_error</span></span><span> = <span><span>( <span class="type-var">'a</span>, string )</span> <span class="xref-unresolved">CCResult</span>.t</span></span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-t" class="anchored"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span></code></div><div class="spec-doc"><p>The SMTLIB driver</p></div></div><div class="odoc-spec"><div class="spec value" id="val-create" class="anchored"><a href="#val-create" class="anchor"></a><code><span><span class="keyword">val</span> create :
<span>?restarts:bool <span class="arrow">&#45;&gt;</span></span>
<span>?pp_cnf:bool <span class="arrow">&#45;&gt;</span></span>
<span>?proof_file:string <span class="arrow">&#45;&gt;</span></span>
<span>?pp_model:bool <span class="arrow">&#45;&gt;</span></span>
<span>?check:bool <span class="arrow">&#45;&gt;</span></span>
<span>?time:float <span class="arrow">&#45;&gt;</span></span>
<span>?memory:float <span class="arrow">&#45;&gt;</span></span>
<span>?progress:bool <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../sidekick/Sidekick_abstract_solver/Asolver/class-type-t/index.html">Asolver.t</a> <span class="arrow">&#45;&gt;</span></span>
<a href="#type-t">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-process_stmt" class="anchored"><a href="#val-process_stmt" class="anchor"></a><code><span><span class="keyword">val</span> process_stmt : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Sidekick_base/Statement/index.html#type-t">Sidekick_base.Statement.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="#type-or_error">or_error</a></span></span></code></div></div></div></body></html>

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Solver (sidekick-base.Sidekick_smtlib.Solver)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.1.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../index.html">sidekick-base</a> &#x00BB; <a href="../index.html">Sidekick_smtlib</a> &#x00BB; Solver</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_smtlib.Solver</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec module" id="module-Asolver" class="anchored"><a href="#module-Asolver" class="anchor"></a><code><span><span class="keyword">module</span> Asolver</span><span> = <a href="../../../sidekick/Sidekick_abstract_solver/Asolver/index.html">Sidekick_abstract_solver.Asolver</a></span></code></div></div><div class="odoc-spec"><div class="spec module" id="module-Smt_solver" class="anchored"><a href="#module-Smt_solver" class="anchor"></a><code><span><span class="keyword">module</span> Smt_solver</span><span> = <a href="../../../sidekick/Sidekick_smt_solver/index.html">Sidekick_smt_solver</a></span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-t" class="anchored"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span><span> = <a href="../../../sidekick/Sidekick_abstract_solver/Asolver/class-type-t/index.html">Asolver.t</a></span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-cdcl_theory" class="anchored"><a href="#type-cdcl_theory" class="anchor"></a><code><span><span class="keyword">type</span> cdcl_theory</span><span> = <a href="../../../sidekick/Sidekick_smt_solver/index.html#type-theory">Smt_solver.theory</a></span></code></div></div></div></body></html>

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sidekick_smtlib (sidekick-base.Sidekick_smtlib)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.1.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../index.html">sidekick-base</a> &#x00BB; Sidekick_smtlib</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_smtlib</span></code></h1><p>SMTLib-2.6 Driver</p></header><div class="odoc-content"><p>This library provides a parser, a type-checker, and a driver for processing SMTLib-2 problems.</p><div class="odoc-spec"><div class="spec type" id="type-or_error" class="anchored"><a href="#type-or_error" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a or_error</span></span><span> = <span><span>( <span class="type-var">'a</span>, string )</span> <span class="xref-unresolved">CCResult</span>.t</span></span></code></div></div><div class="odoc-spec"><div class="spec module" id="module-Term" class="anchored"><a href="#module-Term" class="anchor"></a><code><span><span class="keyword">module</span> Term</span><span> = <a href="../Sidekick_base/Term/index.html">Sidekick_base.Term</a></span></code></div></div><div class="odoc-spec"><div class="spec module" id="module-Stmt" class="anchored"><a href="#module-Stmt" class="anchor"></a><code><span><span class="keyword">module</span> Stmt</span><span> = <a href="../Sidekick_base/Statement/index.html">Sidekick_base.Statement</a></span></code></div></div><div class="odoc-spec"><div class="spec module" id="module-Driver" class="anchored"><a href="#module-Driver" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Driver/index.html">Driver</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Driver.</p></div></div><div class="odoc-spec"><div class="spec module" id="module-Solver" class="anchored"><a href="#module-Solver" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Solver/index.html">Solver</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec module" id="module-Proof_trace" class="anchored"><a href="#module-Proof_trace" class="anchor"></a><code><span><span class="keyword">module</span> Proof_trace</span><span> = <a href="../../sidekick/Sidekick_core/Proof_trace/index.html">Sidekick_core.Proof_trace</a></span></code></div></div><div class="odoc-spec"><div class="spec module" id="module-Check_cc" class="anchored"><a href="#module-Check_cc" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Check_cc/index.html">Check_cc</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-parse" class="anchored"><a href="#val-parse" class="anchor"></a><code><span><span class="keyword">val</span> parse : <span><a href="../Sidekick_base/Term/index.html#type-store">Term.store</a> <span class="arrow">&#45;&gt;</span></span> <span>string <span class="arrow">&#45;&gt;</span></span> <span><span><a href="../Sidekick_base/Statement/index.html#type-t">Stmt.t</a> list</span> <a href="#type-or_error">or_error</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-parse_stdin" class="anchored"><a href="#val-parse_stdin" class="anchor"></a><code><span><span class="keyword">val</span> parse_stdin : <span><a href="../Sidekick_base/Term/index.html#type-store">Term.store</a> <span class="arrow">&#45;&gt;</span></span> <span><span><a href="../Sidekick_base/Statement/index.html#type-t">Stmt.t</a> list</span> <a href="#type-or_error">or_error</a></span></span></code></div></div></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>index (sidekick-base.index)</title><link rel="stylesheet" href="../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.1.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> sidekick-base</nav><header class="odoc-preamble"><h1 id="sidekick-base-index"><a href="#sidekick-base-index" class="anchor"></a>sidekick-base index</h1></header><nav class="odoc-toc"><ul><li><a href="#library-sidekick-base">Library sidekick-base</a></li><li><a href="#library-sidekick-base.proof-trace">Library sidekick-base.proof-trace</a></li></ul></nav><div class="odoc-content"><h2 id="library-sidekick-base"><a href="#library-sidekick-base" class="anchor"></a>Library sidekick-base</h2><p>The entry point of this library is the module: <a href="Sidekick_base/index.html"><code>Sidekick_base</code></a>.</p><h2 id="library-sidekick-base.proof-trace"><a href="#library-sidekick-base.proof-trace" class="anchor"></a>Library sidekick-base.proof-trace</h2><p>The entry point of this library is the module: <a href="Sidekick_base_proof_trace/index.html"><code>Sidekick_base_proof_trace</code></a>.</p></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>index (sidekick-base.index)</title><link rel="stylesheet" href="../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.1.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> sidekick-base</nav><header class="odoc-preamble"><h1 id="sidekick-base-index"><a href="#sidekick-base-index" class="anchor"></a>sidekick-base index</h1></header><nav class="odoc-toc"><ul><li><a href="#library-sidekick-base">Library sidekick-base</a></li><li><a href="#library-sidekick-base.proof-trace">Library sidekick-base.proof-trace</a></li><li><a href="#library-sidekick-base.smtlib">Library sidekick-base.smtlib</a></li></ul></nav><div class="odoc-content"><h2 id="library-sidekick-base"><a href="#library-sidekick-base" class="anchor"></a>Library sidekick-base</h2><p>The entry point of this library is the module: <a href="Sidekick_base/index.html"><code>Sidekick_base</code></a>.</p><h2 id="library-sidekick-base.proof-trace"><a href="#library-sidekick-base.proof-trace" class="anchor"></a>Library sidekick-base.proof-trace</h2><p>The entry point of this library is the module: <a href="Sidekick_base_proof_trace/index.html"><code>Sidekick_base_proof_trace</code></a>.</p><h2 id="library-sidekick-base.smtlib"><a href="#library-sidekick-base.smtlib" class="anchor"></a>Library sidekick-base.smtlib</h2><p>The entry point of this library is the module: <a href="Sidekick_smtlib/index.html"><code>Sidekick_smtlib</code></a>.</p></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Check_cc (sidekick-bin.Sidekick_smtlib.Process.Check_cc)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.1.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-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; Check_cc</nav><header class="odoc-preamble"><h1>Module <code><span>Process.Check_cc</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value" id="val-theory" class="anchored"><a href="#val-theory" class="anchor"></a><code><span><span class="keyword">val</span> theory : <a href="../../../../sidekick-base/Sidekick_base/Solver/index.html#type-theory">Solver.theory</a></span></code></div><div class="spec-doc"><p>theory that check validity of conflicts</p></div></div></div></body></html>

View file

@ -1,14 +0,0 @@
<!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 2.1.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-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><header class="odoc-preamble"><h1>Module <code><span>Sidekick_smtlib.Process</span></code></h1></header><nav class="odoc-toc"><ul><li><a href="#process-statements">Process Statements</a></li></ul></nav><div class="odoc-content"><h2 id="process-statements"><a href="#process-statements" class="anchor"></a>Process Statements</h2><div class="odoc-spec"><div class="spec module" id="module-Solver" class="anchored"><a href="#module-Solver" class="anchor"></a><code><span><span class="keyword">module</span> Solver</span><span> = <a href="../../../sidekick-base/Sidekick_base/Solver/index.html">Sidekick_base.Solver</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-th_bool_dyn" class="anchored"><a href="#val-th_bool_dyn" class="anchor"></a><code><span><span class="keyword">val</span> th_bool_dyn : <a href="../../../sidekick-base/Sidekick_base/Solver/index.html#type-theory">Solver.theory</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-th_bool_static" class="anchored"><a href="#val-th_bool_static" class="anchor"></a><code><span><span class="keyword">val</span> th_bool_static : <a href="../../../sidekick-base/Sidekick_base/Solver/index.html#type-theory">Solver.theory</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-th_bool" class="anchored"><a href="#val-th_bool" class="anchor"></a><code><span><span class="keyword">val</span> th_bool : <span><a href="../../../sidekick-base/Sidekick_base/Config/index.html#type-t">Sidekick_base.Config.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="../../../sidekick-base/Sidekick_base/Solver/index.html#type-theory">Solver.theory</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-th_data" class="anchored"><a href="#val-th_data" class="anchor"></a><code><span><span class="keyword">val</span> th_data : <a href="../../../sidekick-base/Sidekick_base/Solver/index.html#type-theory">Solver.theory</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-th_lra" class="anchored"><a href="#val-th_lra" class="anchor"></a><code><span><span class="keyword">val</span> th_lra : <a href="../../../sidekick-base/Sidekick_base/Solver/index.html#type-theory">Solver.theory</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-th_ty_unin" class="anchored"><a href="#val-th_ty_unin" class="anchor"></a><code><span><span class="keyword">val</span> th_ty_unin : <a href="../../../sidekick-base/Sidekick_base/Solver/index.html#type-theory">Solver.theory</a></span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-or_error" class="anchored"><a href="#type-or_error" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a or_error</span></span><span> = <span><span>( <span class="type-var">'a</span>, string )</span> <span class="xref-unresolved">CCResult</span>.t</span></span></code></div></div><div class="odoc-spec"><div class="spec module" id="module-Check_cc" class="anchored"><a href="#module-Check_cc" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Check_cc/index.html">Check_cc</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-process_stmt" class="anchored"><a href="#val-process_stmt" class="anchor"></a><code><span><span class="keyword">val</span> process_stmt :
<span>?gc:bool <span class="arrow">&#45;&gt;</span></span>
<span>?restarts:bool <span class="arrow">&#45;&gt;</span></span>
<span>?pp_cnf:bool <span class="arrow">&#45;&gt;</span></span>
<span>?proof_file:string <span class="arrow">&#45;&gt;</span></span>
<span>?pp_model:bool <span class="arrow">&#45;&gt;</span></span>
<span>?check:bool <span class="arrow">&#45;&gt;</span></span>
<span>?time:float <span class="arrow">&#45;&gt;</span></span>
<span>?memory:float <span class="arrow">&#45;&gt;</span></span>
<span>?progress:bool <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../sidekick-base/Sidekick_base/Solver/index.html#type-t">Solver.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../sidekick-base/Sidekick_base/Statement/index.html#type-t">Sidekick_base.Statement.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="#type-or_error">or_error</a></span></span></code></div></div></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sidekick_smtlib (sidekick-bin.Sidekick_smtlib)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.1.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../index.html">sidekick-bin</a> &#x00BB; Sidekick_smtlib</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_smtlib</span></code></h1></header><nav class="odoc-toc"><ul><li><a href="#smtlib-2-interface">SMTLib-2 Interface</a></li></ul></nav><div class="odoc-content"><h2 id="smtlib-2-interface"><a href="#smtlib-2-interface" class="anchor"></a>SMTLib-2 Interface</h2><p>This library provides a parser, a type-checker, and a solver interface for processing SMTLib-2 problems.</p><div class="odoc-spec"><div class="spec type" id="type-or_error" class="anchored"><a href="#type-or_error" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a or_error</span></span><span> = <span><span>( <span class="type-var">'a</span>, string )</span> <span class="xref-unresolved">CCResult</span>.t</span></span></code></div></div><div class="odoc-spec"><div class="spec module" id="module-Term" class="anchored"><a href="#module-Term" class="anchor"></a><code><span><span class="keyword">module</span> Term</span><span> = <a href="../../sidekick-base/Sidekick_base/Term/index.html">Sidekick_base.Term</a></span></code></div></div><div class="odoc-spec"><div class="spec module" id="module-Stmt" class="anchored"><a href="#module-Stmt" class="anchor"></a><code><span><span class="keyword">module</span> Stmt</span><span> = <a href="../../sidekick-base/Sidekick_base/Statement/index.html">Sidekick_base.Statement</a></span></code></div></div><div class="odoc-spec"><div class="spec module" id="module-Process" class="anchored"><a href="#module-Process" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Process/index.html">Process</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec module" id="module-Solver" class="anchored"><a href="#module-Solver" class="anchor"></a><code><span><span class="keyword">module</span> Solver</span><span> = <a href="../../sidekick-base/Sidekick_base/Solver/index.html">Process.Solver</a></span></code></div></div><div class="odoc-spec"><div class="spec module" id="module-Proof_trace" class="anchored"><a href="#module-Proof_trace" class="anchor"></a><code><span><span class="keyword">module</span> Proof_trace</span><span> = <a href="../../sidekick/Sidekick_core/Proof_trace/index.html">Sidekick_core.Proof_trace</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-parse" class="anchored"><a href="#val-parse" class="anchor"></a><code><span><span class="keyword">val</span> parse : <span><a href="../../sidekick-base/Sidekick_base/Term/index.html#type-store">Term.store</a> <span class="arrow">&#45;&gt;</span></span> <span>string <span class="arrow">&#45;&gt;</span></span> <span><span><a href="../../sidekick-base/Sidekick_base/Statement/index.html#type-t">Stmt.t</a> list</span> <a href="#type-or_error">or_error</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-parse_stdin" class="anchored"><a href="#val-parse_stdin" class="anchor"></a><code><span><span class="keyword">val</span> parse_stdin : <span><a href="../../sidekick-base/Sidekick_base/Term/index.html#type-store">Term.store</a> <span class="arrow">&#45;&gt;</span></span> <span><span><a href="../../sidekick-base/Sidekick_base/Statement/index.html#type-t">Stmt.t</a> list</span> <a href="#type-or_error">or_error</a></span></span></code></div></div></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>index (sidekick-bin.index)</title><link rel="stylesheet" href="../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.1.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> sidekick-bin</nav><header class="odoc-preamble"><h1 id="sidekick-bin-index"><a href="#sidekick-bin-index" class="anchor"></a>sidekick-bin index</h1></header><nav class="odoc-toc"><ul><li><a href="#library-sidekick-bin.lib">Library sidekick-bin.lib</a></li><li><a href="#library-sidekick-bin.smtlib">Library sidekick-bin.smtlib</a></li></ul></nav><div class="odoc-content"><h2 id="library-sidekick-bin.lib"><a href="#library-sidekick-bin.lib" class="anchor"></a>Library sidekick-bin.lib</h2><p>The entry point of this library is the module: <a href="Sidekick_bin_lib/index.html"><code>Sidekick_bin_lib</code></a>.</p><h2 id="library-sidekick-bin.smtlib"><a href="#library-sidekick-bin.smtlib" class="anchor"></a>Library sidekick-bin.smtlib</h2><p>The entry point of this library is the module: <a href="Sidekick_smtlib/index.html"><code>Sidekick_smtlib</code></a>.</p></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>index (sidekick-bin.index)</title><link rel="stylesheet" href="../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.1.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> sidekick-bin</nav><header class="odoc-preamble"><h1 id="sidekick-bin-index"><a href="#sidekick-bin-index" class="anchor"></a>sidekick-bin index</h1></header><nav class="odoc-toc"><ul><li><a href="#library-sidekick-bin.lib">Library sidekick-bin.lib</a></li></ul></nav><div class="odoc-content"><h2 id="library-sidekick-bin.lib"><a href="#library-sidekick-bin.lib" class="anchor"></a>Library sidekick-bin.lib</h2><p>The entry point of this library is the module: <a href="Sidekick_bin_lib/index.html"><code>Sidekick_bin_lib</code></a>.</p></div></body></html>

View file

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>t (sidekick.Sidekick_abstract_solver.Asolver.t)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.1.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../../index.html">sidekick</a> &#x00BB; <a href="../../index.html">Sidekick_abstract_solver</a> &#x00BB; <a href="../index.html">Asolver</a> &#x00BB; t</nav><header class="odoc-preamble"><h1>Class type <code><span>Asolver.t</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec method" id="method-assert_term" class="anchored"><a href="#method-assert_term" class="anchor"></a><code><span><span class="keyword">method</span> assert_term : <span><a href="../../../Sidekick_core/Term/index.html#type-t">Sidekick_core.Term.t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Helper that turns the term into an atom, before adding the result to the solver as a unit clause assertion.</p><p>This uses <code>Proof_sat</code>.sat_input_clause to justify the assertion.</p></div></div><div class="odoc-spec"><div class="spec method" id="method-assert_clause" class="anchored"><a href="#method-assert_clause" class="anchor"></a><code><span><span class="keyword">method</span> assert_clause : <span><span><a href="../../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> array</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../Sidekick_core/Proof_step/index.html#type-id">Sidekick_core.Proof_step.id</a> <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div><div class="spec-doc"><p><code>add_clause solver cs</code> adds a boolean clause to the solver. Subsequent calls to <code>solve</code> will need to satisfy this clause.</p></div></div><div class="odoc-spec"><div class="spec method" id="method-assert_clause_l" class="anchored"><a href="#method-assert_clause_l" class="anchor"></a><code><span><span class="keyword">method</span> assert_clause_l : <span><span><a href="../../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../Sidekick_core/Proof_step/index.html#type-id">Sidekick_core.Proof_step.id</a> <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div><div class="spec-doc"><p>Add a clause to the solver, given as a list.</p></div></div><div class="odoc-spec"><div class="spec method" id="method-add_ty" class="anchored"><a href="#method-add_ty" class="anchor"></a><code><span><span class="keyword">method</span> add_ty : <span>ty:<a href="../../../Sidekick_core/Term/index.html#type-t">Sidekick_core.Term.t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Add a new sort/atomic type.</p></div></div><div class="odoc-spec"><div class="spec method" id="method-lit_of_term" class="anchored"><a href="#method-lit_of_term" class="anchor"></a><code><span><span class="keyword">method</span> lit_of_term : <span>?sign:bool <span class="arrow">&#45;&gt;</span></span> <span><a href="../../../Sidekick_core/Term/index.html#type-t">Sidekick_core.Term.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="../../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a></span></code></div><div class="spec-doc"><p>Convert a term into a simplified literal.</p></div></div><div class="odoc-spec"><div class="spec method" id="method-solve" class="anchored"><a href="#method-solve" class="anchor"></a><code><span><span class="keyword">method</span> solve : <span>?on_exit:<span><span>( <span>unit <span class="arrow">&#45;&gt;</span></span> unit )</span> list</span> <span class="arrow">&#45;&gt;</span></span>
<span>?on_progress:<span>( <span>unit <span class="arrow">&#45;&gt;</span></span> unit )</span> <span class="arrow">&#45;&gt;</span></span>
<span>?should_stop:<span>( <span>int <span class="arrow">&#45;&gt;</span></span> bool )</span> <span class="arrow">&#45;&gt;</span></span>
<span>assumptions:<span><a href="../../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span>unit <span class="arrow">&#45;&gt;</span></span>
<a href="../Check_res/index.html#type-t">Check_res.t</a></span></code></div><div class="spec-doc"><p>Checks the satisfiability of the clauses added so far to the solver.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">assumptions</span> <p>a set of atoms held to be true. The unsat core, if any, will be a subset of <code>assumptions</code>.</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">on_progress</span> <p>called regularly during solving.</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">should_stop</span> <p>a callback regularly called from within the solver. It is given a number of &quot;steps&quot; done since last call. The exact notion of step is not defined, but is guaranteed to increase regularly. The function should return <code>true</code> if it judges solving must stop (returning <code>Unknown</code>), <code>false</code> if solving can proceed.</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">on_exit</span> <p>functions to be run before this returns</p></li></ul></div></div><div class="odoc-spec"><div class="spec method" id="method-last_res" class="anchored"><a href="#method-last_res" class="anchor"></a><code><span><span class="keyword">method</span> last_res : <span><a href="../Check_res/index.html#type-t">Check_res.t</a> option</span></span></code></div><div class="spec-doc"><p>Returns the result of the last call to <code>solve</code>, if the logic statee has not changed (mostly by asserting new clauses).</p></div></div><div class="odoc-spec"><div class="spec method" id="method-proof" class="anchored"><a href="#method-proof" class="anchor"></a><code><span><span class="keyword">method</span> proof : <a href="../../../Sidekick_core/Proof_trace/index.html#type-t">Sidekick_core.Proof_trace.t</a></span></code></div><div class="spec-doc"><p>TODO: remove, use Tracer instead</p></div></div></div></body></html>

View file

@ -0,0 +1,21 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Asolver (sidekick.Sidekick_abstract_solver.Asolver)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.1.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../index.html">sidekick</a> &#x00BB; <a href="../index.html">Sidekick_abstract_solver</a> &#x00BB; Asolver</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_abstract_solver.Asolver</span></code></h1><p>Abstract interface for a solver</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec module" id="module-Unknown" class="anchored"><a href="#module-Unknown" class="anchor"></a><code><span><span class="keyword">module</span> Unknown</span><span> = <a href="../Unknown/index.html">Unknown</a></span></code></div></div><div class="odoc-spec"><div class="spec module" id="module-Check_res" class="anchored"><a href="#module-Check_res" class="anchor"></a><code><span><span class="keyword">module</span> Check_res</span><span> = <a href="../Check_res/index.html">Check_res</a></span></code></div></div><div class="odoc-spec"><div class="spec class-type" id="class-type-t" class="anchored"><a href="#class-type-t" class="anchor"></a><code><span><span class="keyword">class</span> <span class="keyword">type</span> </span><span><a href="class-type-t/index.html">t</a></span><span> = <span class="keyword">object</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-assert_term" class="anchored"><a href="#val-assert_term" class="anchor"></a><code><span><span class="keyword">val</span> assert_term : <span><a href="class-type-t/index.html">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Sidekick_core/Term/index.html#type-t">Sidekick_core.Term.t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-assert_clause" class="anchored"><a href="#val-assert_clause" class="anchor"></a><code><span><span class="keyword">val</span> assert_clause :
<span><a href="class-type-t/index.html">t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> array</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../Sidekick_core/Proof_step/index.html#type-id">Sidekick_core.Proof_step.id</a> <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-assert_clause_l" class="anchored"><a href="#val-assert_clause_l" class="anchor"></a><code><span><span class="keyword">val</span> assert_clause_l :
<span><a href="class-type-t/index.html">t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../Sidekick_core/Proof_step/index.html#type-id">Sidekick_core.Proof_step.id</a> <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-add_ty" class="anchored"><a href="#val-add_ty" class="anchor"></a><code><span><span class="keyword">val</span> add_ty : <span><a href="class-type-t/index.html">t</a> <span class="arrow">&#45;&gt;</span></span> <span>ty:<a href="../../Sidekick_core/Term/index.html#type-t">Sidekick_core.Term.t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-lit_of_term" class="anchored"><a href="#val-lit_of_term" class="anchor"></a><code><span><span class="keyword">val</span> lit_of_term :
<span><a href="class-type-t/index.html">t</a> <span class="arrow">&#45;&gt;</span></span>
<span>?sign:bool <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../Sidekick_core/Term/index.html#type-t">Sidekick_core.Term.t</a> <span class="arrow">&#45;&gt;</span></span>
<a href="../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-solve" class="anchored"><a href="#val-solve" class="anchor"></a><code><span><span class="keyword">val</span> solve :
<span><a href="class-type-t/index.html">t</a> <span class="arrow">&#45;&gt;</span></span>
<span>?on_exit:<span><span>( <span>unit <span class="arrow">&#45;&gt;</span></span> unit )</span> list</span> <span class="arrow">&#45;&gt;</span></span>
<span>?on_progress:<span>( <span>unit <span class="arrow">&#45;&gt;</span></span> unit )</span> <span class="arrow">&#45;&gt;</span></span>
<span>?should_stop:<span>( <span>int <span class="arrow">&#45;&gt;</span></span> bool )</span> <span class="arrow">&#45;&gt;</span></span>
<span>assumptions:<span><a href="../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span>unit <span class="arrow">&#45;&gt;</span></span>
<a href="../Check_res/index.html#type-t">Check_res.t</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-last_res" class="anchored"><a href="#val-last_res" class="anchor"></a><code><span><span class="keyword">val</span> last_res : <span><a href="class-type-t/index.html">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../Check_res/index.html#type-t">Check_res.t</a> option</span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-proof" class="anchored"><a href="#val-proof" class="anchor"></a><code><span><span class="keyword">val</span> proof : <span><a href="class-type-t/index.html">t</a> <span class="arrow">&#45;&gt;</span></span> <a href="../../Sidekick_core/Proof_trace/index.html#type-t">Sidekick_core.Proof_trace.t</a></span></code></div></div></div></body></html>

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Check_res (sidekick.Sidekick_abstract_solver.Check_res)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.1.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../index.html">sidekick</a> &#x00BB; <a href="../index.html">Sidekick_abstract_solver</a> &#x00BB; Check_res</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_abstract_solver.Check_res</span></code></h1><p>Result of solving for the current set of clauses</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec module" id="module-Model" class="anchored"><a href="#module-Model" class="anchor"></a><code><span><span class="keyword">module</span> Model</span><span> = <a href="../../Sidekick_model/index.html">Sidekick_model</a></span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-t" class="anchored"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span><span> = </span></code><table><tr id="type-t.Sat" class="anchored"><td class="def variant constructor"><a href="#type-t.Sat" class="anchor"></a><code><span>| </span><span><span class="constructor">Sat</span> <span class="keyword">of</span> <a href="../../Sidekick_model/index.html#type-t">Model.t</a></span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p>Satisfiable</p><span class="comment-delim">*)</span></td></tr><tr id="type-t.Unsat" class="anchored"><td class="def variant constructor"><a href="#type-t.Unsat" class="anchor"></a><code><span>| </span><span><span class="constructor">Unsat</span> <span class="keyword">of</span> </span><span>{</span></code><table><tr id="type-t.unsat_core" class="anchored"><td class="def record field"><a href="#type-t.unsat_core" class="anchor"></a><code><span>unsat_core : <span>unit <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> <span class="xref-unresolved">Iter</span>.t</span>;</span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p>Unsat core (subset of assumptions), or empty</p><span class="comment-delim">*)</span></td></tr><tr id="type-t.unsat_step_id" class="anchored"><td class="def record field"><a href="#type-t.unsat_step_id" class="anchor"></a><code><span>unsat_step_id : <span>unit <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Sidekick_core/Proof_trace/index.html#type-step_id">Sidekick_core.Proof_trace.step_id</a> option</span>;</span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p>Proof step for the empty clause</p><span class="comment-delim">*)</span></td></tr></table><code><span>}</span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p>Unsatisfiable</p><span class="comment-delim">*)</span></td></tr><tr id="type-t.Unknown" class="anchored"><td class="def variant constructor"><a href="#type-t.Unknown" class="anchor"></a><code><span>| </span><span><span class="constructor">Unknown</span> <span class="keyword">of</span> <a href="../Unknown/index.html#type-t">Unknown.t</a></span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p>Unknown, obtained after a timeout, memory limit, etc.</p><span class="comment-delim">*)</span></td></tr></table></div><div class="spec-doc"><p>Result of calling &quot;check&quot;</p></div></div><div class="odoc-spec"><div class="spec value" id="val-pp" class="anchored"><a href="#val-pp" class="anchor"></a><code><span><span class="keyword">val</span> pp : <span><span class="xref-unresolved">Sidekick_core</span>.Fmt.t <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div></div></body></html>

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Unknown (sidekick.Sidekick_abstract_solver.Unknown)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.1.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../index.html">sidekick</a> &#x00BB; <a href="../index.html">Sidekick_abstract_solver</a> &#x00BB; Unknown</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_abstract_solver.Unknown</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type" id="type-t" class="anchored"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span><span> = </span></code><table><tr id="type-t.U_timeout" class="anchored"><td class="def variant constructor"><a href="#type-t.U_timeout" class="anchor"></a><code><span>| </span><span><span class="constructor">U_timeout</span></span></code></td></tr><tr id="type-t.U_max_depth" class="anchored"><td class="def variant constructor"><a href="#type-t.U_max_depth" class="anchor"></a><code><span>| </span><span><span class="constructor">U_max_depth</span></span></code></td></tr><tr id="type-t.U_incomplete" class="anchored"><td class="def variant constructor"><a href="#type-t.U_incomplete" class="anchor"></a><code><span>| </span><span><span class="constructor">U_incomplete</span></span></code></td></tr><tr id="type-t.U_asked_to_stop" class="anchored"><td class="def variant constructor"><a href="#type-t.U_asked_to_stop" class="anchor"></a><code><span>| </span><span><span class="constructor">U_asked_to_stop</span></span></code></td></tr></table></div></div><div class="odoc-spec"><div class="spec value" id="val-pp" class="anchored"><a href="#val-pp" class="anchor"></a><code><span><span class="keyword">val</span> pp : <span><a href="#type-t">t</a> <span class="xref-unresolved">Sidekick_core</span>.Fmt.printer</span></span></code></div></div></div></body></html>

View file

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>t (sidekick.Sidekick_abstract_solver.t)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.1.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../index.html">sidekick</a> &#x00BB; <a href="../index.html">Sidekick_abstract_solver</a> &#x00BB; t</nav><header class="odoc-preamble"><h1>Class type <code><span>Sidekick_abstract_solver.t</span></code></h1><p>Main abstract solver type</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec method" id="method-assert_term" class="anchored"><a href="#method-assert_term" class="anchor"></a><code><span><span class="keyword">method</span> assert_term : <span><a href="../../Sidekick_core/Term/index.html#type-t">Sidekick_core.Term.t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Helper that turns the term into an atom, before adding the result to the solver as a unit clause assertion.</p><p>This uses <code>Proof_sat</code>.sat_input_clause to justify the assertion.</p></div></div><div class="odoc-spec"><div class="spec method" id="method-assert_clause" class="anchored"><a href="#method-assert_clause" class="anchor"></a><code><span><span class="keyword">method</span> assert_clause : <span><span><a href="../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> array</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../Sidekick_core/Proof_step/index.html#type-id">Sidekick_core.Proof_step.id</a> <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div><div class="spec-doc"><p><code>add_clause solver cs</code> adds a boolean clause to the solver. Subsequent calls to <code>solve</code> will need to satisfy this clause.</p></div></div><div class="odoc-spec"><div class="spec method" id="method-assert_clause_l" class="anchored"><a href="#method-assert_clause_l" class="anchor"></a><code><span><span class="keyword">method</span> assert_clause_l : <span><span><a href="../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../Sidekick_core/Proof_step/index.html#type-id">Sidekick_core.Proof_step.id</a> <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div><div class="spec-doc"><p>Add a clause to the solver, given as a list.</p></div></div><div class="odoc-spec"><div class="spec method" id="method-add_ty" class="anchored"><a href="#method-add_ty" class="anchor"></a><code><span><span class="keyword">method</span> add_ty : <span>ty:<a href="../../Sidekick_core/Term/index.html#type-t">Sidekick_core.Term.t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Add a new sort/atomic type.</p></div></div><div class="odoc-spec"><div class="spec method" id="method-lit_of_term" class="anchored"><a href="#method-lit_of_term" class="anchor"></a><code><span><span class="keyword">method</span> lit_of_term : <span>?sign:bool <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Sidekick_core/Term/index.html#type-t">Sidekick_core.Term.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a></span></code></div><div class="spec-doc"><p>Convert a term into a simplified literal.</p></div></div><div class="odoc-spec"><div class="spec method" id="method-solve" class="anchored"><a href="#method-solve" class="anchor"></a><code><span><span class="keyword">method</span> solve : <span>?on_exit:<span><span>( <span>unit <span class="arrow">&#45;&gt;</span></span> unit )</span> list</span> <span class="arrow">&#45;&gt;</span></span>
<span>?on_progress:<span>( <span>unit <span class="arrow">&#45;&gt;</span></span> unit )</span> <span class="arrow">&#45;&gt;</span></span>
<span>?should_stop:<span>( <span>int <span class="arrow">&#45;&gt;</span></span> bool )</span> <span class="arrow">&#45;&gt;</span></span>
<span>assumptions:<span><a href="../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span>unit <span class="arrow">&#45;&gt;</span></span>
<a href="../Asolver/Check_res/index.html#type-t">Asolver.Check_res.t</a></span></code></div><div class="spec-doc"><p>Checks the satisfiability of the clauses added so far to the solver.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">assumptions</span> <p>a set of atoms held to be true. The unsat core, if any, will be a subset of <code>assumptions</code>.</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">on_progress</span> <p>called regularly during solving.</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">should_stop</span> <p>a callback regularly called from within the solver. It is given a number of &quot;steps&quot; done since last call. The exact notion of step is not defined, but is guaranteed to increase regularly. The function should return <code>true</code> if it judges solving must stop (returning <code>Unknown</code>), <code>false</code> if solving can proceed.</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">on_exit</span> <p>functions to be run before this returns</p></li></ul></div></div><div class="odoc-spec"><div class="spec method" id="method-last_res" class="anchored"><a href="#method-last_res" class="anchor"></a><code><span><span class="keyword">method</span> last_res : <span><a href="../Asolver/Check_res/index.html#type-t">Asolver.Check_res.t</a> option</span></span></code></div><div class="spec-doc"><p>Returns the result of the last call to <code>solve</code>, if the logic statee has not changed (mostly by asserting new clauses).</p></div></div><div class="odoc-spec"><div class="spec method" id="method-proof" class="anchored"><a href="#method-proof" class="anchor"></a><code><span><span class="keyword">method</span> proof : <a href="../../Sidekick_core/Proof_trace/index.html#type-t">Sidekick_core.Proof_trace.t</a></span></code></div><div class="spec-doc"><p>TODO: remove, use Tracer instead</p></div></div></div></body></html>

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sidekick_abstract_solver (sidekick.Sidekick_abstract_solver)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.1.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../index.html">sidekick</a> &#x00BB; Sidekick_abstract_solver</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_abstract_solver</span></code></h1><p>Abstract interface for a solver</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec module" id="module-Unknown" class="anchored"><a href="#module-Unknown" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Unknown/index.html">Unknown</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec module" id="module-Check_res" class="anchored"><a href="#module-Check_res" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Check_res/index.html">Check_res</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Result of solving for the current set of clauses</p></div></div><div class="odoc-spec"><div class="spec module" id="module-Asolver" class="anchored"><a href="#module-Asolver" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Asolver/index.html">Asolver</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Abstract interface for a solver</p></div></div><div class="odoc-spec"><div class="spec class-type" id="class-type-t" class="anchored"><a href="#class-type-t" class="anchor"></a><code><span><span class="keyword">class</span> <span class="keyword">type</span> </span><span><a href="class-type-t/index.html">t</a></span><span> = <a href="Asolver/class-type-t/index.html">Asolver.t</a></span></code></div><div class="spec-doc"><p>Main abstract solver type</p></div></div></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Unknown (sidekick.Sidekick_smt_solver.Solver.Unknown)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.1.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../../index.html">sidekick</a> &#x00BB; <a href="../../index.html">Sidekick_smt_solver</a> &#x00BB; <a href="../index.html">Solver</a> &#x00BB; Unknown</nav><header class="odoc-preamble"><h1>Module <code><span>Solver.Unknown</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type" id="type-t" class="anchored"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-pp" class="anchored"><a href="#val-pp" class="anchor"></a><code><span><span class="keyword">val</span> pp : <span><a href="#type-t">t</a> <span class="xref-unresolved">CCFormat</span>.printer</span></span></code></div></div></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