mirror of
https://github.com/c-cube/sidekick.git
synced 2025-12-08 12:15:48 -05:00
5 lines
No EOL
16 KiB
HTML
5 lines
No EOL
16 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Solver (sidekick-base.Sidekick_base_solver.Solver)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.0.2"/><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> » <a href="../index.html">Sidekick_base_solver</a> » Solver</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_base_solver.Solver</span></code></h1><p>SMT solver, obtained from <a href="../../../sidekick/Sidekick_smt_solver/index.html"><code>Sidekick_smt_solver</code></a></p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec module" id="module-T" class="anchored"><a href="#module-T" class="anchor"></a><code><span><span class="keyword">module</span> </span><span><a href="T/index.html">T</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-Lit" class="anchored"><a href="#module-Lit" class="anchor"></a><code><span><span class="keyword">module</span> </span><span><a href="Lit/index.html">Lit</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-proof" class="anchored"><a href="#type-proof" class="anchor"></a><code><span><span class="keyword">type</span> proof</span><span> = <a href="../Solver_arg/index.html#type-proof">Solver_arg.proof</a></span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-proof_step" class="anchored"><a href="#type-proof_step" class="anchor"></a><code><span><span class="keyword">type</span> proof_step</span><span> = <a href="../Solver_arg/index.html#type-proof_step">Solver_arg.proof_step</a></span></code></div></div><div class="odoc-spec"><div class="spec module" id="module-P" class="anchored"><a href="#module-P" class="anchor"></a><code><span><span class="keyword">module</span> </span><span><a href="P/index.html">P</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_internal" class="anchored"><a href="#module-Solver_internal" class="anchor"></a><code><span><span class="keyword">module</span> </span><span><a href="Solver_internal/index.html">Solver_internal</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</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><span> = <a href="../../../sidekick/Sidekick_smt_solver/Make/index.html#type-t">Sidekick_smt_solver.Make(Solver_arg).t</a></span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-solver" class="anchored"><a href="#type-solver" class="anchor"></a><code><span><span class="keyword">type</span> solver</span><span> = <a href="#type-t">t</a></span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-term" class="anchored"><a href="#type-term" class="anchor"></a><code><span><span class="keyword">type</span> term</span><span> = <a href="T/Term/index.html#type-t">T.Term.t</a></span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-ty" class="anchored"><a href="#type-ty" class="anchor"></a><code><span><span class="keyword">type</span> ty</span><span> = <a href="T/Ty/index.html#type-t">T.Ty.t</a></span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-lit" class="anchored"><a href="#type-lit" class="anchor"></a><code><span><span class="keyword">type</span> lit</span><span> = <a href="Lit/index.html#type-t">Lit.t</a></span></code></div></div><div class="odoc-spec"><div class="spec module-type" id="module-type-THEORY" class="anchored"><a href="#module-type-THEORY" class="anchor"></a><code><span><span class="keyword">module</span> <span class="keyword">type</span> </span><span><a href="module-type-THEORY/index.html">THEORY</a></span><span> = <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-theory" class="anchored"><a href="#type-theory" class="anchor"></a><code><span><span class="keyword">type</span> theory</span><span> = <span>(<span class="keyword">module</span> <a href="module-type-THEORY/index.html">THEORY</a>)</span></span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-theory_p" class="anchored"><a href="#type-theory_p" class="anchor"></a><code><span><span class="keyword">type</span> <span>!'a theory_p</span></span><span> = <span>(<span class="keyword">module</span> <a href="module-type-THEORY/index.html">THEORY</a> <span class="keyword">with</span> <span class="keyword">type</span> <a href="module-type-THEORY/index.html#type-t">t</a> = <span class="type-var">'a</span>)</span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-mk_theory" class="anchored"><a href="#val-mk_theory" class="anchor"></a><code><span><span class="keyword">val</span> mk_theory : <span>name:string <span class="arrow">-></span></span> <span>create_and_setup:<span>(<span><a href="Solver_internal/index.html#type-t">Solver_internal.t</a> <span class="arrow">-></span></span> <span class="type-var">'th</span>)</span> <span class="arrow">-></span></span>
|
||
<span>?push_level:<span>(<span><span class="type-var">'th</span> <span class="arrow">-></span></span> unit)</span> <span class="arrow">-></span></span> <span>?pop_levels:<span>(<span><span class="type-var">'th</span> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> unit)</span> <span class="arrow">-></span></span> <span>unit <span class="arrow">-></span></span> <a href="#type-theory">theory</a></span></code></div></div><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> </span><span><a href="Model/index.html">Model</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-Unknown" class="anchored"><a href="#module-Unknown" class="anchor"></a><code><span><span class="keyword">module</span> </span><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 value" id="val-stats" class="anchored"><a href="#val-stats" class="anchor"></a><code><span><span class="keyword">val</span> stats : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <a href="../../../sidekick/Sidekick_util/Stat/index.html#type-t">Sidekick_util.Stat.t</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-tst" class="anchored"><a href="#val-tst" class="anchor"></a><code><span><span class="keyword">val</span> tst : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <a href="T/Term/index.html#type-store">T.Term.store</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-ty_st" class="anchored"><a href="#val-ty_st" class="anchor"></a><code><span><span class="keyword">val</span> ty_st : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <a href="T/Ty/index.html#type-store">T.Ty.store</a></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="#type-t">t</a> <span class="arrow">-></span></span> <a href="#type-proof">proof</a></span></code></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>?stat:<a href="../../../sidekick/Sidekick_util/Stat/index.html#type-t">Sidekick_util.Stat.t</a> <span class="arrow">-></span></span> <span>?size:<span>[ `Big <span>| `Small</span> <span>| `Tiny</span> ]</span> <span class="arrow">-></span></span> <span>proof:<a href="#type-proof">proof</a> <span class="arrow">-></span></span> <span>theories:<span><a href="#type-theory">theory</a> list</span> <span class="arrow">-></span></span>
|
||
<span><a href="T/Term/index.html#type-store">T.Term.store</a> <span class="arrow">-></span></span> <span><a href="T/Ty/index.html#type-store">T.Ty.store</a> <span class="arrow">-></span></span> <span>unit <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-add_theory" class="anchored"><a href="#val-add_theory" class="anchor"></a><code><span><span class="keyword">val</span> add_theory : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-theory">theory</a> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-add_theory_p" class="anchored"><a href="#val-add_theory_p" class="anchor"></a><code><span><span class="keyword">val</span> add_theory_p : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="#type-theory_p">theory_p</a></span> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-add_theory_l" class="anchored"><a href="#val-add_theory_l" class="anchor"></a><code><span><span class="keyword">val</span> add_theory_l : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><span><a href="#type-theory">theory</a> list</span> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-mk_lit_t" class="anchored"><a href="#val-mk_lit_t" class="anchor"></a><code><span><span class="keyword">val</span> mk_lit_t : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>?sign:bool <span class="arrow">-></span></span> <span><a href="#type-term">term</a> <span class="arrow">-></span></span> <a href="#type-lit">lit</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-add_clause" class="anchored"><a href="#val-add_clause" class="anchor"></a><code><span><span class="keyword">val</span> add_clause : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><span><a href="#type-lit">lit</a> <a href="../../../sidekick/Sidekick_util/IArray/index.html#type-t">Sidekick_util.IArray.t</a></span> <span class="arrow">-></span></span> <span><a href="#type-proof_step">proof_step</a> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-add_clause_l" class="anchored"><a href="#val-add_clause_l" class="anchor"></a><code><span><span class="keyword">val</span> add_clause_l : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><span><a href="#type-lit">lit</a> list</span> <span class="arrow">-></span></span> <span><a href="#type-proof_step">proof_step</a> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-assert_terms" class="anchored"><a href="#val-assert_terms" class="anchor"></a><code><span><span class="keyword">val</span> assert_terms : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><span><a href="#type-term">term</a> list</span> <span class="arrow">-></span></span> unit</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="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-term">term</a> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-res" class="anchored"><a href="#type-res" class="anchor"></a><code><span><span class="keyword">type</span> res</span><span> = <a href="../../../sidekick/Sidekick_smt_solver/Make/index.html#type-res">Sidekick_smt_solver.Make(Solver_arg).res</a></span><span> = </span></code><table><tr id="type-res.Sat" class="anchored"><td class="def variant constructor"><a href="#type-res.Sat" class="anchor"></a><code><span>| </span><span><span class="constructor">Sat</span> <span class="keyword">of</span> <a href="Model/index.html#type-t">Model.t</a></span></code></td></tr><tr id="type-res.Unsat" class="anchored"><td class="def variant constructor"><a href="#type-res.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-res.unsat_core" class="anchored"><td class="def record field"><a href="#type-res.unsat_core" class="anchor"></a><code><span>unsat_core : <span>unit <span class="arrow">-></span></span> <span><a href="#type-lit">lit</a> <span class="xref-unresolved">Iter</span>.t</span>;</span></code></td></tr><tr id="type-res.unsat_proof_step" class="anchored"><td class="def record field"><a href="#type-res.unsat_proof_step" class="anchor"></a><code><span>unsat_proof_step : <span>unit <span class="arrow">-></span></span> <span><a href="#type-proof_step">proof_step</a> option</span>;</span></code></td></tr></table><code><span>}</span></code></td></tr><tr id="type-res.Unknown" class="anchored"><td class="def variant constructor"><a href="#type-res.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></tr></table></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>?on_exit:<span><span>(<span>unit <span class="arrow">-></span></span> unit)</span> list</span> <span class="arrow">-></span></span> <span>?check:bool <span class="arrow">-></span></span> <span>?on_progress:<span>(<span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit)</span> <span class="arrow">-></span></span>
|
||
<span>?should_stop:<span>(<span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> bool)</span> <span class="arrow">-></span></span> <span>assumptions:<span><a href="#type-lit">lit</a> list</span> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <a href="#type-res">res</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-pp_stats" class="anchored"><a href="#val-pp_stats" class="anchor"></a><code><span><span class="keyword">val</span> pp_stats : <span><a href="#type-t">t</a> <span class="xref-unresolved">CCFormat</span>.printer</span></span></code></div></div></div></body></html> |