This commit is contained in:
c-cube 2022-10-15 00:44:25 +00:00
parent e9a698b686
commit 55042ab1cb
117 changed files with 214 additions and 270 deletions

View file

@ -8,12 +8,11 @@
<span>?push_level:<span>( <span><span class="type-var">'th</span> <span class="arrow">&#45;&gt;</span></span> unit )</span> <span class="arrow">&#45;&gt;</span></span>
<span>?pop_levels:<span>( <span><span class="type-var">'th</span> <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> unit )</span> <span class="arrow">&#45;&gt;</span></span>
<span>unit <span class="arrow">&#45;&gt;</span></span>
<a href="../../../sidekick/Sidekick_smt_solver/Theory/index.html#type-t">Sidekick_smt_solver.Theory.t</a></span></code></div><div class="spec-doc"><p>Helper to create a theory.</p></div></div><h4 id="main-api"><a href="#main-api" class="anchor"></a>Main API</h4><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">&#45;&gt;</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">&#45;&gt;</span></span> <a href="../../../sidekick/Sidekick_core/Term/index.html#type-store">Sidekick_smt_solver.Sigs.Term.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">&#45;&gt;</span></span> <a href="../../../sidekick/Sidekick_smt_solver/Sigs/index.html#type-proof_trace">Sidekick_smt_solver.Sigs.proof_trace</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 :
<a href="../../../sidekick/Sidekick_smt_solver/Theory/index.html#type-t">Sidekick_smt_solver.Theory.t</a></span></code></div><div class="spec-doc"><p>Helper to create a theory.</p></div></div><h4 id="main-api"><a href="#main-api" class="anchor"></a>Main API</h4><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">&#45;&gt;</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">&#45;&gt;</span></span> <a href="../../../sidekick/Sidekick_core/Term/index.html#type-store">Sidekick_smt_solver.Sigs.Term.store</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-tracer" class="anchored"><a href="#val-tracer" class="anchor"></a><code><span><span class="keyword">val</span> tracer : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <a href="../../../sidekick/Sidekick_smt_solver/Tracer/class-type-t/index.html">Sidekick_smt_solver.Tracer.t</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><span>(<span class="keyword">module</span> <a href="../../../sidekick/Sidekick_smt_solver/Sigs/module-type-ARG/index.html">Sidekick_smt_solver.Sigs.ARG</a>)</span> <span class="arrow">&#45;&gt;</span></span>
<span>?stat:<a href="../../../sidekick/Sidekick_util/Stat/index.html#type-t">Sidekick_util.Stat.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>?size:<span>[ `Big <span>| `Tiny</span> <span>| `Small</span> ]</span> <span class="arrow">&#45;&gt;</span></span>
<span>?tracer:<a href="../../../sidekick/Sidekick_smt_solver/Tracer/class-type-t/index.html">Sidekick_smt_solver.Tracer.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>proof:<a href="../../../sidekick/Sidekick_smt_solver/Sigs/index.html#type-proof_trace">Sidekick_smt_solver.Sigs.proof_trace</a> <span class="arrow">&#45;&gt;</span></span>
<span>tracer:<a href="../../../sidekick/Sidekick_smt_solver/Tracer/class-type-t/index.html">Sidekick_smt_solver.Tracer.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>theories:<span><a href="../../../sidekick/Sidekick_smt_solver/Theory/index.html#type-t">Sidekick_smt_solver.Theory.t</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../sidekick/Sidekick_core/Term/index.html#type-store">Sidekick_smt_solver.Sigs.Term.store</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <span class="arrow">&#45;&gt;</span></span>
@ -24,12 +23,12 @@
<a href="../../../sidekick/Sidekick_smt_solver/Sigs/index.html#type-lit">Sidekick_smt_solver.Sigs.lit</a></span></code></div><div class="spec-doc"><p><code>mk_lit_t _ ~sign t</code> returns <code>lit'</code>, where <code>lit'</code> is <code>preprocess(lit)</code> and <code>lit</code> is an internal representation of <code>± t</code>.</p><p>The proof of <code>|- lit = lit'</code> is directly added to the solver's proof.</p></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">&#45;&gt;</span></span>
<span><span><a href="../../../sidekick/Sidekick_smt_solver/Sigs/index.html#type-lit">Sidekick_smt_solver.Sigs.lit</a> array</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../sidekick/Sidekick_smt_solver/Sigs/index.html#type-step_id">Sidekick_smt_solver.Sigs.step_id</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../sidekick/Sidekick_proof/Pterm/index.html#type-delayed">Sidekick_smt_solver.Sigs.Proof.Pterm.delayed</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 <a href="#val-solve"><code>solve</code></a> will need to satisfy this clause.</p></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">&#45;&gt;</span></span>
<span><span><a href="../../../sidekick/Sidekick_smt_solver/Sigs/index.html#type-lit">Sidekick_smt_solver.Sigs.lit</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../sidekick/Sidekick_smt_solver/Sigs/index.html#type-step_id">Sidekick_smt_solver.Sigs.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 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">&#45;&gt;</span></span> <span><span><a href="../../../sidekick/Sidekick_smt_solver/Sigs/index.html#type-term">Sidekick_smt_solver.Sigs.term</a> list</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Helper that turns each term into an atom, before adding disjunction of the resulting atoms to the solver as a clause assertion</p></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">&#45;&gt;</span></span> <span><a href="../../../sidekick/Sidekick_smt_solver/Sigs/index.html#type-term">Sidekick_smt_solver.Sigs.term</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></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="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../../../sidekick/Sidekick_smt_solver/Sigs/index.html#type-ty">Sidekick_smt_solver.Sigs.ty</a> <span class="arrow">&#45;&gt;</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_abstract_solver/Check_res/index.html#type-t">Check_res.t</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="../../../sidekick/Sidekick_model/index.html#type-t">Sidekick_smt_solver.Sigs.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-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">&#45;&gt;</span></span> <span><a href="../../../sidekick/Sidekick_smt_solver/Sigs/index.html#type-lit">Sidekick_smt_solver.Sigs.lit</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-res.unsat_step_id" class="anchored"><td class="def record field"><a href="#type-res.unsat_step_id" class="anchor"></a><code><span>unsat_step_id : <span>unit <span class="arrow">&#45;&gt;</span></span> <span><a href="../../../sidekick/Sidekick_smt_solver/Sigs/index.html#type-step_id">Sidekick_smt_solver.Sigs.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-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="../../../sidekick/Sidekick_abstract_solver/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 solving for the current set of clauses</p></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="../../../sidekick/Sidekick_proof/Pterm/index.html#type-delayed">Sidekick_smt_solver.Sigs.Proof.Pterm.delayed</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 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">&#45;&gt;</span></span> <span><span><a href="../../../sidekick/Sidekick_smt_solver/Sigs/index.html#type-term">Sidekick_smt_solver.Sigs.term</a> list</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Helper that turns each term into an atom, before adding disjunction of the resulting atoms to the solver as a clause assertion</p></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">&#45;&gt;</span></span> <span><a href="../../../sidekick/Sidekick_smt_solver/Sigs/index.html#type-term">Sidekick_smt_solver.Sigs.term</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></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="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../../../sidekick/Sidekick_smt_solver/Sigs/index.html#type-ty">Sidekick_smt_solver.Sigs.ty</a> <span class="arrow">&#45;&gt;</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_abstract_solver/Check_res/index.html#type-t">Check_res.t</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="../../../sidekick/Sidekick_model/index.html#type-t">Sidekick_smt_solver.Sigs.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-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">&#45;&gt;</span></span> <span><a href="../../../sidekick/Sidekick_smt_solver/Sigs/index.html#type-lit">Sidekick_smt_solver.Sigs.lit</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-res.unsat_proof" class="anchored"><td class="def record field"><a href="#type-res.unsat_proof" class="anchor"></a><code><span>unsat_proof : <span>unit <span class="arrow">&#45;&gt;</span></span> <span><a href="../../../sidekick/Sidekick_smt_solver/Sigs/index.html#type-step_id">Sidekick_smt_solver.Sigs.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-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="../../../sidekick/Sidekick_abstract_solver/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 solving for the current set of clauses</p></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">&#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>
@ -41,8 +40,7 @@
<a href="#type-propagation_result">propagation_result</a></span></code></div><div class="spec-doc"><p><code>check_sat_propagations_only solver</code> uses assumptions (including the <code>assumptions</code> parameter, and atoms previously added via <code>push_assumptions</code>) and boolean+theory propagation to quickly assess satisfiability. It is not complete; calling <a href="#val-solve"><code>solve</code></a> is required to get an accurate result.</p><ul class="at-tags"><li class="returns"><span class="at-tag">returns</span> <p>one of:</p><ul><li><code>PR_sat</code> if the current state seems satisfiable</li><li><code>PR_conflict {backtracked=n}</code> if a conflict was found and resolved, leading to backtracking <code>n</code> levels of assumptions</li><li><code>PR_unsat …</code> if the assumptions were found to be unsatisfiable, with the given core.</li></ul></li></ul></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 class="spec-doc"><p>Print some statistics. What it prints exactly is unspecified.</p></div></div></details></div><div class="odoc-spec"><div class="spec value" id="val-default_arg" class="anchored"><a href="#val-default_arg" class="anchor"></a><code><span><span class="keyword">val</span> default_arg : <span>(<span class="keyword">module</span> <a href="../../../sidekick/Sidekick_smt_solver/Sigs/module-type-ARG/index.html">Sidekick_smt_solver.Sigs.ARG</a>)</span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-create_default" class="anchored"><a href="#val-create_default" class="anchor"></a><code><span><span class="keyword">val</span> create_default :
<span>?stat:<a href="../../../sidekick/Sidekick_util/Stat/index.html#type-t">Sidekick_util.Stat.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>?size:<span>[ `Big <span>| `Small</span> <span>| `Tiny</span> ]</span> <span class="arrow">&#45;&gt;</span></span>
<span>?tracer:<a href="../../../sidekick/Sidekick_smt_solver/Tracer/class-type-t/index.html">Sidekick_smt_solver.Tracer.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>proof:<a href="../../../sidekick/Sidekick_smt_solver/Sigs/index.html#type-proof_trace">Sidekick_smt_solver.Sigs.proof_trace</a> <span class="arrow">&#45;&gt;</span></span>
<span>tracer:<a href="../../../sidekick/Sidekick_smt_solver/Tracer/class-type-t/index.html">Sidekick_smt_solver.Tracer.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>theories:<span><a href="../../../sidekick/Sidekick_smt_solver/Theory/index.html#type-t">Sidekick_smt_solver.Theory.t</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../sidekick/Sidekick_core/Term/index.html#type-store">Sidekick_smt_solver.Sigs.Term.store</a> <span class="arrow">&#45;&gt;</span></span>
<a href="#type-t">t</a></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

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

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

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>INPUT (sidekick-base.Sidekick_base_proof_trace.Proof_ser.Bare.INPUT)</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_proof_trace</a> &#x00BB; <a href="../../index.html">Proof_ser</a> &#x00BB; <a href="../index.html">Bare</a> &#x00BB; INPUT</nav><header class="odoc-preamble"><h1>Module type <code><span>Bare.INPUT</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value" id="val-read_byte" class="anchored"><a href="#val-read_byte" class="anchor"></a><code><span><span class="keyword">val</span> read_byte : <span>unit <span class="arrow">&#45;&gt;</span></span> char</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-read_i16" class="anchored"><a href="#val-read_i16" class="anchor"></a><code><span><span class="keyword">val</span> read_i16 : <span>unit <span class="arrow">&#45;&gt;</span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-read_i32" class="anchored"><a href="#val-read_i32" class="anchor"></a><code><span><span class="keyword">val</span> read_i32 : <span>unit <span class="arrow">&#45;&gt;</span></span> int32</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-read_i64" class="anchored"><a href="#val-read_i64" class="anchor"></a><code><span><span class="keyword">val</span> read_i64 : <span>unit <span class="arrow">&#45;&gt;</span></span> int64</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-read_exact" class="anchored"><a href="#val-read_exact" class="anchor"></a><code><span><span class="keyword">val</span> read_exact : <span>bytes <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> unit</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>OUTPUT (sidekick-base.Sidekick_base_proof_trace.Proof_ser.Bare.OUTPUT)</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_proof_trace</a> &#x00BB; <a href="../../index.html">Proof_ser</a> &#x00BB; <a href="../index.html">Bare</a> &#x00BB; OUTPUT</nav><header class="odoc-preamble"><h1>Module type <code><span>Bare.OUTPUT</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value" id="val-write_byte" class="anchored"><a href="#val-write_byte" class="anchor"></a><code><span><span class="keyword">val</span> write_byte : <span>char <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-write_i16" class="anchored"><a href="#val-write_i16" class="anchor"></a><code><span><span class="keyword">val</span> write_i16 : <span>int <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-write_i32" class="anchored"><a href="#val-write_i32" class="anchor"></a><code><span><span class="keyword">val</span> write_i32 : <span>int32 <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-write_i64" class="anchored"><a href="#val-write_i64" class="anchor"></a><code><span><span class="keyword">val</span> write_i64 : <span>int64 <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-write_exact" class="anchored"><a href="#val-write_exact" class="anchor"></a><code><span><span class="keyword">val</span> write_exact : <span>bytes <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-flush" class="anchored"><a href="#val-flush" class="anchor"></a><code><span><span class="keyword">val</span> flush : <span>unit <span class="arrow">&#45;&gt;</span></span> unit</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>Clause (sidekick-base.Sidekick_base_proof_trace.Proof_ser.Clause)</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_proof_trace</a> &#x00BB; <a href="../index.html">Proof_ser</a> &#x00BB; Clause</nav><header class="odoc-preamble"><h1>Module <code><span>Proof_ser.Clause</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><span>{</span></code><table><tr id="type-t.lits" class="anchored"><td class="def record field"><a href="#type-t.lits" class="anchor"></a><code><span>lits : <span><a href="../Lit/index.html#type-t">Lit.t</a> array</span>;</span></code></td></tr></table><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="../Bare/Decode/index.html#type-t">Bare.Decode.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>in case of error.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-encode" class="anchored"><a href="#val-encode" class="anchor"></a><code><span><span class="keyword">val</span> encode : <span><a href="../Bare/Encode/index.html#type-t">Bare.Encode.t</a> <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 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">Stdlib</span>.Format.formatter <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

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Expr_app (sidekick-base.Sidekick_base_proof_trace.Proof_ser.Expr_app)</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_proof_trace</a> &#x00BB; <a href="../index.html">Proof_ser</a> &#x00BB; Expr_app</nav><header class="odoc-preamble"><h1>Module <code><span>Proof_ser.Expr_app</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><span>{</span></code><table><tr id="type-t.f" class="anchored"><td class="def record field"><a href="#type-t.f" class="anchor"></a><code><span>f : <a href="../ID/index.html#type-t">ID.t</a>;</span></code></td></tr><tr id="type-t.args" class="anchored"><td class="def record field"><a href="#type-t.args" class="anchor"></a><code><span>args : <span><a href="../ID/index.html#type-t">ID.t</a> array</span>;</span></code></td></tr></table><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="../Bare/Decode/index.html#type-t">Bare.Decode.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>in case of error.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-encode" class="anchored"><a href="#val-encode" class="anchor"></a><code><span><span class="keyword">val</span> encode : <span><a href="../Bare/Encode/index.html#type-t">Bare.Encode.t</a> <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 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">Stdlib</span>.Format.formatter <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

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Expr_bool (sidekick-base.Sidekick_base_proof_trace.Proof_ser.Expr_bool)</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_proof_trace</a> &#x00BB; <a href="../index.html">Proof_ser</a> &#x00BB; Expr_bool</nav><header class="odoc-preamble"><h1>Module <code><span>Proof_ser.Expr_bool</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><span>{</span></code><table><tr id="type-t.b" class="anchored"><td class="def record field"><a href="#type-t.b" class="anchor"></a><code><span>b : bool;</span></code></td></tr></table><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="../Bare/Decode/index.html#type-t">Bare.Decode.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>in case of error.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-encode" class="anchored"><a href="#val-encode" class="anchor"></a><code><span><span class="keyword">val</span> encode : <span><a href="../Bare/Encode/index.html#type-t">Bare.Encode.t</a> <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 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">Stdlib</span>.Format.formatter <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

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Expr_def (sidekick-base.Sidekick_base_proof_trace.Proof_ser.Expr_def)</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_proof_trace</a> &#x00BB; <a href="../index.html">Proof_ser</a> &#x00BB; Expr_def</nav><header class="odoc-preamble"><h1>Module <code><span>Proof_ser.Expr_def</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><span>{</span></code><table><tr id="type-t.c" class="anchored"><td class="def record field"><a href="#type-t.c" class="anchor"></a><code><span>c : <a href="../ID/index.html#type-t">ID.t</a>;</span></code></td></tr><tr id="type-t.rhs" class="anchored"><td class="def record field"><a href="#type-t.rhs" class="anchor"></a><code><span>rhs : <a href="../ID/index.html#type-t">ID.t</a>;</span></code></td></tr></table><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="../Bare/Decode/index.html#type-t">Bare.Decode.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>in case of error.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-encode" class="anchored"><a href="#val-encode" class="anchor"></a><code><span><span class="keyword">val</span> encode : <span><a href="../Bare/Encode/index.html#type-t">Bare.Encode.t</a> <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 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">Stdlib</span>.Format.formatter <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

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Expr_eq (sidekick-base.Sidekick_base_proof_trace.Proof_ser.Expr_eq)</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_proof_trace</a> &#x00BB; <a href="../index.html">Proof_ser</a> &#x00BB; Expr_eq</nav><header class="odoc-preamble"><h1>Module <code><span>Proof_ser.Expr_eq</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><span>{</span></code><table><tr id="type-t.lhs" class="anchored"><td class="def record field"><a href="#type-t.lhs" class="anchor"></a><code><span>lhs : <a href="../ID/index.html#type-t">ID.t</a>;</span></code></td></tr><tr id="type-t.rhs" class="anchored"><td class="def record field"><a href="#type-t.rhs" class="anchor"></a><code><span>rhs : <a href="../ID/index.html#type-t">ID.t</a>;</span></code></td></tr></table><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="../Bare/Decode/index.html#type-t">Bare.Decode.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>in case of error.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-encode" class="anchored"><a href="#val-encode" class="anchor"></a><code><span><span class="keyword">val</span> encode : <span><a href="../Bare/Encode/index.html#type-t">Bare.Encode.t</a> <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 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">Stdlib</span>.Format.formatter <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

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Expr_if (sidekick-base.Sidekick_base_proof_trace.Proof_ser.Expr_if)</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_proof_trace</a> &#x00BB; <a href="../index.html">Proof_ser</a> &#x00BB; Expr_if</nav><header class="odoc-preamble"><h1>Module <code><span>Proof_ser.Expr_if</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><span>{</span></code><table><tr id="type-t.cond" class="anchored"><td class="def record field"><a href="#type-t.cond" class="anchor"></a><code><span>cond : <a href="../ID/index.html#type-t">ID.t</a>;</span></code></td></tr><tr id="type-t.then_" class="anchored"><td class="def record field"><a href="#type-t.then_" class="anchor"></a><code><span>then_ : <a href="../ID/index.html#type-t">ID.t</a>;</span></code></td></tr><tr id="type-t.else_" class="anchored"><td class="def record field"><a href="#type-t.else_" class="anchor"></a><code><span>else_ : <a href="../ID/index.html#type-t">ID.t</a>;</span></code></td></tr></table><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="../Bare/Decode/index.html#type-t">Bare.Decode.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>in case of error.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-encode" class="anchored"><a href="#val-encode" class="anchor"></a><code><span><span class="keyword">val</span> encode : <span><a href="../Bare/Encode/index.html#type-t">Bare.Encode.t</a> <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 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">Stdlib</span>.Format.formatter <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

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Expr_isa (sidekick-base.Sidekick_base_proof_trace.Proof_ser.Expr_isa)</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_proof_trace</a> &#x00BB; <a href="../index.html">Proof_ser</a> &#x00BB; Expr_isa</nav><header class="odoc-preamble"><h1>Module <code><span>Proof_ser.Expr_isa</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><span>{</span></code><table><tr id="type-t.c" class="anchored"><td class="def record field"><a href="#type-t.c" class="anchor"></a><code><span>c : <a href="../ID/index.html#type-t">ID.t</a>;</span></code></td></tr><tr id="type-t.arg" class="anchored"><td class="def record field"><a href="#type-t.arg" class="anchor"></a><code><span>arg : <a href="../ID/index.html#type-t">ID.t</a>;</span></code></td></tr></table><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="../Bare/Decode/index.html#type-t">Bare.Decode.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>in case of error.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-encode" class="anchored"><a href="#val-encode" class="anchor"></a><code><span><span class="keyword">val</span> encode : <span><a href="../Bare/Encode/index.html#type-t">Bare.Encode.t</a> <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 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">Stdlib</span>.Format.formatter <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

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Expr_not (sidekick-base.Sidekick_base_proof_trace.Proof_ser.Expr_not)</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_proof_trace</a> &#x00BB; <a href="../index.html">Proof_ser</a> &#x00BB; Expr_not</nav><header class="odoc-preamble"><h1>Module <code><span>Proof_ser.Expr_not</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><span>{</span></code><table><tr id="type-t.f" class="anchored"><td class="def record field"><a href="#type-t.f" class="anchor"></a><code><span>f : <a href="../ID/index.html#type-t">ID.t</a>;</span></code></td></tr></table><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="../Bare/Decode/index.html#type-t">Bare.Decode.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>in case of error.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-encode" class="anchored"><a href="#val-encode" class="anchor"></a><code><span><span class="keyword">val</span> encode : <span><a href="../Bare/Encode/index.html#type-t">Bare.Encode.t</a> <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 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">Stdlib</span>.Format.formatter <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

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Fun_decl (sidekick-base.Sidekick_base_proof_trace.Proof_ser.Fun_decl)</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_proof_trace</a> &#x00BB; <a href="../index.html">Proof_ser</a> &#x00BB; Fun_decl</nav><header class="odoc-preamble"><h1>Module <code><span>Proof_ser.Fun_decl</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><span>{</span></code><table><tr id="type-t.f" class="anchored"><td class="def record field"><a href="#type-t.f" class="anchor"></a><code><span>f : string;</span></code></td></tr></table><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="../Bare/Decode/index.html#type-t">Bare.Decode.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>in case of error.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-encode" class="anchored"><a href="#val-encode" class="anchor"></a><code><span><span class="keyword">val</span> encode : <span><a href="../Bare/Encode/index.html#type-t">Bare.Encode.t</a> <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 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">Stdlib</span>.Format.formatter <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

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ID (sidekick-base.Sidekick_base_proof_trace.Proof_ser.ID)</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_proof_trace</a> &#x00BB; <a href="../index.html">Proof_ser</a> &#x00BB; ID</nav><header class="odoc-preamble"><h1>Module <code><span>Proof_ser.ID</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> = int32</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="../Bare/Decode/index.html#type-t">Bare.Decode.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>in case of error.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-encode" class="anchored"><a href="#val-encode" class="anchor"></a><code><span><span class="keyword">val</span> encode : <span><a href="../Bare/Encode/index.html#type-t">Bare.Encode.t</a> <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 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">Stdlib</span>.Format.formatter <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

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Lit (sidekick-base.Sidekick_base_proof_trace.Proof_ser.Lit)</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_proof_trace</a> &#x00BB; <a href="../index.html">Proof_ser</a> &#x00BB; Lit</nav><header class="odoc-preamble"><h1>Module <code><span>Proof_ser.Lit</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> = <a href="../ID/index.html#type-t">ID.t</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="../Bare/Decode/index.html#type-t">Bare.Decode.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>in case of error.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-encode" class="anchored"><a href="#val-encode" class="anchor"></a><code><span><span class="keyword">val</span> encode : <span><a href="../Bare/Encode/index.html#type-t">Bare.Encode.t</a> <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 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">Stdlib</span>.Format.formatter <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

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Step (sidekick-base.Sidekick_base_proof_trace.Proof_ser.Step)</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_proof_trace</a> &#x00BB; <a href="../index.html">Proof_ser</a> &#x00BB; Step</nav><header class="odoc-preamble"><h1>Module <code><span>Proof_ser.Step</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><span>{</span></code><table><tr id="type-t.id" class="anchored"><td class="def record field"><a href="#type-t.id" class="anchor"></a><code><span>id : <a href="../ID/index.html#type-t">ID.t</a>;</span></code></td></tr><tr id="type-t.view" class="anchored"><td class="def record field"><a href="#type-t.view" class="anchor"></a><code><span>view : <a href="../Step_view/index.html#type-t">Step_view.t</a>;</span></code></td></tr></table><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="../Bare/Decode/index.html#type-t">Bare.Decode.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>in case of error.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-encode" class="anchored"><a href="#val-encode" class="anchor"></a><code><span><span class="keyword">val</span> encode : <span><a href="../Bare/Encode/index.html#type-t">Bare.Encode.t</a> <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 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">Stdlib</span>.Format.formatter <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

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Step_bool_c (sidekick-base.Sidekick_base_proof_trace.Proof_ser.Step_bool_c)</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_proof_trace</a> &#x00BB; <a href="../index.html">Proof_ser</a> &#x00BB; Step_bool_c</nav><header class="odoc-preamble"><h1>Module <code><span>Proof_ser.Step_bool_c</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><span>{</span></code><table><tr id="type-t.rule" class="anchored"><td class="def record field"><a href="#type-t.rule" class="anchor"></a><code><span>rule : string;</span></code></td></tr><tr id="type-t.exprs" class="anchored"><td class="def record field"><a href="#type-t.exprs" class="anchor"></a><code><span>exprs : <span><a href="../ID/index.html#type-t">ID.t</a> array</span>;</span></code></td></tr></table><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="../Bare/Decode/index.html#type-t">Bare.Decode.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>in case of error.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-encode" class="anchored"><a href="#val-encode" class="anchor"></a><code><span><span class="keyword">val</span> encode : <span><a href="../Bare/Encode/index.html#type-t">Bare.Encode.t</a> <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 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">Stdlib</span>.Format.formatter <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

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Step_bool_tauto (sidekick-base.Sidekick_base_proof_trace.Proof_ser.Step_bool_tauto)</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_proof_trace</a> &#x00BB; <a href="../index.html">Proof_ser</a> &#x00BB; Step_bool_tauto</nav><header class="odoc-preamble"><h1>Module <code><span>Proof_ser.Step_bool_tauto</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><span>{</span></code><table><tr id="type-t.lits" class="anchored"><td class="def record field"><a href="#type-t.lits" class="anchor"></a><code><span>lits : <span><a href="../Lit/index.html#type-t">Lit.t</a> array</span>;</span></code></td></tr></table><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="../Bare/Decode/index.html#type-t">Bare.Decode.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>in case of error.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-encode" class="anchored"><a href="#val-encode" class="anchor"></a><code><span><span class="keyword">val</span> encode : <span><a href="../Bare/Encode/index.html#type-t">Bare.Encode.t</a> <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 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">Stdlib</span>.Format.formatter <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

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Step_bridge_lit_expr (sidekick-base.Sidekick_base_proof_trace.Proof_ser.Step_bridge_lit_expr)</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_proof_trace</a> &#x00BB; <a href="../index.html">Proof_ser</a> &#x00BB; Step_bridge_lit_expr</nav><header class="odoc-preamble"><h1>Module <code><span>Proof_ser.Step_bridge_lit_expr</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><span>{</span></code><table><tr id="type-t.lit" class="anchored"><td class="def record field"><a href="#type-t.lit" class="anchor"></a><code><span>lit : <a href="../Lit/index.html#type-t">Lit.t</a>;</span></code></td></tr><tr id="type-t.expr" class="anchored"><td class="def record field"><a href="#type-t.expr" class="anchor"></a><code><span>expr : <a href="../ID/index.html#type-t">ID.t</a>;</span></code></td></tr></table><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="../Bare/Decode/index.html#type-t">Bare.Decode.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>in case of error.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-encode" class="anchored"><a href="#val-encode" class="anchor"></a><code><span><span class="keyword">val</span> encode : <span><a href="../Bare/Encode/index.html#type-t">Bare.Encode.t</a> <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 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">Stdlib</span>.Format.formatter <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

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Step_cc (sidekick-base.Sidekick_base_proof_trace.Proof_ser.Step_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_base_proof_trace</a> &#x00BB; <a href="../index.html">Proof_ser</a> &#x00BB; Step_cc</nav><header class="odoc-preamble"><h1>Module <code><span>Proof_ser.Step_cc</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><span>{</span></code><table><tr id="type-t.eqns" class="anchored"><td class="def record field"><a href="#type-t.eqns" class="anchor"></a><code><span>eqns : <span><a href="../ID/index.html#type-t">ID.t</a> array</span>;</span></code></td></tr></table><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="../Bare/Decode/index.html#type-t">Bare.Decode.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>in case of error.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-encode" class="anchored"><a href="#val-encode" class="anchor"></a><code><span><span class="keyword">val</span> encode : <span><a href="../Bare/Encode/index.html#type-t">Bare.Encode.t</a> <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 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">Stdlib</span>.Format.formatter <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

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Step_clause_rw (sidekick-base.Sidekick_base_proof_trace.Proof_ser.Step_clause_rw)</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_proof_trace</a> &#x00BB; <a href="../index.html">Proof_ser</a> &#x00BB; Step_clause_rw</nav><header class="odoc-preamble"><h1>Module <code><span>Proof_ser.Step_clause_rw</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><span>{</span></code><table><tr id="type-t.c" class="anchored"><td class="def record field"><a href="#type-t.c" class="anchor"></a><code><span>c : <a href="../ID/index.html#type-t">ID.t</a>;</span></code></td></tr><tr id="type-t.res" class="anchored"><td class="def record field"><a href="#type-t.res" class="anchor"></a><code><span>res : <a href="../Clause/index.html#type-t">Clause.t</a>;</span></code></td></tr><tr id="type-t.using" class="anchored"><td class="def record field"><a href="#type-t.using" class="anchor"></a><code><span>using : <span><a href="../ID/index.html#type-t">ID.t</a> array</span>;</span></code></td></tr></table><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="../Bare/Decode/index.html#type-t">Bare.Decode.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>in case of error.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-encode" class="anchored"><a href="#val-encode" class="anchor"></a><code><span><span class="keyword">val</span> encode : <span><a href="../Bare/Encode/index.html#type-t">Bare.Encode.t</a> <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 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">Stdlib</span>.Format.formatter <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

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Step_input (sidekick-base.Sidekick_base_proof_trace.Proof_ser.Step_input)</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_proof_trace</a> &#x00BB; <a href="../index.html">Proof_ser</a> &#x00BB; Step_input</nav><header class="odoc-preamble"><h1>Module <code><span>Proof_ser.Step_input</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><span>{</span></code><table><tr id="type-t.c" class="anchored"><td class="def record field"><a href="#type-t.c" class="anchor"></a><code><span>c : <a href="../Clause/index.html#type-t">Clause.t</a>;</span></code></td></tr></table><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="../Bare/Decode/index.html#type-t">Bare.Decode.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>in case of error.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-encode" class="anchored"><a href="#val-encode" class="anchor"></a><code><span><span class="keyword">val</span> encode : <span><a href="../Bare/Encode/index.html#type-t">Bare.Encode.t</a> <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 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">Stdlib</span>.Format.formatter <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

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Step_preprocess (sidekick-base.Sidekick_base_proof_trace.Proof_ser.Step_preprocess)</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_proof_trace</a> &#x00BB; <a href="../index.html">Proof_ser</a> &#x00BB; Step_preprocess</nav><header class="odoc-preamble"><h1>Module <code><span>Proof_ser.Step_preprocess</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><span>{</span></code><table><tr id="type-t.t" class="anchored"><td class="def record field"><a href="#type-t.t" class="anchor"></a><code><span>t : <a href="../ID/index.html#type-t">ID.t</a>;</span></code></td></tr><tr id="type-t.u" class="anchored"><td class="def record field"><a href="#type-t.u" class="anchor"></a><code><span>u : <a href="../ID/index.html#type-t">ID.t</a>;</span></code></td></tr><tr id="type-t.using" class="anchored"><td class="def record field"><a href="#type-t.using" class="anchor"></a><code><span>using : <span><a href="../ID/index.html#type-t">ID.t</a> array</span>;</span></code></td></tr></table><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="../Bare/Decode/index.html#type-t">Bare.Decode.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>in case of error.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-encode" class="anchored"><a href="#val-encode" class="anchor"></a><code><span><span class="keyword">val</span> encode : <span><a href="../Bare/Encode/index.html#type-t">Bare.Encode.t</a> <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 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">Stdlib</span>.Format.formatter <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

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Step_proof_p1 (sidekick-base.Sidekick_base_proof_trace.Proof_ser.Step_proof_p1)</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_proof_trace</a> &#x00BB; <a href="../index.html">Proof_ser</a> &#x00BB; Step_proof_p1</nav><header class="odoc-preamble"><h1>Module <code><span>Proof_ser.Step_proof_p1</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><span>{</span></code><table><tr id="type-t.rw_with" class="anchored"><td class="def record field"><a href="#type-t.rw_with" class="anchor"></a><code><span>rw_with : <a href="../ID/index.html#type-t">ID.t</a>;</span></code></td></tr><tr id="type-t.c" class="anchored"><td class="def record field"><a href="#type-t.c" class="anchor"></a><code><span>c : <a href="../ID/index.html#type-t">ID.t</a>;</span></code></td></tr></table><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="../Bare/Decode/index.html#type-t">Bare.Decode.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>in case of error.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-encode" class="anchored"><a href="#val-encode" class="anchor"></a><code><span><span class="keyword">val</span> encode : <span><a href="../Bare/Encode/index.html#type-t">Bare.Encode.t</a> <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 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">Stdlib</span>.Format.formatter <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

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Step_proof_r1 (sidekick-base.Sidekick_base_proof_trace.Proof_ser.Step_proof_r1)</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_proof_trace</a> &#x00BB; <a href="../index.html">Proof_ser</a> &#x00BB; Step_proof_r1</nav><header class="odoc-preamble"><h1>Module <code><span>Proof_ser.Step_proof_r1</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><span>{</span></code><table><tr id="type-t.unit" class="anchored"><td class="def record field"><a href="#type-t.unit" class="anchor"></a><code><span>unit : <a href="../ID/index.html#type-t">ID.t</a>;</span></code></td></tr><tr id="type-t.c" class="anchored"><td class="def record field"><a href="#type-t.c" class="anchor"></a><code><span>c : <a href="../ID/index.html#type-t">ID.t</a>;</span></code></td></tr></table><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="../Bare/Decode/index.html#type-t">Bare.Decode.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>in case of error.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-encode" class="anchored"><a href="#val-encode" class="anchor"></a><code><span><span class="keyword">val</span> encode : <span><a href="../Bare/Encode/index.html#type-t">Bare.Encode.t</a> <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 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">Stdlib</span>.Format.formatter <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

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Step_proof_res (sidekick-base.Sidekick_base_proof_trace.Proof_ser.Step_proof_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-base</a> &#x00BB; <a href="../../index.html">Sidekick_base_proof_trace</a> &#x00BB; <a href="../index.html">Proof_ser</a> &#x00BB; Step_proof_res</nav><header class="odoc-preamble"><h1>Module <code><span>Proof_ser.Step_proof_res</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><span>{</span></code><table><tr id="type-t.pivot" class="anchored"><td class="def record field"><a href="#type-t.pivot" class="anchor"></a><code><span>pivot : <a href="../ID/index.html#type-t">ID.t</a>;</span></code></td></tr><tr id="type-t.c1" class="anchored"><td class="def record field"><a href="#type-t.c1" class="anchor"></a><code><span>c1 : <a href="../ID/index.html#type-t">ID.t</a>;</span></code></td></tr><tr id="type-t.c2" class="anchored"><td class="def record field"><a href="#type-t.c2" class="anchor"></a><code><span>c2 : <a href="../ID/index.html#type-t">ID.t</a>;</span></code></td></tr></table><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="../Bare/Decode/index.html#type-t">Bare.Decode.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>in case of error.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-encode" class="anchored"><a href="#val-encode" class="anchor"></a><code><span><span class="keyword">val</span> encode : <span><a href="../Bare/Encode/index.html#type-t">Bare.Encode.t</a> <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 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">Stdlib</span>.Format.formatter <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

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Step_rup (sidekick-base.Sidekick_base_proof_trace.Proof_ser.Step_rup)</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_proof_trace</a> &#x00BB; <a href="../index.html">Proof_ser</a> &#x00BB; Step_rup</nav><header class="odoc-preamble"><h1>Module <code><span>Proof_ser.Step_rup</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><span>{</span></code><table><tr id="type-t.res" class="anchored"><td class="def record field"><a href="#type-t.res" class="anchor"></a><code><span>res : <a href="../Clause/index.html#type-t">Clause.t</a>;</span></code></td></tr><tr id="type-t.hyps" class="anchored"><td class="def record field"><a href="#type-t.hyps" class="anchor"></a><code><span>hyps : <span><a href="../ID/index.html#type-t">ID.t</a> array</span>;</span></code></td></tr></table><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="../Bare/Decode/index.html#type-t">Bare.Decode.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>in case of error.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-encode" class="anchored"><a href="#val-encode" class="anchor"></a><code><span><span class="keyword">val</span> encode : <span><a href="../Bare/Encode/index.html#type-t">Bare.Encode.t</a> <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 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">Stdlib</span>.Format.formatter <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

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Step_true (sidekick-base.Sidekick_base_proof_trace.Proof_ser.Step_true)</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_proof_trace</a> &#x00BB; <a href="../index.html">Proof_ser</a> &#x00BB; Step_true</nav><header class="odoc-preamble"><h1>Module <code><span>Proof_ser.Step_true</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><span>{</span></code><table><tr id="type-t.true_" class="anchored"><td class="def record field"><a href="#type-t.true_" class="anchor"></a><code><span>true_ : <a href="../ID/index.html#type-t">ID.t</a>;</span></code></td></tr></table><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="../Bare/Decode/index.html#type-t">Bare.Decode.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>in case of error.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-encode" class="anchored"><a href="#val-encode" class="anchor"></a><code><span><span class="keyword">val</span> encode : <span><a href="../Bare/Encode/index.html#type-t">Bare.Encode.t</a> <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 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">Stdlib</span>.Format.formatter <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

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Step_unsat (sidekick-base.Sidekick_base_proof_trace.Proof_ser.Step_unsat)</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_proof_trace</a> &#x00BB; <a href="../index.html">Proof_ser</a> &#x00BB; Step_unsat</nav><header class="odoc-preamble"><h1>Module <code><span>Proof_ser.Step_unsat</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><span>{</span></code><table><tr id="type-t.c" class="anchored"><td class="def record field"><a href="#type-t.c" class="anchor"></a><code><span>c : <a href="../ID/index.html#type-t">ID.t</a>;</span></code></td></tr></table><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="../Bare/Decode/index.html#type-t">Bare.Decode.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>in case of error.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-encode" class="anchored"><a href="#val-encode" class="anchor"></a><code><span><span class="keyword">val</span> encode : <span><a href="../Bare/Encode/index.html#type-t">Bare.Encode.t</a> <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 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">Stdlib</span>.Format.formatter <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>

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 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Storage (sidekick-base.Sidekick_base_proof_trace.Storage)</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_proof_trace</a> &#x00BB; Storage</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_base_proof_trace.Storage</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.No_store" class="anchored"><td class="def variant constructor"><a href="#type-t.No_store" class="anchor"></a><code><span>| </span><span><span class="constructor">No_store</span></span></code></td></tr><tr id="type-t.In_memory" class="anchored"><td class="def variant constructor"><a href="#type-t.In_memory" class="anchor"></a><code><span>| </span><span><span class="constructor">In_memory</span> <span class="keyword">of</span> <a href="../../../sidekick/Sidekick_util/Chunk_stack/Buf/index.html#type-t">Sidekick_util.Chunk_stack.Buf.t</a></span></code></td></tr><tr id="type-t.On_disk" class="anchored"><td class="def variant constructor"><a href="#type-t.On_disk" class="anchor"></a><code><span>| </span><span><span class="constructor">On_disk</span> <span class="keyword">of</span> string * <span class="xref-unresolved">Stdlib</span>.out_channel</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><span class="xref-unresolved">Stdlib</span>.Format.formatter <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 class="odoc-spec"><div class="spec value" id="val-iter_steps_backward" class="anchored"><a href="#val-iter_steps_backward" class="anchor"></a><code><span><span class="keyword">val</span> iter_steps_backward : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../Proof_ser/Step/index.html#type-t">Proof_ser.Step.t</a> <span class="xref-unresolved">Iter</span>.t</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_base_proof_trace (sidekick-base.Sidekick_base_proof_trace)</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_base_proof_trace</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_base_proof_trace</span></code></h1><p>Proof trace with serialization</p><p>This library is useful to serialize a series of reasoning steps in memory or into a file, to be able to reconstruct a proper proof later.</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec module" id="module-Proof_ser" class="anchored"><a href="#module-Proof_ser" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Proof_ser/index.html">Proof_ser</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-Storage" class="anchored"><a href="#module-Storage" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Storage/index.html">Storage</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-iter_steps_backward" class="anchored"><a href="#val-iter_steps_backward" class="anchor"></a><code><span><span class="keyword">val</span> iter_steps_backward : <span><a href="Storage/index.html#type-t">Storage.t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="Proof_ser/Step/index.html#type-t">Proof_ser.Step.t</a> <span class="xref-unresolved">Iter</span>.t</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>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>
<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-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><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>
<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.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.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,11 +1,9 @@
<!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>
<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_proof/Pterm/index.html#type-delayed">Proof.Pterm.delayed</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_proof/Pterm/index.html#type-delayed">Proof.Pterm.delayed</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>
<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_tracer" class="anchored"><a href="#method-proof_tracer" class="anchor"></a><code><span><span class="keyword">method</span> proof_tracer : <a href="../../../Sidekick_proof/Tracer/class-type-t/index.html">Proof.Tracer.t</a></span></code></div><div class="spec-doc"><p>TODO: remove, use Tracer instead</p></div></div></div></body></html>

View file

@ -1,12 +1,12 @@
<!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 :
<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 module" id="module-Proof" class="anchored"><a href="#module-Proof" class="anchor"></a><code><span><span class="keyword">module</span> Proof</span><span> = <a href="../../Sidekick_proof/index.html">Sidekick_proof</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>
<span><a href="../../Sidekick_proof/Pterm/index.html#type-delayed">Proof.Pterm.delayed</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>
<span><a href="../../Sidekick_proof/Pterm/index.html#type-delayed">Proof.Pterm.delayed</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>
@ -18,4 +18,4 @@
<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>
<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_proof/Tracer/class-type-t/index.html">Proof.Tracer.t</a></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>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>
<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_proof" class="anchored"><td class="def record field"><a href="#type-t.unsat_proof" class="anchor"></a><code><span>unsat_proof : <span>unit <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Sidekick_proof/Step/index.html#type-id">Sidekick_proof.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

@ -1,11 +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>
<span><a href="../../Sidekick_proof/Pterm/index.html#type-delayed">Asolver.Proof.Pterm.delayed</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>
<span><a href="../../Sidekick_proof/Pterm/index.html#type-delayed">Asolver.Proof.Pterm.delayed</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>
<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_tracer" class="anchored"><a href="#method-proof_tracer" class="anchor"></a><code><span><span class="keyword">method</span> proof_tracer : <a href="../../Sidekick_proof/Tracer/class-type-t/index.html">Asolver.Proof.Tracer.t</a></span></code></div><div class="spec-doc"><p>TODO: remove, use Tracer instead</p></div></div></div></body></html>

View file

@ -3,5 +3,5 @@
<span>?stat:<a href="../../../Sidekick_util/Stat/index.html#type-t">Sidekick_util.Stat.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>?size:<span>[ `Small <span>| `Big</span> ]</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../Sidekick_core/Term/index.html#type-store">Sidekick_core.Term.store</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../Sidekick_core/Proof_trace/index.html#type-t">Sidekick_core.Proof_trace.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../Sidekick_proof/Tracer/class-type-t/index.html">Sidekick_proof.Tracer.t</a> <span class="arrow">&#45;&gt;</span></span>
<a href="../index.html#type-t">t</a></span></code></div><div class="spec-doc"><p>Create a new congruence closure.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">term_store</span> <p>used to be able to create new terms. All terms interacting with this congruence closure must belong in this term state as well.</p></li></ul></div></div></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Result_action (sidekick.Sidekick_cc.CC.Result_action)</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_cc</a> &#x00BB; <a href="../index.html">CC</a> &#x00BB; Result_action</nav><header class="odoc-preamble"><h1>Module <code><span>CC.Result_action</span></code></h1><p>Result Actions.</p><p>Actions returned by the congruence closure after calling <a href="../index.html#val-check"><code>check</code></a>.</p></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.Act_propagate" class="anchored"><td class="def variant constructor"><a href="#type-t.Act_propagate" class="anchor"></a><code><span>| </span><span><span class="constructor">Act_propagate</span> <span class="keyword">of</span> </span><span>{</span></code><table><tr id="type-t.lit" class="anchored"><td class="def record field"><a href="#type-t.lit" class="anchor"></a><code><span>lit : <a href="../../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a>;</span></code></td></tr><tr id="type-t.reason" class="anchored"><td class="def record field"><a href="#type-t.reason" class="anchor"></a><code><span>reason : <a href="../index.html#type-propagation_reason">propagation_reason</a>;</span></code></td></tr></table><code><span>}</span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p><code>propagate (Lit.t, reason)</code> declares that <code>reason() =&gt; Lit.t</code> is a tautology.</p><ul><li><code>reason()</code> should return a list of literals that are currently true, as well as a proof.</li><li><code>Lit.t</code> should be a literal of interest (see <code>S</code>.set_as_lit).</li></ul><p>This function might never be called, a congruence closure has the right to not propagate and only trigger conflicts.</p><span class="comment-delim">*)</span></td></tr></table></div></div><div class="odoc-spec"><div class="spec type" id="type-conflict" class="anchored"><a href="#type-conflict" class="anchor"></a><code><span><span class="keyword">type</span> conflict</span><span> = </span></code><table><tr id="type-conflict.Conflict" class="anchored"><td class="def variant constructor"><a href="#type-conflict.Conflict" class="anchor"></a><code><span>| </span><span><span class="constructor">Conflict</span> <span class="keyword">of</span> <span><a href="../../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> list</span> * <a href="../../../Sidekick_core/Proof_term/index.html#type-step_id">Sidekick_core.Proof_term.step_id</a></span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p><code>raise_conflict (c,pr)</code> declares that <code>c</code> is a tautology of the theory of congruence.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">pr</span> <p>the proof of <code>c</code> being a tautology</p></li></ul><span class="comment-delim">*)</span></td></tr></table></div></div><div class="odoc-spec"><div class="spec type" id="type-or_conflict" class="anchored"><a href="#type-or_conflict" class="anchor"></a><code><span><span class="keyword">type</span> or_conflict</span><span> = <span><span>( <span><a href="#type-t">t</a> list</span>, <a href="#type-conflict">conflict</a> )</span> <span class="xref-unresolved">Stdlib</span>.result</span></span></code></div></div></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Result_action (sidekick.Sidekick_cc.CC.Result_action)</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_cc</a> &#x00BB; <a href="../index.html">CC</a> &#x00BB; Result_action</nav><header class="odoc-preamble"><h1>Module <code><span>CC.Result_action</span></code></h1><p>Result Actions.</p><p>Actions returned by the congruence closure after calling <a href="../index.html#val-check"><code>check</code></a>.</p></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.Act_propagate" class="anchored"><td class="def variant constructor"><a href="#type-t.Act_propagate" class="anchor"></a><code><span>| </span><span><span class="constructor">Act_propagate</span> <span class="keyword">of</span> </span><span>{</span></code><table><tr id="type-t.lit" class="anchored"><td class="def record field"><a href="#type-t.lit" class="anchor"></a><code><span>lit : <a href="../../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a>;</span></code></td></tr><tr id="type-t.reason" class="anchored"><td class="def record field"><a href="#type-t.reason" class="anchor"></a><code><span>reason : <a href="../index.html#type-propagation_reason">propagation_reason</a>;</span></code></td></tr></table><code><span>}</span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p><code>propagate (Lit.t, reason)</code> declares that <code>reason() =&gt; Lit.t</code> is a tautology.</p><ul><li><code>reason()</code> should return a list of literals that are currently true, as well as a proof.</li><li><code>Lit.t</code> should be a literal of interest (see <code>S</code>.set_as_lit).</li></ul><p>This function might never be called, a congruence closure has the right to not propagate and only trigger conflicts.</p><span class="comment-delim">*)</span></td></tr></table></div></div><div class="odoc-spec"><div class="spec type" id="type-conflict" class="anchored"><a href="#type-conflict" class="anchor"></a><code><span><span class="keyword">type</span> conflict</span><span> = </span></code><table><tr id="type-conflict.Conflict" class="anchored"><td class="def variant constructor"><a href="#type-conflict.Conflict" class="anchor"></a><code><span>| </span><span><span class="constructor">Conflict</span> <span class="keyword">of</span> <span><a href="../../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> list</span> * <a href="../../../Sidekick_proof/Step/index.html#type-id">Sidekick_proof.Step.id</a></span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p><code>raise_conflict (c,pr)</code> declares that <code>c</code> is a tautology of the theory of congruence.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">pr</span> <p>the proof of <code>c</code> being a tautology</p></li></ul><span class="comment-delim">*)</span></td></tr></table></div></div><div class="odoc-spec"><div class="spec type" id="type-or_conflict" class="anchored"><a href="#type-or_conflict" class="anchor"></a><code><span><span class="keyword">type</span> or_conflict</span><span> = <span><span>( <span><a href="#type-t">t</a> list</span>, <a href="#type-conflict">conflict</a> )</span> <span class="xref-unresolved">Stdlib</span>.result</span></span></code></div></div></div></body></html>

File diff suppressed because one or more lines are too long

View file

@ -3,5 +3,5 @@
<span>?stat:<a href="../../../Sidekick_util/Stat/index.html#type-t">Sidekick_util.Stat.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>?size:<span>[ `Small <span>| `Big</span> ]</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../Sidekick_core/Term/index.html#type-store">Sidekick_core.Term.store</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../Sidekick_core/Proof_trace/index.html#type-t">Sidekick_core.Proof_trace.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../Sidekick_proof/Tracer/class-type-t/index.html">Sidekick_proof.Tracer.t</a> <span class="arrow">&#45;&gt;</span></span>
<a href="../index.html#type-t">t</a></span></code></div><div class="spec-doc"><p>Create a new congruence closure.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">term_store</span> <p>used to be able to create new terms. All terms interacting with this congruence closure must belong in this term state as well.</p></li></ul></div></div></div></body></html>

View file

@ -3,5 +3,5 @@
<span><a href="../../Sidekick_core/Term/index.html#type-t">Sidekick_core.Term.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>
<span><span><span>(<a href="../../Sidekick_core/Term/index.html#type-t">Sidekick_core.Term.t</a> * <a href="../../Sidekick_core/Term/index.html#type-t">Sidekick_core.Term.t</a> * <span><a href="#type-t">t</a> list</span>)</span> list</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../Sidekick_core/Proof_term/index.html#type-step_id">Sidekick_core.Proof_term.step_id</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../Sidekick_proof/Pterm/index.html#type-delayed">Sidekick_proof.Pterm.delayed</a> <span class="arrow">&#45;&gt;</span></span>
<a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>mk_theory t u expl_sets pr</code> builds a theory explanation for why <code>|- t=u</code>. It depends on sub-explanations <code>expl_sets</code> which are tuples <code> (t_i, u_i, expls_i) </code> where <code>expls_i</code> are explanations that justify <code>t_i = u_i</code> in the current congruence closure.</p><p>The proof <code>pr</code> is the theory lemma, of the form <code> (t_i = u_i)_i |- t=u </code>. It is resolved against each <code>expls_i |- t_i=u_i</code> obtained from <code>expl_sets</code>, on pivot <code>t_i=u_i</code>, to obtain a proof of <code>Gamma |- t=u</code> where <code>Gamma</code> is a subset of the literals asserted into the congruence closure.</p><p>For example for the lemma <code>a=b</code> deduced by injectivity from <code>Some a=Some b</code> in the theory of datatypes, the arguments would be <code>a, b, [Some a, Some b, mk_merge_t (Some a)(Some b)], pr</code> where <code>pr</code> is the injectivity lemma <code>Some a=Some b |- a=b</code>.</p></div></div></div></body></html>

View file

@ -3,5 +3,5 @@
<span>?stat:<a href="../../Sidekick_util/Stat/index.html#type-t">Sidekick_util.Stat.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>?size:<span>[ `Small <span>| `Big</span> ]</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../Sidekick_core/Term/index.html#type-store">Sidekick_core.Term.store</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../Sidekick_core/Proof_trace/index.html#type-t">Sidekick_core.Proof_trace.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../Sidekick_proof/Tracer/class-type-t/index.html">Sidekick_proof.Tracer.t</a> <span class="arrow">&#45;&gt;</span></span>
<a href="../index.html#type-t">t</a></span></code></div><div class="spec-doc"><p>Create a new congruence closure.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">term_store</span> <p>used to be able to create new terms. All terms interacting with this congruence closure must belong in this term state as well.</p></li></ul></div></div></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Resolved_expl (sidekick.Sidekick_cc.Resolved_expl)</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_cc</a> &#x00BB; Resolved_expl</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_cc.Resolved_expl</span></code></h1><p>Resolved explanations.</p><p>The congruence closure keeps explanations for why terms are in the same class. However these are represented in a compact, cheap form. To use these explanations we need to <b>resolve</b> them into a resolved explanation, typically a list of literals that are true in the current trail and are responsible for merges.</p><p>However, we can also have merged classes because they have the same value in the current model.</p></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><span>{</span></code><table><tr id="type-t.lits" class="anchored"><td class="def record field"><a href="#type-t.lits" class="anchor"></a><code><span>lits : <span><a href="../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> list</span>;</span></code></td></tr><tr id="type-t.pr" class="anchored"><td class="def record field"><a href="#type-t.pr" class="anchor"></a><code><span>pr : <span><a href="../../Sidekick_core/Proof_trace/index.html#type-t">Sidekick_core.Proof_trace.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="../../Sidekick_core/Proof_term/index.html#type-step_id">Sidekick_core.Proof_term.step_id</a>;</span></code></td></tr></table><code><span>}</span></code></div></div><div class="odoc-include"><details open="open"><summary class="spec include"><code><span><span class="keyword">include</span> <a href="../../Sidekick_sigs/module-type-PRINT/index.html">Sidekick_sigs.PRINT</a> <span class="keyword">with</span> <span><span class="keyword">type</span> <a href="../../Sidekick_sigs/module-type-PRINT/index.html#type-t">t</a> := <a href="#type-t">t</a></span></span></code></summary><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> <a href="../../Sidekick_sigs/index.html#type-printer">Sidekick_sigs.printer</a></span></span></code></div></div></details></div></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Resolved_expl (sidekick.Sidekick_cc.Resolved_expl)</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_cc</a> &#x00BB; Resolved_expl</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_cc.Resolved_expl</span></code></h1><p>Resolved explanations.</p><p>The congruence closure keeps explanations for why terms are in the same class. However these are represented in a compact, cheap form. To use these explanations we need to <b>resolve</b> them into a resolved explanation, typically a list of literals that are true in the current trail and are responsible for merges.</p><p>However, we can also have merged classes because they have the same value in the current model.</p></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><span>{</span></code><table><tr id="type-t.lits" class="anchored"><td class="def record field"><a href="#type-t.lits" class="anchor"></a><code><span>lits : <span><a href="../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> list</span>;</span></code></td></tr><tr id="type-t.pr" class="anchored"><td class="def record field"><a href="#type-t.pr" class="anchor"></a><code><span>pr : <a href="../../Sidekick_proof/Pterm/index.html#type-delayed">Sidekick_proof.Pterm.delayed</a>;</span></code></td></tr></table><code><span>}</span></code></div></div><div class="odoc-include"><details open="open"><summary class="spec include"><code><span><span class="keyword">include</span> <a href="../../Sidekick_sigs/module-type-PRINT/index.html">Sidekick_sigs.PRINT</a> <span class="keyword">with</span> <span><span class="keyword">type</span> <a href="../../Sidekick_sigs/module-type-PRINT/index.html#type-t">t</a> := <a href="#type-t">t</a></span></span></code></summary><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> <a href="../../Sidekick_sigs/index.html#type-printer">Sidekick_sigs.printer</a></span></span></code></div></div></details></div></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Result_action (sidekick.Sidekick_cc.Result_action)</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_cc</a> &#x00BB; Result_action</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_cc.Result_action</span></code></h1><p>Result Actions.</p><p>Actions returned by the congruence closure after calling <a href="../index.html#val-check"><code>check</code></a>.</p></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.Act_propagate" class="anchored"><td class="def variant constructor"><a href="#type-t.Act_propagate" class="anchor"></a><code><span>| </span><span><span class="constructor">Act_propagate</span> <span class="keyword">of</span> </span><span>{</span></code><table><tr id="type-t.lit" class="anchored"><td class="def record field"><a href="#type-t.lit" class="anchor"></a><code><span>lit : <a href="../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a>;</span></code></td></tr><tr id="type-t.reason" class="anchored"><td class="def record field"><a href="#type-t.reason" class="anchor"></a><code><span>reason : <a href="../index.html#type-propagation_reason">propagation_reason</a>;</span></code></td></tr></table><code><span>}</span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p><code>propagate (Lit.t, reason)</code> declares that <code>reason() =&gt; Lit.t</code> is a tautology.</p><ul><li><code>reason()</code> should return a list of literals that are currently true, as well as a proof.</li><li><code>Lit.t</code> should be a literal of interest (see <code>S</code>.set_as_lit).</li></ul><p>This function might never be called, a congruence closure has the right to not propagate and only trigger conflicts.</p><span class="comment-delim">*)</span></td></tr></table></div></div><div class="odoc-spec"><div class="spec type" id="type-conflict" class="anchored"><a href="#type-conflict" class="anchor"></a><code><span><span class="keyword">type</span> conflict</span><span> = </span></code><table><tr id="type-conflict.Conflict" class="anchored"><td class="def variant constructor"><a href="#type-conflict.Conflict" class="anchor"></a><code><span>| </span><span><span class="constructor">Conflict</span> <span class="keyword">of</span> <span><a href="../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> list</span> * <a href="../../Sidekick_core/Proof_term/index.html#type-step_id">Sidekick_core.Proof_term.step_id</a></span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p><code>raise_conflict (c,pr)</code> declares that <code>c</code> is a tautology of the theory of congruence.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">pr</span> <p>the proof of <code>c</code> being a tautology</p></li></ul><span class="comment-delim">*)</span></td></tr></table></div></div><div class="odoc-spec"><div class="spec type" id="type-or_conflict" class="anchored"><a href="#type-or_conflict" class="anchor"></a><code><span><span class="keyword">type</span> or_conflict</span><span> = <span><span>( <span><a href="#type-t">t</a> list</span>, <a href="#type-conflict">conflict</a> )</span> <span class="xref-unresolved">Stdlib</span>.result</span></span></code></div></div></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Result_action (sidekick.Sidekick_cc.Result_action)</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_cc</a> &#x00BB; Result_action</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_cc.Result_action</span></code></h1><p>Result Actions.</p><p>Actions returned by the congruence closure after calling <a href="../index.html#val-check"><code>check</code></a>.</p></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.Act_propagate" class="anchored"><td class="def variant constructor"><a href="#type-t.Act_propagate" class="anchor"></a><code><span>| </span><span><span class="constructor">Act_propagate</span> <span class="keyword">of</span> </span><span>{</span></code><table><tr id="type-t.lit" class="anchored"><td class="def record field"><a href="#type-t.lit" class="anchor"></a><code><span>lit : <a href="../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a>;</span></code></td></tr><tr id="type-t.reason" class="anchored"><td class="def record field"><a href="#type-t.reason" class="anchor"></a><code><span>reason : <a href="../index.html#type-propagation_reason">propagation_reason</a>;</span></code></td></tr></table><code><span>}</span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p><code>propagate (Lit.t, reason)</code> declares that <code>reason() =&gt; Lit.t</code> is a tautology.</p><ul><li><code>reason()</code> should return a list of literals that are currently true, as well as a proof.</li><li><code>Lit.t</code> should be a literal of interest (see <code>S</code>.set_as_lit).</li></ul><p>This function might never be called, a congruence closure has the right to not propagate and only trigger conflicts.</p><span class="comment-delim">*)</span></td></tr></table></div></div><div class="odoc-spec"><div class="spec type" id="type-conflict" class="anchored"><a href="#type-conflict" class="anchor"></a><code><span><span class="keyword">type</span> conflict</span><span> = </span></code><table><tr id="type-conflict.Conflict" class="anchored"><td class="def variant constructor"><a href="#type-conflict.Conflict" class="anchor"></a><code><span>| </span><span><span class="constructor">Conflict</span> <span class="keyword">of</span> <span><a href="../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> list</span> * <a href="../../Sidekick_proof/Step/index.html#type-id">Sidekick_proof.Step.id</a></span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p><code>raise_conflict (c,pr)</code> declares that <code>c</code> is a tautology of the theory of congruence.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">pr</span> <p>the proof of <code>c</code> being a tautology</p></li></ul><span class="comment-delim">*)</span></td></tr></table></div></div><div class="odoc-spec"><div class="spec type" id="type-or_conflict" class="anchored"><a href="#type-or_conflict" class="anchor"></a><code><span><span class="keyword">type</span> or_conflict</span><span> = <span><span>( <span><a href="#type-t">t</a> list</span>, <a href="#type-conflict">conflict</a> )</span> <span class="xref-unresolved">Stdlib</span>.result</span></span></code></div></div></div></body></html>

File diff suppressed because one or more lines are too long

View file

@ -3,5 +3,5 @@
<span>?stat:<a href="../../Sidekick_util/Stat/index.html#type-t">Sidekick_util.Stat.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>?size:<span>[ `Small <span>| `Big</span> ]</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../Sidekick_core/Term/index.html#type-store">Sidekick_core.Term.store</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../Sidekick_core/Proof_trace/index.html#type-t">Sidekick_core.Proof_trace.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../Sidekick_proof/Tracer/class-type-t/index.html">Sidekick_proof.Tracer.t</a> <span class="arrow">&#45;&gt;</span></span>
<a href="../index.html#type-t">t</a></span></code></div><div class="spec-doc"><p>Create a new congruence closure.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">term_store</span> <p>used to be able to create new terms. All terms interacting with this congruence closure must belong in this term state as well.</p></li></ul></div></div></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>dummy (sidekick.Sidekick_core.Clause_tracer.dummy)</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_core</a> &#x00BB; <a href="../index.html">Clause_tracer</a> &#x00BB; dummy</nav><header class="odoc-preamble"><h1>Class <code><span>Clause_tracer.dummy</span></code></h1></header><div class="odoc-content"><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>id:int <span class="arrow">&#45;&gt;</span></span> <span><span><span class="xref-unresolved">Sidekick_core__Lit.t</span> <span class="xref-unresolved">Iter</span>.t</span> <span class="arrow">&#45;&gt;</span></span> <a href="../../../Sidekick_trace/Entry_id/index.html#type-t">Tr.Entry_id.t</a></span></code></div></div><div class="odoc-spec"><div class="spec method" id="method-delete_clause" class="anchored"><a href="#method-delete_clause" class="anchor"></a><code><span><span class="keyword">method</span> delete_clause : <span>id:int <span class="arrow">&#45;&gt;</span></span> <span><span><span class="xref-unresolved">Sidekick_core__Lit.t</span> <span class="xref-unresolved">Iter</span>.t</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec method" id="method-unsat_clause" class="anchored"><a href="#method-unsat_clause" class="anchor"></a><code><span><span class="keyword">method</span> unsat_clause : <span>id:int <span class="arrow">&#45;&gt;</span></span> <a href="../../../Sidekick_trace/Entry_id/index.html#type-t">Tr.Entry_id.t</a></span></code></div></div><div class="odoc-spec"><div class="spec method" id="method-encode_lit" class="anchored"><a href="#method-encode_lit" class="anchor"></a><code><span><span class="keyword">method</span> encode_lit : <span><span class="xref-unresolved">Sidekick_core__Lit.t</span> <span class="arrow">&#45;&gt;</span></span> <a href="../../../Sidekick_util/Ser_value/index.html#type-t">Sidekick_util.Ser_value.t</a></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>t (sidekick.Sidekick_core.Clause_tracer.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_core</a> &#x00BB; <a href="../index.html">Clause_tracer</a> &#x00BB; t</nav><header class="odoc-preamble"><h1>Class type <code><span>Clause_tracer.t</span></code></h1><p>Tracer for clauses.</p></header><div class="odoc-content"><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>id:int <span class="arrow">&#45;&gt;</span></span> <span><span><span class="xref-unresolved">Sidekick_core__Lit.t</span> <span class="xref-unresolved">Iter</span>.t</span> <span class="arrow">&#45;&gt;</span></span> <a href="../../../Sidekick_trace/Entry_id/index.html#type-t">Tr.Entry_id.t</a></span></code></div></div><div class="odoc-spec"><div class="spec method" id="method-delete_clause" class="anchored"><a href="#method-delete_clause" class="anchor"></a><code><span><span class="keyword">method</span> delete_clause : <span>id:int <span class="arrow">&#45;&gt;</span></span> <span><span><span class="xref-unresolved">Sidekick_core__Lit.t</span> <span class="xref-unresolved">Iter</span>.t</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec method" id="method-unsat_clause" class="anchored"><a href="#method-unsat_clause" class="anchor"></a><code><span><span class="keyword">method</span> unsat_clause : <span>id:int <span class="arrow">&#45;&gt;</span></span> <a href="../../../Sidekick_trace/Entry_id/index.html#type-t">Tr.Entry_id.t</a></span></code></div></div><div class="odoc-spec"><div class="spec method" id="method-encode_lit" class="anchored"><a href="#method-encode_lit" class="anchor"></a><code><span><span class="keyword">method</span> encode_lit : <span><span class="xref-unresolved">Sidekick_core__Lit.t</span> <span class="arrow">&#45;&gt;</span></span> <a href="../../../Sidekick_util/Ser_value/index.html#type-t">Sidekick_util.Ser_value.t</a></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

View file

@ -1,17 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Proof_core (sidekick.Sidekick_core.Proof_core)</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_core</a> &#x00BB; Proof_core</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_core.Proof_core</span></code></h1><p>Core proofs for SMT and congruence closure.</p></header><div class="odoc-content"><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 value" id="val-lemma_cc" class="anchored"><a href="#val-lemma_cc" class="anchor"></a><code><span><span class="keyword">val</span> lemma_cc : <span><span><a href="#type-lit">lit</a> list</span> <span class="arrow">&#45;&gt;</span></span> <a href="../Proof_term/index.html#type-t">Proof_term.t</a></span></code></div><div class="spec-doc"><p><code>lemma_cc proof lits</code> asserts that <code>lits</code> form a tautology for the theory of uninterpreted functions.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-define_term" class="anchored"><a href="#val-define_term" class="anchor"></a><code><span><span class="keyword">val</span> define_term :
<span><a href="../../Sidekick_core_logic/Term/index.html#type-t">Sidekick_core_logic.Term.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../Sidekick_core_logic/Term/index.html#type-t">Sidekick_core_logic.Term.t</a> <span class="arrow">&#45;&gt;</span></span>
<a href="../Proof_term/index.html#type-t">Proof_term.t</a></span></code></div><div class="spec-doc"><p><code>define_term cst u proof</code> defines the new constant <code>cst</code> as being equal to <code>u</code>. The result is a proof of the clause <code>cst = u</code></p></div></div><div class="odoc-spec"><div class="spec value" id="val-proof_p1" class="anchored"><a href="#val-proof_p1" class="anchor"></a><code><span><span class="keyword">val</span> proof_p1 : <span><a href="../Proof_term/index.html#type-step_id">Proof_term.step_id</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../Proof_term/index.html#type-step_id">Proof_term.step_id</a> <span class="arrow">&#45;&gt;</span></span> <a href="../Proof_term/index.html#type-t">Proof_term.t</a></span></code></div><div class="spec-doc"><p><code>proof_p1 p1 p2</code>, where <code>p1</code> proves the unit clause <code>t=u</code> (t:bool) and <code>p2</code> proves <code>C \/ t</code>, is the Proof_term.t that produces <code>C \/ u</code>, i.e unit paramodulation.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-proof_r1" class="anchored"><a href="#val-proof_r1" class="anchor"></a><code><span><span class="keyword">val</span> proof_r1 : <span><a href="../Proof_term/index.html#type-step_id">Proof_term.step_id</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../Proof_term/index.html#type-step_id">Proof_term.step_id</a> <span class="arrow">&#45;&gt;</span></span> <a href="../Proof_term/index.html#type-t">Proof_term.t</a></span></code></div><div class="spec-doc"><p><code>proof_r1 p1 p2</code>, where <code>p1</code> proves the unit clause <code>|- t</code> (t:bool) and <code>p2</code> proves <code>C \/ ¬t</code>, is the Proof_term.t that produces <code>C \/ u</code>, i.e unit resolution.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-proof_res" class="anchored"><a href="#val-proof_res" class="anchor"></a><code><span><span class="keyword">val</span> proof_res :
<span>pivot:<a href="../../Sidekick_core_logic/Term/index.html#type-t">Sidekick_core_logic.Term.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../Proof_term/index.html#type-step_id">Proof_term.step_id</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../Proof_term/index.html#type-step_id">Proof_term.step_id</a> <span class="arrow">&#45;&gt;</span></span>
<a href="../Proof_term/index.html#type-t">Proof_term.t</a></span></code></div><div class="spec-doc"><p><code>proof_res ~pivot p1 p2</code>, where <code>p1</code> proves the clause <code>|- C \/ l</code> and <code>p2</code> proves <code>D \/ ¬l</code>, where <code>l</code> is either <code>pivot</code> or <code>¬pivot</code>, is the Proof_term.t that produces <code>C \/ D</code>, i.e boolean resolution.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-with_defs" class="anchored"><a href="#val-with_defs" class="anchor"></a><code><span><span class="keyword">val</span> with_defs : <span><a href="../Proof_term/index.html#type-step_id">Proof_term.step_id</a> <span class="arrow">&#45;&gt;</span></span> <span><span><a href="../Proof_term/index.html#type-step_id">Proof_term.step_id</a> list</span> <span class="arrow">&#45;&gt;</span></span> <a href="../Proof_term/index.html#type-t">Proof_term.t</a></span></code></div><div class="spec-doc"><p><code>with_defs pr defs</code> specifies that <code>pr</code> is valid only in a context where the definitions <code>defs</code> are present.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-lemma_true" class="anchored"><a href="#val-lemma_true" class="anchor"></a><code><span><span class="keyword">val</span> lemma_true : <span><a href="../../Sidekick_core_logic/Term/index.html#type-t">Sidekick_core_logic.Term.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="../Proof_term/index.html#type-t">Proof_term.t</a></span></code></div><div class="spec-doc"><p><code>lemma_true (true) p</code> asserts the clause <code>(true)</code></p></div></div><div class="odoc-spec"><div class="spec value" id="val-lemma_preprocess" class="anchored"><a href="#val-lemma_preprocess" class="anchor"></a><code><span><span class="keyword">val</span> lemma_preprocess :
<span><a href="../../Sidekick_core_logic/Term/index.html#type-t">Sidekick_core_logic.Term.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../Sidekick_core_logic/Term/index.html#type-t">Sidekick_core_logic.Term.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>using:<span><a href="../Proof_term/index.html#type-step_id">Proof_term.step_id</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<a href="../Proof_term/index.html#type-t">Proof_term.t</a></span></code></div><div class="spec-doc"><p><code>lemma_preprocess t u ~using p</code> asserts that <code>t = u</code> is a tautology and that <code>t</code> has been preprocessed into <code>u</code>.</p><p>The theorem <code>/\_{eqn in using} eqn |- t=u</code> is proved using congruence closure, and then resolved against the clauses <code>using</code> to obtain a unit equality.</p><p>From now on, <code>t</code> and <code>u</code> will be used interchangeably.</p><ul class="at-tags"><li class="returns"><span class="at-tag">returns</span> <p>a Proof_term.t ID for the clause <code>(t=u)</code>.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-lemma_rw_clause" class="anchored"><a href="#val-lemma_rw_clause" class="anchor"></a><code><span><span class="keyword">val</span> lemma_rw_clause :
<span><a href="../Proof_term/index.html#type-step_id">Proof_term.step_id</a> <span class="arrow">&#45;&gt;</span></span>
<span>res:<span><a href="#type-lit">lit</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span>using:<span><a href="../Proof_term/index.html#type-step_id">Proof_term.step_id</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<a href="../Proof_term/index.html#type-t">Proof_term.t</a></span></code></div><div class="spec-doc"><p><code>lemma_rw_clause prc ~res ~using</code>, where <code>prc</code> is the proof of <code>|- c</code>, uses the equations <code>|- p_i = q_i</code> from <code>using</code> to rewrite some literals of <code>c</code> into <code>res</code>. This is used to preprocess literals of a clause (using <a href="#val-lemma_preprocess"><code>lemma_preprocess</code></a> individually).</p></div></div></div></body></html>

View file

@ -1,5 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Proof_sat (sidekick.Sidekick_core.Proof_sat)</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_core</a> &#x00BB; Proof_sat</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_core.Proof_sat</span></code></h1><p>SAT-solver proof emission.</p></header><div class="odoc-content"><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 value" id="val-sat_input_clause" class="anchored"><a href="#val-sat_input_clause" class="anchor"></a><code><span><span class="keyword">val</span> sat_input_clause : <span><span><a href="#type-lit">lit</a> list</span> <span class="arrow">&#45;&gt;</span></span> <a href="../Proof_term/index.html#type-t">Proof_term.t</a></span></code></div><div class="spec-doc"><p>Emit an input clause.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-sat_redundant_clause" class="anchored"><a href="#val-sat_redundant_clause" class="anchor"></a><code><span><span class="keyword">val</span> sat_redundant_clause :
<span><span><a href="#type-lit">lit</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span>hyps:<span><a href="../Proof_term/index.html#type-step_id">Proof_term.step_id</a> <span class="xref-unresolved">Iter</span>.t</span> <span class="arrow">&#45;&gt;</span></span>
<a href="../Proof_term/index.html#type-t">Proof_term.t</a></span></code></div><div class="spec-doc"><p>Emit a clause deduced by the SAT solver, redundant wrt previous clauses. The clause must be RUP wrt <code>hyps</code>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-sat_unsat_core" class="anchored"><a href="#val-sat_unsat_core" class="anchor"></a><code><span><span class="keyword">val</span> sat_unsat_core : <span><span><a href="#type-lit">lit</a> list</span> <span class="arrow">&#45;&gt;</span></span> <a href="../Proof_term/index.html#type-t">Proof_term.t</a></span></code></div><div class="spec-doc"><p>TODO: is this relevant here?</p></div></div></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Proof_step (sidekick.Sidekick_core.Proof_step)</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_core</a> &#x00BB; Proof_step</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_core.Proof_step</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type" id="type-id" class="anchored"><a href="#type-id" class="anchor"></a><code><span><span class="keyword">type</span> id</span><span> = int32</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>int32 <span class="xref-unresolved">Sidekick_util</span>.Fmt.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

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>DYN (sidekick.Sidekick_core.Proof_trace.DYN)</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_core</a> &#x00BB; <a href="../index.html">Proof_trace</a> &#x00BB; DYN</nav><header class="odoc-preamble"><h1>Module type <code><span>Proof_trace.DYN</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value" id="val-enabled" class="anchored"><a href="#val-enabled" class="anchor"></a><code><span><span class="keyword">val</span> enabled : <span>unit <span class="arrow">&#45;&gt;</span></span> bool</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-add_step" class="anchored"><a href="#val-add_step" class="anchor"></a><code><span><span class="keyword">val</span> add_step : <span><a href="../../Proof_term/index.html#type-delayed">Proof_term.delayed</a> <span class="arrow">&#45;&gt;</span></span> <a href="../index.html#type-step_id">step_id</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-add_unsat" class="anchored"><a href="#val-add_unsat" class="anchor"></a><code><span><span class="keyword">val</span> add_unsat : <span><a href="../index.html#type-step_id">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-delete" class="anchored"><a href="#val-delete" class="anchor"></a><code><span><span class="keyword">val</span> delete : <span><a href="../index.html#type-step_id">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-close" class="anchored"><a href="#val-close" class="anchor"></a><code><span><span class="keyword">val</span> close : <span>unit <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div></div></body></html>

View file

@ -0,0 +1,6 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Ref (sidekick.Sidekick_core.Term.Ref)</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_core</a> &#x00BB; <a href="../index.html">Term</a> &#x00BB; Ref</nav><header class="odoc-preamble"><h1>Module <code><span>Term.Ref</span></code></h1><p>Term reference</p></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> = <a href="../../../Sidekick_trace/index.html#type-entry_id">Sidekick_trace.entry_id</a></span></code></div><div class="spec-doc"><p>Reference to another term, by a unique ID in a trace.</p><p>This allows a trace to contain terms with explicit references to other terms, but where these references have to be followed explicitly. Thus, each term can be deserialized separately.</p><p>For example, a proof term for a given lemma might use references to previous lemmas, instead of their direct proof terms; this allows a checker or proof GUI to only read this particular lemma's proof into a term.</p></div></div><div class="odoc-spec"><div class="spec type extension" id="extension-decl-Ref" class="anchored"><a href="#extension-decl-Ref" class="anchor"></a><code><span><span class="keyword">type</span> <a href="../../../Sidekick_core_logic/Const/index.html#type-view">Sidekick_core_logic.Const.view</a> += </span></code><table><tr id="extension-Ref" class="anchored"><td class="def extension"><a href="#extension-Ref" class="anchor"></a><code><span>| </span><span><span class="extension">Ref</span> <span class="keyword">of</span> <a href="#type-t">t</a></span></code></td></tr></table></div></div><div class="odoc-spec"><div class="spec value" id="val-ref" class="anchored"><a href="#val-ref" class="anchor"></a><code><span><span class="keyword">val</span> ref :
<span><a href="../../../Sidekick_core_logic/Term/index.html#type-store">Sidekick_core_logic.Term.store</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span>
<span>ty:<a href="../../../Sidekick_core_logic/Term/index.html#type-t">Sidekick_core_logic.Term.t</a> <span class="arrow">&#45;&gt;</span></span>
<a href="../../../Sidekick_core_logic/Term/index.html#type-t">Sidekick_core_logic.Term.t</a></span></code></div><div class="spec-doc"><p><code>ref tst id ~ty</code> is the reference to entry <code>id</code> in a trace, which must be a term of type <code>ty</code>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-as_ref" class="anchored"><a href="#val-as_ref" class="anchor"></a><code><span><span class="keyword">val</span> as_ref : <span><a href="../../../Sidekick_core_logic/Term/index.html#type-t">Sidekick_core_logic.Term.t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> option</span></span></code></div><div class="spec-doc"><p><code>as_ref (ref tst id ~ty)</code> is <code>Some id</code>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-const_decoders" class="anchored"><a href="#val-const_decoders" class="anchor"></a><code><span><span class="keyword">val</span> const_decoders : <a href="../../../Sidekick_core_logic/Const/index.html#type-decoders">Sidekick_core_logic.Const.decoders</a></span></code></div></div></div></body></html>

View file

@ -3,11 +3,11 @@
<span>?const_decoders:<span><a href="#type-const_decoders">const_decoders</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span>source:<a href="../../../Sidekick_trace/Source/index.html#type-t">Tr.Source.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../Sidekick_core_logic/Term/index.html#type-store">Sidekick_core_logic.Term.store</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-add_const_decoders" class="anchored"><a href="#val-add_const_decoders" class="anchor"></a><code><span><span class="keyword">val</span> add_const_decoders : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-const_decoders">const_decoders</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-read_term" class="anchored"><a href="#val-read_term" class="anchor"></a><code><span><span class="keyword">val</span> read_term :
<a href="#type-t">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-store" class="anchored"><a href="#val-store" class="anchor"></a><code><span><span class="keyword">val</span> store : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <a href="../../../Sidekick_core_logic/Term/index.html#type-store">Sidekick_core_logic.Term.store</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-add_const_decoders" class="anchored"><a href="#val-add_const_decoders" class="anchor"></a><code><span><span class="keyword">val</span> add_const_decoders : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-const_decoders">const_decoders</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-read_term" class="anchored"><a href="#val-read_term" class="anchor"></a><code><span><span class="keyword">val</span> read_term :
<span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="#type-term_ref">term_ref</a> <span class="arrow">&#45;&gt;</span></span>
<span><span>( <a href="../../../Sidekick_core_logic/Term/index.html#type-t">Sidekick_core_logic.Term.t</a>, string )</span> <span class="xref-unresolved">Stdlib</span>.result</span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-read_term_err" class="anchored"><a href="#val-read_term_err" class="anchor"></a><code><span><span class="keyword">val</span> read_term_err :
<span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="#type-term_ref">term_ref</a> <span class="arrow">&#45;&gt;</span></span>
<span><span>( <a href="../../../Sidekick_core_logic/Term/index.html#type-t">Sidekick_core_logic.Term.t</a>, <a href="../../../Sidekick_util/Ser_decode/Error/index.html#type-t">Sidekick_util.Ser_decode.Error.t</a> )</span>
<span class="xref-unresolved">Stdlib</span>.result</span></span></code></div></div></div></body></html>
<span class="xref-unresolved">Stdlib</span>.result</span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-read_term_exn" class="anchored"><a href="#val-read_term_exn" class="anchor"></a><code><span><span class="keyword">val</span> read_term_exn : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-term_ref">term_ref</a> <span class="arrow">&#45;&gt;</span></span> <a href="../../../Sidekick_core_logic/Term/index.html#type-t">Sidekick_core_logic.Term.t</a></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Error.Error</span> <p>if it fails</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-deref_term" class="anchored"><a href="#val-deref_term" class="anchor"></a><code><span><span class="keyword">val</span> deref_term : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../../../Sidekick_core_logic/Term/index.html#type-t">Sidekick_core_logic.Term.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="../../../Sidekick_core_logic/Term/index.html#type-t">Sidekick_core_logic.Term.t</a></span></code></div><div class="spec-doc"><p><code>deref_term reader t</code> dereferences the root node of <code>t</code>. If <code>t</code> is <code>Ref id</code>, this returns the term at <code>id</code> instead.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Error.Error</span> <p>if it fails</p></li></ul></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

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,17 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Core_rules (sidekick.Sidekick_proof.Core_rules)</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_proof</a> &#x00BB; Core_rules</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_proof.Core_rules</span></code></h1><p>Core proofs for SMT and congruence closure.</p></header><div class="odoc-content"><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="../../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-lemma_cc" class="anchored"><a href="#val-lemma_cc" class="anchor"></a><code><span><span class="keyword">val</span> lemma_cc : <span><span><a href="#type-lit">lit</a> list</span> <span class="arrow">&#45;&gt;</span></span> <a href="../Pterm/index.html#type-t">Pterm.t</a></span></code></div><div class="spec-doc"><p><code>lemma_cc proof lits</code> asserts that <code>lits</code> form a tautology for the theory of uninterpreted functions.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-define_term" class="anchored"><a href="#val-define_term" class="anchor"></a><code><span><span class="keyword">val</span> define_term :
<span><a href="../../Sidekick_core_logic/Term/index.html#type-t">Sidekick_core_logic.Term.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../Sidekick_core_logic/Term/index.html#type-t">Sidekick_core_logic.Term.t</a> <span class="arrow">&#45;&gt;</span></span>
<a href="../Pterm/index.html#type-t">Pterm.t</a></span></code></div><div class="spec-doc"><p><code>define_term cst u proof</code> defines the new constant <code>cst</code> as being equal to <code>u</code>. The result is a proof of the clause <code>cst = u</code></p></div></div><div class="odoc-spec"><div class="spec value" id="val-proof_p1" class="anchored"><a href="#val-proof_p1" class="anchor"></a><code><span><span class="keyword">val</span> proof_p1 : <span><a href="../Pterm/index.html#type-step_id">Pterm.step_id</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../Pterm/index.html#type-step_id">Pterm.step_id</a> <span class="arrow">&#45;&gt;</span></span> <a href="../Pterm/index.html#type-t">Pterm.t</a></span></code></div><div class="spec-doc"><p><code>proof_p1 p1 p2</code>, where <code>p1</code> proves the unit clause <code>t=u</code> (t:bool) and <code>p2</code> proves <code>C \/ t</code>, is the Pterm.t that produces <code>C \/ u</code>, i.e unit paramodulation.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-proof_r1" class="anchored"><a href="#val-proof_r1" class="anchor"></a><code><span><span class="keyword">val</span> proof_r1 : <span><a href="../Pterm/index.html#type-step_id">Pterm.step_id</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../Pterm/index.html#type-step_id">Pterm.step_id</a> <span class="arrow">&#45;&gt;</span></span> <a href="../Pterm/index.html#type-t">Pterm.t</a></span></code></div><div class="spec-doc"><p><code>proof_r1 p1 p2</code>, where <code>p1</code> proves the unit clause <code>|- t</code> (t:bool) and <code>p2</code> proves <code>C \/ ¬t</code>, is the Pterm.t that produces <code>C \/ u</code>, i.e unit resolution.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-proof_res" class="anchored"><a href="#val-proof_res" class="anchor"></a><code><span><span class="keyword">val</span> proof_res :
<span>pivot:<a href="../../Sidekick_core_logic/Term/index.html#type-t">Sidekick_core_logic.Term.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../Pterm/index.html#type-step_id">Pterm.step_id</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../Pterm/index.html#type-step_id">Pterm.step_id</a> <span class="arrow">&#45;&gt;</span></span>
<a href="../Pterm/index.html#type-t">Pterm.t</a></span></code></div><div class="spec-doc"><p><code>proof_res ~pivot p1 p2</code>, where <code>p1</code> proves the clause <code>|- C \/ l</code> and <code>p2</code> proves <code>D \/ ¬l</code>, where <code>l</code> is either <code>pivot</code> or <code>¬pivot</code>, is the Pterm.t that produces <code>C \/ D</code>, i.e boolean resolution.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-with_defs" class="anchored"><a href="#val-with_defs" class="anchor"></a><code><span><span class="keyword">val</span> with_defs : <span><a href="../Pterm/index.html#type-step_id">Pterm.step_id</a> <span class="arrow">&#45;&gt;</span></span> <span><span><a href="../Pterm/index.html#type-step_id">Pterm.step_id</a> list</span> <span class="arrow">&#45;&gt;</span></span> <a href="../Pterm/index.html#type-t">Pterm.t</a></span></code></div><div class="spec-doc"><p><code>with_defs pr defs</code> specifies that <code>pr</code> is valid only in a context where the definitions <code>defs</code> are present.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-lemma_true" class="anchored"><a href="#val-lemma_true" class="anchor"></a><code><span><span class="keyword">val</span> lemma_true : <span><a href="../../Sidekick_core_logic/Term/index.html#type-t">Sidekick_core_logic.Term.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="../Pterm/index.html#type-t">Pterm.t</a></span></code></div><div class="spec-doc"><p><code>lemma_true (true) p</code> asserts the clause <code>(true)</code></p></div></div><div class="odoc-spec"><div class="spec value" id="val-lemma_preprocess" class="anchored"><a href="#val-lemma_preprocess" class="anchor"></a><code><span><span class="keyword">val</span> lemma_preprocess :
<span><a href="../../Sidekick_core_logic/Term/index.html#type-t">Sidekick_core_logic.Term.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../Sidekick_core_logic/Term/index.html#type-t">Sidekick_core_logic.Term.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>using:<span><a href="../Pterm/index.html#type-step_id">Pterm.step_id</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<a href="../Pterm/index.html#type-t">Pterm.t</a></span></code></div><div class="spec-doc"><p><code>lemma_preprocess t u ~using p</code> asserts that <code>t = u</code> is a tautology and that <code>t</code> has been preprocessed into <code>u</code>.</p><p>The theorem <code>/\_{eqn in using} eqn |- t=u</code> is proved using congruence closure, and then resolved against the clauses <code>using</code> to obtain a unit equality.</p><p>From now on, <code>t</code> and <code>u</code> will be used interchangeably.</p><ul class="at-tags"><li class="returns"><span class="at-tag">returns</span> <p>a Pterm.t ID for the clause <code>(t=u)</code>.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-lemma_rw_clause" class="anchored"><a href="#val-lemma_rw_clause" class="anchor"></a><code><span><span class="keyword">val</span> lemma_rw_clause :
<span><a href="../Pterm/index.html#type-step_id">Pterm.step_id</a> <span class="arrow">&#45;&gt;</span></span>
<span>res:<span><a href="#type-lit">lit</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span>using:<span><a href="../Pterm/index.html#type-step_id">Pterm.step_id</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<a href="../Pterm/index.html#type-t">Pterm.t</a></span></code></div><div class="spec-doc"><p><code>lemma_rw_clause prc ~res ~using</code>, where <code>prc</code> is the proof of <code>|- c</code>, uses the equations <code>|- p_i = q_i</code> from <code>using</code> to rewrite some literals of <code>c</code> into <code>res</code>. This is used to preprocess literals of a clause (using <a href="#val-lemma_preprocess"><code>lemma_preprocess</code></a> individually).</p></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>Sat_rules (sidekick.Sidekick_proof.Sat_rules)</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_proof</a> &#x00BB; Sat_rules</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_proof.Sat_rules</span></code></h1><p>SAT-solver proof emission.</p></header><div class="odoc-content"><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="../../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-sat_input_clause" class="anchored"><a href="#val-sat_input_clause" class="anchor"></a><code><span><span class="keyword">val</span> sat_input_clause : <span><span><a href="#type-lit">lit</a> list</span> <span class="arrow">&#45;&gt;</span></span> <a href="../Pterm/index.html#type-t">Pterm.t</a></span></code></div><div class="spec-doc"><p>Emit an input clause.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-sat_redundant_clause" class="anchored"><a href="#val-sat_redundant_clause" class="anchor"></a><code><span><span class="keyword">val</span> sat_redundant_clause : <span><span><a href="#type-lit">lit</a> list</span> <span class="arrow">&#45;&gt;</span></span> <span>hyps:<span><a href="../Step/index.html#type-id">Step.id</a> <span class="xref-unresolved">Iter</span>.t</span> <span class="arrow">&#45;&gt;</span></span> <a href="../Pterm/index.html#type-t">Pterm.t</a></span></code></div><div class="spec-doc"><p>Emit a clause deduced by the SAT solver, redundant wrt previous clauses. The clause must be RUP wrt <code>hyps</code>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-sat_unsat_core" class="anchored"><a href="#val-sat_unsat_core" class="anchor"></a><code><span><span class="keyword">val</span> sat_unsat_core : <span><span><a href="#type-lit">lit</a> list</span> <span class="arrow">&#45;&gt;</span></span> <a href="../Pterm/index.html#type-t">Pterm.t</a></span></code></div><div class="spec-doc"><p>TODO: is this relevant here?</p></div></div></div></body></html>

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Step (sidekick.Sidekick_proof.Step)</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_proof</a> &#x00BB; Step</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_proof.Step</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type" id="type-id" class="anchored"><a href="#type-id" class="anchor"></a><code><span><span class="keyword">type</span> id</span><span> = <a href="../../Sidekick_trace/Entry_id/index.html#type-t">Sidekick_trace.Entry_id.t</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-equal" class="anchored"><a href="#val-equal" class="anchor"></a><code><span><span class="keyword">val</span> equal : <span><a href="#type-id">id</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-id">id</a> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-dummy" class="anchored"><a href="#val-dummy" class="anchor"></a><code><span><span class="keyword">val</span> dummy : <a href="#type-id">id</a></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-id">id</a> <span class="xref-unresolved">Sidekick_core</span>.Fmt.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,6 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Trace_reader (sidekick.Sidekick_proof.Trace_reader)</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_proof</a> &#x00BB; Trace_reader</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_proof.Trace_reader</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec module" id="module-Tr" class="anchored"><a href="#module-Tr" class="anchor"></a><code><span><span class="keyword">module</span> Tr</span><span> = <a href="../../Sidekick_trace/index.html">Sidekick_trace</a></span></code></div></div><div class="odoc-spec"><div class="spec module" id="module-Dec" class="anchored"><a href="#module-Dec" class="anchor"></a><code><span><span class="keyword">module</span> Dec</span><span> = <a href="../../Sidekick_util/Ser_decode/index.html">Sidekick_util.Ser_decode</a></span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-step_id" class="anchored"><a href="#type-step_id" class="anchor"></a><code><span><span class="keyword">type</span> step_id</span><span> = <a href="../Step/index.html#type-id">Step.id</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></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>src:<a href="../../Sidekick_trace/Source/index.html#type-t">Tr.Source.t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Sidekick_core/Term/Trace_reader/index.html#type-t">Sidekick_core.Term.Trace_reader.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-read_step" class="anchored"><a href="#val-read_step" class="anchor"></a><code><span><span class="keyword">val</span> read_step :
<span>?fix:bool <span class="arrow">&#45;&gt;</span></span>
<span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="#type-step_id">step_id</a> <span class="arrow">&#45;&gt;</span></span>
<span><span>( <a href="../Pterm/index.html#type-t">Pterm.t</a>, <a href="../../Sidekick_util/Ser_decode/Error/index.html#type-t">Dec.Error.t</a> )</span> <span class="xref-unresolved">Stdlib</span>.result</span></span></code></div><div class="spec-doc"><p>Read a step from the source at the given step id, using the trace reader.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">fix</span> <p>if true, dereferences in a loop so the returned proof term is not a Ref.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-dec_step_id" class="anchored"><a href="#val-dec_step_id" class="anchor"></a><code><span><span class="keyword">val</span> dec_step_id : <span>?fix:bool <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../Pterm/index.html#type-t">Pterm.t</a> <a href="../../Sidekick_util/Ser_decode/index.html#type-t">Dec.t</a></span></span></code></div><div class="spec-doc"><p>Reads an integer, decodes the corresponding entry</p></div></div></div></body></html>

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>concrete (sidekick.Sidekick_proof.Tracer.concrete)</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_proof</a> &#x00BB; <a href="../index.html">Tracer</a> &#x00BB; concrete</nav><header class="odoc-preamble"><h1>Class <code><span>Tracer.concrete</span></code></h1><p>Concrete implementation of <code>t</code></p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec inherit"><code><span><span class="keyword">inherit</span> <a href="../../../Sidekick_core/Term/Tracer/class-type-t/index.html">Sidekick_core.Term.Tracer.t</a></span></code></div></div><div class="odoc-spec"><div class="spec method" id="method-proof_enabled" class="anchored"><a href="#method-proof_enabled" class="anchor"></a><code><span><span class="keyword">method</span> proof_enabled : bool</span></code></div><div class="spec-doc"><p>If proof tracing enabled?</p></div></div><div class="odoc-spec"><div class="spec method" id="method-proof_enable" class="anchored"><a href="#method-proof_enable" class="anchor"></a><code><span><span class="keyword">method</span> proof_enable : <span>bool <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Enable/disable proof tracing, if supported</p></div></div><div class="odoc-spec"><div class="spec method" id="method-emit_proof_step" class="anchored"><a href="#method-emit_proof_step" class="anchor"></a><code><span><span class="keyword">method</span> emit_proof_step : <span><span class="xref-unresolved">Sidekick_proof__Pterm.delayed</span> <span class="arrow">&#45;&gt;</span></span> <a href="../index.html#type-step_id">step_id</a></span></code></div><div class="spec-doc"><p>Create a new step in the trace.</p></div></div><div class="odoc-spec"><div class="spec method" id="method-emit_proof_delete" class="anchored"><a href="#method-emit_proof_delete" class="anchor"></a><code><span><span class="keyword">method</span> emit_proof_delete : <span><a href="../index.html#type-step_id">step_id</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Forget a step that won't be used in the rest of the trace. Only useful for performance/memory considerations.</p></div></div></div></body></html>

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>dummy (sidekick.Sidekick_proof.Tracer.dummy)</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_proof</a> &#x00BB; <a href="../index.html">Tracer</a> &#x00BB; dummy</nav><header class="odoc-preamble"><h1>Class <code><span>Tracer.dummy</span></code></h1><p>Dummy proof trace, logs nothing.</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec inherit"><code><span><span class="keyword">inherit</span> <a href="../../../Sidekick_core/Term/Tracer/class-type-t/index.html">Sidekick_core.Term.Tracer.t</a></span></code></div></div><div class="odoc-spec"><div class="spec method" id="method-proof_enabled" class="anchored"><a href="#method-proof_enabled" class="anchor"></a><code><span><span class="keyword">method</span> proof_enabled : bool</span></code></div><div class="spec-doc"><p>If proof tracing enabled?</p></div></div><div class="odoc-spec"><div class="spec method" id="method-proof_enable" class="anchored"><a href="#method-proof_enable" class="anchor"></a><code><span><span class="keyword">method</span> proof_enable : <span>bool <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Enable/disable proof tracing, if supported</p></div></div><div class="odoc-spec"><div class="spec method" id="method-emit_proof_step" class="anchored"><a href="#method-emit_proof_step" class="anchor"></a><code><span><span class="keyword">method</span> emit_proof_step : <span><span class="xref-unresolved">Sidekick_proof__Pterm.delayed</span> <span class="arrow">&#45;&gt;</span></span> <a href="../index.html#type-step_id">step_id</a></span></code></div><div class="spec-doc"><p>Create a new step in the trace.</p></div></div><div class="odoc-spec"><div class="spec method" id="method-emit_proof_delete" class="anchored"><a href="#method-emit_proof_delete" class="anchor"></a><code><span><span class="keyword">method</span> emit_proof_delete : <span><a href="../index.html#type-step_id">step_id</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Forget a step that won't be used in the rest of the trace. Only useful for performance/memory considerations.</p></div></div></div></body></html>

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>t (sidekick.Sidekick_proof.Tracer.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_proof</a> &#x00BB; <a href="../index.html">Tracer</a> &#x00BB; t</nav><header class="odoc-preamble"><h1>Class type <code><span>Tracer.t</span></code></h1><p>A proof tracer.</p><p>A proof tracer builds a log of all deductive steps taken by the solver, so we can later reconstruct a certificate for proof-checking.</p><p>Each step in the proof trace should be a <b>valid lemma</b> (of its theory) or a <b>valid consequence</b> of previous steps.</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec inherit"><code><span><span class="keyword">inherit</span> <a href="../../../Sidekick_core/Term/Tracer/class-type-t/index.html">Sidekick_core.Term.Tracer.t</a></span></code></div></div><div class="odoc-spec"><div class="spec method" id="method-proof_enabled" class="anchored"><a href="#method-proof_enabled" class="anchor"></a><code><span><span class="keyword">method</span> proof_enabled : bool</span></code></div><div class="spec-doc"><p>If proof tracing enabled?</p></div></div><div class="odoc-spec"><div class="spec method" id="method-proof_enable" class="anchored"><a href="#method-proof_enable" class="anchor"></a><code><span><span class="keyword">method</span> proof_enable : <span>bool <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Enable/disable proof tracing, if supported</p></div></div><div class="odoc-spec"><div class="spec method" id="method-emit_proof_step" class="anchored"><a href="#method-emit_proof_step" class="anchor"></a><code><span><span class="keyword">method</span> emit_proof_step : <span><span class="xref-unresolved">Sidekick_proof__Pterm.delayed</span> <span class="arrow">&#45;&gt;</span></span> <a href="../index.html#type-step_id">step_id</a></span></code></div><div class="spec-doc"><p>Create a new step in the trace.</p></div></div><div class="odoc-spec"><div class="spec method" id="method-emit_proof_delete" class="anchored"><a href="#method-emit_proof_delete" class="anchor"></a><code><span><span class="keyword">method</span> emit_proof_delete : <span><a href="../index.html#type-step_id">step_id</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Forget a step that won't be used in the rest of the trace. Only useful for performance/memory considerations.</p></div></div></div></body></html>

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Tracer (sidekick.Sidekick_proof.Tracer)</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_proof</a> &#x00BB; Tracer</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_proof.Tracer</span></code></h1><p>Proof traces.</p><p>A proof trace is a log of all the deductive reasoning steps made by the SMT solver and other reasoning components. It essentially stores a DAG of all these steps, where each step points (via <a href="#type-step_id"><code>step_id</code></a>) to its premises.</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type" id="type-step_id" class="anchored"><a href="#type-step_id" class="anchor"></a><code><span><span class="keyword">type</span> step_id</span><span> = <a href="../Step/index.html#type-id">Step.id</a></span></code></div><div class="spec-doc"><p>Identifier for a tracing step (like a unique ID for a clause previously added/proved)</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> = <span class="keyword">object</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>A proof tracer.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-enabled" class="anchored"><a href="#val-enabled" class="anchor"></a><code><span><span class="keyword">val</span> enabled : <span><a href="class-type-t/index.html">t</a> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><p>Is proof tracing enabled?</p></div></div><div class="odoc-spec"><div class="spec value" id="val-enable" class="anchored"><a href="#val-enable" class="anchor"></a><code><span><span class="keyword">val</span> enable : <span><a href="class-type-t/index.html">t</a> <span class="arrow">&#45;&gt;</span></span> <span>bool <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Enable proof tracing</p></div></div><div class="odoc-spec"><div class="spec value" id="val-add_step" class="anchored"><a href="#val-add_step" class="anchor"></a><code><span><span class="keyword">val</span> add_step : <span><a href="class-type-t/index.html">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../Pterm/index.html#type-delayed">Pterm.delayed</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-step_id">step_id</a></span></code></div><div class="spec-doc"><p>Create a new step in the trace.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-delete" class="anchored"><a href="#val-delete" class="anchor"></a><code><span><span class="keyword">val</span> delete : <span><a href="class-type-t/index.html">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-step_id">step_id</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Forget a step that won't be used in the rest of the trace. Only useful for performance/memory considerations.</p></div></div><div class="odoc-spec"><div class="spec class" id="class-dummy" class="anchored"><a href="#class-dummy" class="anchor"></a><code><span><span class="keyword">class</span> </span><span><a href="class-dummy/index.html">dummy</a></span><span> : <a href="class-type-t/index.html">t</a></span></code></div><div class="spec-doc"><p>Dummy proof trace, logs nothing.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-dummy" class="anchored"><a href="#val-dummy" class="anchor"></a><code><span><span class="keyword">val</span> dummy : <a href="class-type-t/index.html">t</a></span></code></div></div><div class="odoc-spec"><div class="spec class" id="class-concrete" class="anchored"><a href="#class-concrete" class="anchor"></a><code><span><span class="keyword">class</span> </span><span><a href="class-concrete/index.html">concrete</a></span><span> : <span>sink:<a href="../../Sidekick_trace/Sink/index.html#type-t">Sidekick_trace.Sink.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="class-type-t/index.html">t</a></span></code></div><div class="spec-doc"><p>Concrete implementation of <code>t</code></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_proof (sidekick.Sidekick_proof)</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_proof</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_proof</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec module" id="module-Step" class="anchored"><a href="#module-Step" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Step/index.html">Step</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-Step_vec" class="anchored"><a href="#module-Step_vec" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Step_vec/index.html">Step_vec</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>A vector indexed by steps.</p></div></div><div class="odoc-spec"><div class="spec module" id="module-Sat_rules" class="anchored"><a href="#module-Sat_rules" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Sat_rules/index.html">Sat_rules</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>SAT-solver proof emission.</p></div></div><div class="odoc-spec"><div class="spec module" id="module-Core_rules" class="anchored"><a href="#module-Core_rules" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Core_rules/index.html">Core_rules</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Core proofs for SMT and congruence closure.</p></div></div><div class="odoc-spec"><div class="spec module" id="module-Pterm" class="anchored"><a href="#module-Pterm" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Pterm/index.html">Pterm</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Proof terms.</p></div></div><div class="odoc-spec"><div class="spec module" id="module-Tracer" class="anchored"><a href="#module-Tracer" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Tracer/index.html">Tracer</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Proof traces.</p></div></div><div class="odoc-spec"><div class="spec module" id="module-Trace_reader" class="anchored"><a href="#module-Trace_reader" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Trace_reader/index.html">Trace_reader</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-Arg" class="anchored"><a href="#module-Arg" class="anchor"></a><code><span><span class="keyword">module</span> Arg</span><span> = <span class="xref-unresolved">Stdlib</span>.Arg</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="Pterm/index.html#type-t">Pterm.t</a></span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-term_ref" class="anchored"><a href="#type-term_ref" class="anchor"></a><code><span><span class="keyword">type</span> term_ref</span><span> = <a href="Step/index.html#type-id">Step.id</a></span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-step_id" class="anchored"><a href="#type-step_id" class="anchor"></a><code><span><span class="keyword">type</span> step_id</span><span> = <a href="Step/index.html#type-id">Step.id</a></span></code></div></div></div></body></html>

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,5 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>dummy (sidekick.Sidekick_sat.Tracer.dummy)</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_sat</a> &#x00BB; <a href="../index.html">Tracer</a> &#x00BB; dummy</nav><header class="odoc-preamble"><h1>Class <code><span>Tracer.dummy</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec inherit"><code><span><span class="keyword">inherit</span> <a href="../../../Sidekick_proof/Tracer/class-type-t/index.html">Proof.Tracer.t</a></span></code></div></div><div class="odoc-spec"><div class="spec method" id="method-sat_assert_clause" class="anchored"><a href="#method-sat_assert_clause" class="anchor"></a><code><span><span class="keyword">method</span> sat_assert_clause : <span>id:int <span class="arrow">&#45;&gt;</span></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 class="arrow">&#45;&gt;</span></span>
<span><a href="../../../Sidekick_proof/Step/index.html#type-id">Proof.Step.id</a> <span class="arrow">&#45;&gt;</span></span>
<a href="../../../Sidekick_trace/Entry_id/index.html#type-t">Tr.Entry_id.t</a></span></code></div></div><div class="odoc-spec"><div class="spec method" id="method-sat_delete_clause" class="anchored"><a href="#method-sat_delete_clause" class="anchor"></a><code><span><span class="keyword">method</span> sat_delete_clause : <span>id:int <span class="arrow">&#45;&gt;</span></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 class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec method" id="method-sat_unsat_clause" class="anchored"><a href="#method-sat_unsat_clause" class="anchor"></a><code><span><span class="keyword">method</span> sat_unsat_clause : <span>id:int <span class="arrow">&#45;&gt;</span></span> <a href="../../../Sidekick_trace/Entry_id/index.html#type-t">Tr.Entry_id.t</a></span></code></div></div><div class="odoc-spec"><div class="spec method" id="method-sat_encode_lit" class="anchored"><a href="#method-sat_encode_lit" class="anchor"></a><code><span><span class="keyword">method</span> sat_encode_lit : <span><a href="../../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="../../../Sidekick_util/Ser_value/index.html#type-t">Sidekick_util.Ser_value.t</a></span></code></div></div></div></body></html>

View file

@ -0,0 +1,5 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>t (sidekick.Sidekick_sat.Tracer.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_sat</a> &#x00BB; <a href="../index.html">Tracer</a> &#x00BB; t</nav><header class="odoc-preamble"><h1>Class type <code><span>Tracer.t</span></code></h1><p>Tracer for the SAT solver.</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec inherit"><code><span><span class="keyword">inherit</span> <a href="../../../Sidekick_proof/Tracer/class-type-t/index.html">Proof.Tracer.t</a></span></code></div></div><div class="odoc-spec"><div class="spec method" id="method-sat_assert_clause" class="anchored"><a href="#method-sat_assert_clause" class="anchor"></a><code><span><span class="keyword">method</span> sat_assert_clause : <span>id:int <span class="arrow">&#45;&gt;</span></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 class="arrow">&#45;&gt;</span></span>
<span><a href="../../../Sidekick_proof/Step/index.html#type-id">Proof.Step.id</a> <span class="arrow">&#45;&gt;</span></span>
<a href="../../../Sidekick_trace/Entry_id/index.html#type-t">Tr.Entry_id.t</a></span></code></div></div><div class="odoc-spec"><div class="spec method" id="method-sat_delete_clause" class="anchored"><a href="#method-sat_delete_clause" class="anchor"></a><code><span><span class="keyword">method</span> sat_delete_clause : <span>id:int <span class="arrow">&#45;&gt;</span></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 class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec method" id="method-sat_unsat_clause" class="anchored"><a href="#method-sat_unsat_clause" class="anchor"></a><code><span><span class="keyword">method</span> sat_unsat_clause : <span>id:int <span class="arrow">&#45;&gt;</span></span> <a href="../../../Sidekick_trace/Entry_id/index.html#type-t">Tr.Entry_id.t</a></span></code></div></div><div class="odoc-spec"><div class="spec method" id="method-sat_encode_lit" class="anchored"><a href="#method-sat_encode_lit" class="anchor"></a><code><span><span class="keyword">method</span> sat_encode_lit : <span><a href="../../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="../../../Sidekick_util/Ser_value/index.html#type-t">Sidekick_util.Ser_value.t</a></span></code></div></div></div></body></html>

View file

@ -0,0 +1,12 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Tracer (sidekick.Sidekick_sat.Tracer)</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_sat</a> &#x00BB; Tracer</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_sat.Tracer</span></code></h1><p>Tracer for clauses and literals</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec module" id="module-Tr" class="anchored"><a href="#module-Tr" class="anchor"></a><code><span><span class="keyword">module</span> Tr</span><span> = <a href="../../Sidekick_trace/index.html">Sidekick_trace</a></span></code></div></div><div class="odoc-spec"><div class="spec module" id="module-Proof" class="anchored"><a href="#module-Proof" class="anchor"></a><code><span><span class="keyword">module</span> Proof</span><span> = <a href="../../Sidekick_proof/index.html">Sidekick_proof</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 class="spec-doc"><p>Tracer for the SAT solver.</p></div></div><div class="odoc-spec"><div class="spec class" id="class-dummy" class="anchored"><a href="#class-dummy" class="anchor"></a><code><span><span class="keyword">class</span> </span><span><a href="class-dummy/index.html">dummy</a></span><span> : <a href="class-type-t/index.html">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-dummy" class="anchored"><a href="#val-dummy" class="anchor"></a><code><span><span class="keyword">val</span> dummy : <a href="class-type-t/index.html">t</a></span></code></div><div class="spec-doc"><p>Dummy tracer, recording nothing.</p></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>id:int <span class="arrow">&#45;&gt;</span></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 class="arrow">&#45;&gt;</span></span>
<span><a href="../../Sidekick_proof/Step/index.html#type-id">Proof.Step.id</a> <span class="arrow">&#45;&gt;</span></span>
<a href="../../Sidekick_trace/Entry_id/index.html#type-t">Tr.Entry_id.t</a></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>id:int <span class="arrow">&#45;&gt;</span></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 class="arrow">&#45;&gt;</span></span>
<span><a href="../../Sidekick_proof/Step/index.html#type-id">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-delete_clause" class="anchored"><a href="#val-delete_clause" class="anchor"></a><code><span><span class="keyword">val</span> delete_clause : <span><a href="class-type-t/index.html">t</a> <span class="arrow">&#45;&gt;</span></span> <span>id:int <span class="arrow">&#45;&gt;</span></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 class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-unsat_clause" class="anchored"><a href="#val-unsat_clause" class="anchor"></a><code><span><span class="keyword">val</span> unsat_clause : <span><a href="class-type-t/index.html">t</a> <span class="arrow">&#45;&gt;</span></span> <span>id:int <span class="arrow">&#45;&gt;</span></span> <a href="../../Sidekick_trace/Entry_id/index.html#type-t">Tr.Entry_id.t</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-unsat_clause'" class="anchored"><a href="#val-unsat_clause'" class="anchor"></a><code><span><span class="keyword">val</span> unsat_clause' : <span><a href="class-type-t/index.html">t</a> <span class="arrow">&#45;&gt;</span></span> <span>id:int <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-encode_lit" class="anchored"><a href="#val-encode_lit" class="anchor"></a><code><span><span class="keyword">val</span> encode_lit : <span><a href="class-type-t/index.html">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="../../Sidekick_util/Ser_value/index.html#type-t">Sidekick_util.Ser_value.t</a></span></code></div></div></div></body></html>

File diff suppressed because one or more lines are too long

View file

@ -1,9 +1,9 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ACTS (sidekick.Sidekick_sat.ACTS)</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_sat</a> &#x00BB; ACTS</nav><header class="odoc-preamble"><h1>Module type <code><span>Sidekick_sat.ACTS</span></code></h1><p>Actions available to the Plugin.</p><p>The plugin provides callbacks for the SAT solver to use. These callbacks are provided with a <code>(module ACTS)</code> so they can modify the SAT solver by adding new lemmas, raise conflicts, etc.</p></header><div class="odoc-content"><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 : <a href="../../Sidekick_core/Proof_trace/index.html#type-t">Sidekick_core.Proof_trace.t</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-iter_assumptions" class="anchored"><a href="#val-iter_assumptions" class="anchor"></a><code><span><span class="keyword">val</span> iter_assumptions : <span><span>( <span><a href="../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> <span class="arrow">&#45;&gt;</span></span> unit )</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Traverse the new assumptions on the boolean trail.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-eval_lit" class="anchored"><a href="#val-eval_lit" class="anchor"></a><code><span><span class="keyword">val</span> eval_lit : <span><a href="../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="../index.html#type-lbool">lbool</a></span></code></div><div class="spec-doc"><p>Obtain current value of the given literal</p></div></div><div class="odoc-spec"><div class="spec value" id="val-add_lit" class="anchored"><a href="#val-add_lit" class="anchor"></a><code><span><span class="keyword">val</span> add_lit : <span>?default_pol:bool <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Map the given lit to an internal atom, which will be decided by the SAT solver.</p></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 :
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ACTS (sidekick.Sidekick_sat.ACTS)</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_sat</a> &#x00BB; ACTS</nav><header class="odoc-preamble"><h1>Module type <code><span>Sidekick_sat.ACTS</span></code></h1><p>Actions available to the Plugin.</p><p>The plugin provides callbacks for the SAT solver to use. These callbacks are provided with a <code>(module ACTS)</code> so they can modify the SAT solver by adding new lemmas, raise conflicts, etc.</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value" id="val-proof_tracer" class="anchored"><a href="#val-proof_tracer" class="anchor"></a><code><span><span class="keyword">val</span> proof_tracer : <a href="../../Sidekick_proof/Tracer/class-type-t/index.html">Sidekick_proof.Tracer.t</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-iter_assumptions" class="anchored"><a href="#val-iter_assumptions" class="anchor"></a><code><span><span class="keyword">val</span> iter_assumptions : <span><span>( <span><a href="../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> <span class="arrow">&#45;&gt;</span></span> unit )</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Traverse the new assumptions on the boolean trail.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-eval_lit" class="anchored"><a href="#val-eval_lit" class="anchor"></a><code><span><span class="keyword">val</span> eval_lit : <span><a href="../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="../index.html#type-lbool">lbool</a></span></code></div><div class="spec-doc"><p>Obtain current value of the given literal</p></div></div><div class="odoc-spec"><div class="spec value" id="val-add_lit" class="anchored"><a href="#val-add_lit" class="anchor"></a><code><span><span class="keyword">val</span> add_lit : <span>?default_pol:bool <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Map the given lit to an internal atom, which will be decided by the SAT solver.</p></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>?keep:bool <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>
<span><a href="../../Sidekick_proof/Pterm/index.html#type-delayed">Sidekick_proof.Pterm.delayed</a> <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div><div class="spec-doc"><p>Add a clause to the solver.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">keep</span> <p>if true, the clause will be kept by the solver. Otherwise the solver is allowed to GC the clause and propose this partial model again.</p><ul><li><code>C_use_allocator alloc</code> puts the clause in the given allocator.</li></ul></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-raise_conflict" class="anchored"><a href="#val-raise_conflict" class="anchor"></a><code><span><span class="keyword">val</span> raise_conflict :
<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>
<span><a href="../../Sidekick_proof/Pterm/index.html#type-delayed">Sidekick_proof.Pterm.delayed</a> <span class="arrow">&#45;&gt;</span></span>
<span class="type-var">'b</span></span></code></div><div class="spec-doc"><p>Raise a conflict, yielding control back to the solver. The list of atoms must be a valid theory lemma that is false in the current trail.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-propagate" class="anchored"><a href="#val-propagate" class="anchor"></a><code><span><span class="keyword">val</span> propagate : <span><a href="../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../index.html#type-reason">reason</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Propagate a lit, i.e. the theory can evaluate the lit to be true (see the definition of <code>eval_res</code></p></div></div><div class="odoc-spec"><div class="spec value" id="val-add_decision_lit" class="anchored"><a href="#val-add_decision_lit" class="anchor"></a><code><span><span class="keyword">val</span> add_decision_lit : <span><a href="../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> <span class="arrow">&#45;&gt;</span></span> <span>bool <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Ask the SAT solver to decide on the given lit with given sign before it can answer <code>SAT</code>. The order of decisions is still unspecified. Useful for theory combination. This will be undone on backtracking.</p></div></div></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>UNSAT_STATE (sidekick.Sidekick_sat.UNSAT_STATE)</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_sat</a> &#x00BB; UNSAT_STATE</nav><header class="odoc-preamble"><h1>Module type <code><span>Sidekick_sat.UNSAT_STATE</span></code></h1><p>Solver in an &quot;UNSATISFIABLE&quot; state</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type" id="type-clause" class="anchored"><a href="#type-clause" class="anchor"></a><code><span><span class="keyword">type</span> clause</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-unsat_conflict" class="anchored"><a href="#val-unsat_conflict" class="anchor"></a><code><span><span class="keyword">val</span> unsat_conflict : <span>unit <span class="arrow">&#45;&gt;</span></span> <a href="#type-clause">clause</a></span></code></div><div class="spec-doc"><p>Returns the unsat clause found at the toplevel</p></div></div><div class="odoc-spec"><div class="spec value" id="val-unsat_assumptions" class="anchored"><a href="#val-unsat_assumptions" class="anchor"></a><code><span><span class="keyword">val</span> unsat_assumptions : <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></div><div class="spec-doc"><p>Subset of assumptions responsible for &quot;unsat&quot;</p></div></div><div class="odoc-spec"><div class="spec value" id="val-unsat_proof" class="anchored"><a href="#val-unsat_proof" class="anchor"></a><code><span><span class="keyword">val</span> unsat_proof : <span>unit <span class="arrow">&#45;&gt;</span></span> <a href="../../Sidekick_core/Proof_term/index.html#type-step_id">Sidekick_core.Proof_term.step_id</a></span></code></div></div></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>UNSAT_STATE (sidekick.Sidekick_sat.UNSAT_STATE)</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_sat</a> &#x00BB; UNSAT_STATE</nav><header class="odoc-preamble"><h1>Module type <code><span>Sidekick_sat.UNSAT_STATE</span></code></h1><p>Solver in an &quot;UNSATISFIABLE&quot; state</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type" id="type-clause" class="anchored"><a href="#type-clause" class="anchor"></a><code><span><span class="keyword">type</span> clause</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-unsat_conflict" class="anchored"><a href="#val-unsat_conflict" class="anchor"></a><code><span><span class="keyword">val</span> unsat_conflict : <span>unit <span class="arrow">&#45;&gt;</span></span> <a href="#type-clause">clause</a></span></code></div><div class="spec-doc"><p>Returns the unsat clause found at the toplevel</p></div></div><div class="odoc-spec"><div class="spec value" id="val-unsat_assumptions" class="anchored"><a href="#val-unsat_assumptions" class="anchor"></a><code><span><span class="keyword">val</span> unsat_assumptions : <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></div><div class="spec-doc"><p>Subset of assumptions responsible for &quot;unsat&quot;</p></div></div><div class="odoc-spec"><div class="spec value" id="val-unsat_proof" class="anchored"><a href="#val-unsat_proof" class="anchor"></a><code><span><span class="keyword">val</span> unsat_proof : <span>unit <span class="arrow">&#45;&gt;</span></span> <a href="../../Sidekick_proof/Step/index.html#type-id">Sidekick_proof.Step.id</a></span></code></div></div></div></body></html>

View file

@ -1,11 +1,11 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sidekick_simplify (sidekick.Sidekick_simplify)</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_simplify</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_simplify</span></code></h1><p>Term simplifier</p></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-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">&#45;&gt;</span></span> <a href="../Sidekick_core/Term/index.html#type-store">Sidekick_core.Term.store</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><a href="../Sidekick_core/Term/index.html#type-store">Sidekick_core.Term.store</a> <span class="arrow">&#45;&gt;</span></span> <span>proof:<a href="../Sidekick_core/Proof_trace/index.html#type-t">Sidekick_core.Proof_trace.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Create a simplifier</p></div></div><div class="odoc-spec"><div class="spec value" id="val-clear" class="anchored"><a href="#val-clear" class="anchor"></a><code><span><span class="keyword">val</span> clear : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Reset internal cache, etc.</p></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">&#45;&gt;</span></span> <a href="../Sidekick_core/Proof_trace/index.html#type-t">Sidekick_core.Proof_trace.t</a></span></code></div><div class="spec-doc"><p>Access proof</p></div></div><div class="odoc-spec"><div class="spec type" id="type-hook" class="anchored"><a href="#type-hook" class="anchor"></a><code><span><span class="keyword">type</span> hook</span><span> =
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sidekick_simplify (sidekick.Sidekick_simplify)</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_simplify</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_simplify</span></code></h1><p>Term simplifier</p></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-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">&#45;&gt;</span></span> <a href="../Sidekick_core/Term/index.html#type-store">Sidekick_core.Term.store</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><a href="../Sidekick_core/Term/index.html#type-store">Sidekick_core.Term.store</a> <span class="arrow">&#45;&gt;</span></span> <span>proof:<a href="../Sidekick_proof/Tracer/class-type-t/index.html">Sidekick_proof.Tracer.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Create a simplifier</p></div></div><div class="odoc-spec"><div class="spec value" id="val-clear" class="anchored"><a href="#val-clear" class="anchor"></a><code><span><span class="keyword">val</span> clear : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Reset internal cache, etc.</p></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">&#45;&gt;</span></span> <a href="../Sidekick_proof/Tracer/class-type-t/index.html">Sidekick_proof.Tracer.t</a></span></code></div><div class="spec-doc"><p>Access proof</p></div></div><div class="odoc-spec"><div class="spec type" id="type-hook" class="anchored"><a href="#type-hook" class="anchor"></a><code><span><span class="keyword">type</span> hook</span><span> =
<span><a href="#type-t">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>
<span><span>(<a href="../Sidekick_core/Term/index.html#type-t">Sidekick_core.Term.t</a> * <span><a href="../Sidekick_core/Proof_step/index.html#type-id">Sidekick_core.Proof_step.id</a> <span class="xref-unresolved">Iter</span>.t</span>)</span> option</span></span></code></div><div class="spec-doc"><p>Given a Term.t, 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.t <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><p>The simplifier will take care of simplifying the resulting Term.t further, caching (so that work is not duplicated in subterms), etc.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-add_hook" class="anchored"><a href="#val-add_hook" class="anchor"></a><code><span><span class="keyword">val</span> add_hook : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-hook">hook</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-normalize" class="anchored"><a href="#val-normalize" class="anchor"></a><code><span><span class="keyword">val</span> normalize :
<span><span>(<a href="../Sidekick_core/Term/index.html#type-t">Sidekick_core.Term.t</a> * <span><a href="../Sidekick_proof/Step/index.html#type-id">Sidekick_proof.Step.id</a> <span class="xref-unresolved">Iter</span>.t</span>)</span> option</span></span></code></div><div class="spec-doc"><p>Given a Term.t, 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.t <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><p>The simplifier will take care of simplifying the resulting Term.t further, caching (so that work is not duplicated in subterms), etc.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-add_hook" class="anchored"><a href="#val-add_hook" class="anchor"></a><code><span><span class="keyword">val</span> add_hook : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-hook">hook</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-normalize" class="anchored"><a href="#val-normalize" class="anchor"></a><code><span><span class="keyword">val</span> normalize :
<span><a href="#type-t">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>
<span><span>(<a href="../Sidekick_core/Term/index.html#type-t">Sidekick_core.Term.t</a> * <a href="../Sidekick_core/Proof_step/index.html#type-id">Sidekick_core.Proof_step.id</a>)</span> option</span></span></code></div><div class="spec-doc"><p>Normalize a Term.t using all the hooks. This performs a fixpoint, i.e. it only stops when no hook applies anywhere inside the Term.t.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-normalize_t" class="anchored"><a href="#val-normalize_t" class="anchor"></a><code><span><span class="keyword">val</span> normalize_t :
<span><span>(<a href="../Sidekick_core/Term/index.html#type-t">Sidekick_core.Term.t</a> * <a href="../Sidekick_proof/Step/index.html#type-id">Sidekick_proof.Step.id</a>)</span> option</span></span></code></div><div class="spec-doc"><p>Normalize a Term.t using all the hooks. This performs a fixpoint, i.e. it only stops when no hook applies anywhere inside the Term.t.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-normalize_t" class="anchored"><a href="#val-normalize_t" class="anchor"></a><code><span><span class="keyword">val</span> normalize_t :
<span><a href="#type-t">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>
<a href="../Sidekick_core/Term/index.html#type-t">Sidekick_core.Term.t</a> * <span><a href="../Sidekick_core/Proof_step/index.html#type-id">Sidekick_core.Proof_step.id</a> option</span></span></code></div><div class="spec-doc"><p>Normalize a Term.t using all the hooks, along with a proof that the simplification is correct. returns <code>t, ø</code> if no simplification occurred.</p></div></div></div></body></html>
<a href="../Sidekick_core/Term/index.html#type-t">Sidekick_core.Term.t</a> * <span><a href="../Sidekick_proof/Step/index.html#type-id">Sidekick_proof.Step.id</a> option</span></span></code></div><div class="spec-doc"><p>Normalize a Term.t using all the hooks, along with a proof that the simplification is correct. returns <code>t, ø</code> if no simplification occurred.</p></div></div></div></body></html>

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Preprocess (sidekick.Sidekick_smt_solver.Preprocess)</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; Preprocess</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_smt_solver.Preprocess</span></code></h1><p>Preprocessor</p><p>The preprocessor turn mixed, raw literals (possibly simplified) into literals suitable for reasoning. Every literal undergoes preprocessing. Typically some clauses are also added to the solver on the side, and some subterms are found to be foreign variables.</p></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 class="spec-doc"><p>Preprocessor</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>?stat:<a href="../../Sidekick_util/Stat/index.html#type-t">Sidekick_util.Stat.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>proof:<a href="../Sigs/index.html#type-proof_trace">Sigs.proof_trace</a> <span class="arrow">&#45;&gt;</span></span>
<span>proof:<a href="../../Sidekick_proof/Tracer/class-type-t/index.html">Sigs.Proof.Tracer.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>cc:<a href="../../Sidekick_cc/CC/index.html#type-t">Sigs.CC.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>simplify:<a href="../../Sidekick_simplify/index.html#type-t">Sigs.Simplify.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../Sidekick_core/Term/index.html#type-store">Sigs.Term.store</a> <span class="arrow">&#45;&gt;</span></span>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>PREPROCESS_ACTS (sidekick.Sidekick_smt_solver.Preprocess.PREPROCESS_ACTS)</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">Preprocess</a> &#x00BB; PREPROCESS_ACTS</nav><header class="odoc-preamble"><h1>Module type <code><span>Preprocess.PREPROCESS_ACTS</span></code></h1><p>Actions given to preprocessor hooks</p></header><div class="odoc-content"><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 : <a href="../../Sigs/index.html#type-proof_trace">Sigs.proof_trace</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-mk_lit" class="anchored"><a href="#val-mk_lit" class="anchor"></a><code><span><span class="keyword">val</span> mk_lit : <span>?sign:bool <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Sigs/index.html#type-term">Sigs.term</a> <span class="arrow">&#45;&gt;</span></span> <a href="../../Sigs/index.html#type-lit">Sigs.lit</a></span></code></div><div class="spec-doc"><p><code>mk_lit t</code> creates a new literal for a boolean term <code>t</code>.</p></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><span><a href="../../Sigs/index.html#type-lit">Sigs.lit</a> list</span> <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Sigs/index.html#type-step_id">Sigs.step_id</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>pushes a new clause into the SAT solver.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-add_lit" class="anchored"><a href="#val-add_lit" class="anchor"></a><code><span><span class="keyword">val</span> add_lit : <span>?default_pol:bool <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Sigs/index.html#type-lit">Sigs.lit</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Ensure the literal will be decided/handled by the SAT solver.</p></div></div></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>PREPROCESS_ACTS (sidekick.Sidekick_smt_solver.Preprocess.PREPROCESS_ACTS)</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">Preprocess</a> &#x00BB; PREPROCESS_ACTS</nav><header class="odoc-preamble"><h1>Module type <code><span>Preprocess.PREPROCESS_ACTS</span></code></h1><p>Actions given to preprocessor hooks</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value" id="val-proof_tracer" class="anchored"><a href="#val-proof_tracer" class="anchor"></a><code><span><span class="keyword">val</span> proof_tracer : <a href="../../../Sidekick_proof/Tracer/class-type-t/index.html">Sigs.Proof.Tracer.t</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-mk_lit" class="anchored"><a href="#val-mk_lit" class="anchor"></a><code><span><span class="keyword">val</span> mk_lit : <span>?sign:bool <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Sigs/index.html#type-term">Sigs.term</a> <span class="arrow">&#45;&gt;</span></span> <a href="../../Sigs/index.html#type-lit">Sigs.lit</a></span></code></div><div class="spec-doc"><p><code>mk_lit t</code> creates a new literal for a boolean term <code>t</code>.</p></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><span><a href="../../Sigs/index.html#type-lit">Sigs.lit</a> list</span> <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Sigs/index.html#type-step_id">Sigs.step_id</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>pushes a new clause into the SAT solver.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-add_lit" class="anchored"><a href="#val-add_lit" class="anchor"></a><code><span><span class="keyword">val</span> add_lit : <span>?default_pol:bool <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Sigs/index.html#type-lit">Sigs.lit</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Ensure the literal will be decided/handled by the SAT solver.</p></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

File diff suppressed because one or more lines are too long

View file

@ -1,6 +1,6 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Trace_reader (sidekick.Sidekick_smt_solver.Trace_reader)</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; Trace_reader</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_smt_solver.Trace_reader</span></code></h1><p>Read trace</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec module" id="module-Tr" class="anchored"><a href="#module-Tr" class="anchor"></a><code><span><span class="keyword">module</span> Tr</span><span> = <a href="../../Sidekick_trace/index.html">Sidekick_trace</a></span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-entry" class="anchored"><a href="#type-entry" class="anchor"></a><code><span><span class="keyword">type</span> entry</span><span> = </span></code><table><tr id="type-entry.Assert" class="anchored"><td class="def variant constructor"><a href="#type-entry.Assert" class="anchor"></a><code><span>| </span><span><span class="constructor">Assert</span> <span class="keyword">of</span> <a href="../../Sidekick_core/Term/index.html#type-t">Sidekick_core.Term.t</a></span></code></td></tr><tr id="type-entry.Assert_clause" class="anchored"><td class="def variant constructor"><a href="#type-entry.Assert_clause" class="anchor"></a><code><span>| </span><span><span class="constructor">Assert_clause</span> <span class="keyword">of</span> </span><span>{</span></code><table><tr id="type-entry.id" class="anchored"><td class="def record field"><a href="#type-entry.id" class="anchor"></a><code><span>id : int;</span></code></td></tr><tr id="type-entry.c" class="anchored"><td class="def record field"><a href="#type-entry.c" class="anchor"></a><code><span>c : <span><a href="../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> list</span>;</span></code></td></tr></table><code><span>}</span></code></td></tr></table></div></div><div class="odoc-spec"><div class="spec value" id="val-pp_entry" class="anchored"><a href="#val-pp_entry" class="anchor"></a><code><span><span class="keyword">val</span> pp_entry : <span><a href="#type-entry">entry</a> <span class="xref-unresolved">Sidekick_core</span>.Fmt.printer</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><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 :
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Trace_reader (sidekick.Sidekick_smt_solver.Trace_reader)</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; Trace_reader</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_smt_solver.Trace_reader</span></code></h1><p>Read trace</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec module" id="module-Proof" class="anchored"><a href="#module-Proof" class="anchor"></a><code><span><span class="keyword">module</span> Proof</span><span> = <a href="../../Sidekick_proof/index.html">Sidekick_proof</a></span></code></div></div><div class="odoc-spec"><div class="spec module" id="module-Tr" class="anchored"><a href="#module-Tr" class="anchor"></a><code><span><span class="keyword">module</span> Tr</span><span> = <a href="../../Sidekick_trace/index.html">Sidekick_trace</a></span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-entry" class="anchored"><a href="#type-entry" class="anchor"></a><code><span><span class="keyword">type</span> entry</span><span> = </span></code><table><tr id="type-entry.Assert" class="anchored"><td class="def variant constructor"><a href="#type-entry.Assert" class="anchor"></a><code><span>| </span><span><span class="constructor">Assert</span> <span class="keyword">of</span> <a href="../../Sidekick_core/Term/index.html#type-t">Sidekick_core.Term.t</a></span></code></td></tr><tr id="type-entry.Assert_clause" class="anchored"><td class="def variant constructor"><a href="#type-entry.Assert_clause" class="anchor"></a><code><span>| </span><span><span class="constructor">Assert_clause</span> <span class="keyword">of</span> </span><span>{</span></code><table><tr id="type-entry.id" class="anchored"><td class="def record field"><a href="#type-entry.id" class="anchor"></a><code><span>id : int;</span></code></td></tr><tr id="type-entry.c" class="anchored"><td class="def record field"><a href="#type-entry.c" class="anchor"></a><code><span>c : <span><a href="../../Sidekick_core/Lit/index.html#type-t">Sidekick_core.Lit.t</a> list</span>;</span></code></td></tr><tr id="type-entry.p" class="anchored"><td class="def record field"><a href="#type-entry.p" class="anchor"></a><code><span>p : <span><a href="../../Sidekick_proof/Pterm/index.html#type-t">Proof.Pterm.t</a> option</span>;</span></code></td></tr></table><code><span>}</span></code></td></tr></table></div></div><div class="odoc-spec"><div class="spec value" id="val-pp_entry" class="anchored"><a href="#val-pp_entry" class="anchor"></a><code><span><span class="keyword">val</span> pp_entry : <span><a href="#type-entry">entry</a> <span class="xref-unresolved">Sidekick_core</span>.Fmt.printer</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><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>?const_decoders:<span><a href="../../Sidekick_core_logic/Const/index.html#type-decoders">Sidekick_core.Const.decoders</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../Sidekick_core/Term/index.html#type-store">Sidekick_core.Term.store</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../Sidekick_trace/Source/index.html#type-t">Tr.Source.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-add_const_decoders" class="anchored"><a href="#val-add_const_decoders" class="anchor"></a><code><span><span class="keyword">val</span> add_const_decoders : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Sidekick_core_logic/Const/index.html#type-decoders">Sidekick_core.Const.decoders</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span>tag:string <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Sidekick_util/Ser_value/index.html#type-t">Sidekick_util.Ser_value.t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-entry">entry</a> option</span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode_entry" class="anchored"><a href="#val-decode_entry" class="anchor"></a><code><span><span class="keyword">val</span> decode_entry : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Sidekick_trace/Entry_id/index.html#type-t">Tr.Entry_id.t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-entry">entry</a> option</span></span></code></div></div></div></body></html>
<a href="#type-t">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-add_const_decoders" class="anchored"><a href="#val-add_const_decoders" class="anchor"></a><code><span><span class="keyword">val</span> add_const_decoders : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Sidekick_core_logic/Const/index.html#type-decoders">Sidekick_core.Const.decoders</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-term_trace_reader" class="anchored"><a href="#val-term_trace_reader" class="anchor"></a><code><span><span class="keyword">val</span> term_trace_reader : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <a href="../../Sidekick_core/Term/Trace_reader/index.html#type-t">Sidekick_core.Term.Trace_reader.t</a></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode" class="anchored"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span>tag:string <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Sidekick_util/Ser_value/index.html#type-t">Sidekick_util.Ser_value.t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-entry">entry</a> option</span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-decode_entry" class="anchored"><a href="#val-decode_entry" class="anchor"></a><code><span><span class="keyword">val</span> decode_entry : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Sidekick_trace/Entry_id/index.html#type-t">Tr.Entry_id.t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-entry">entry</a> option</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>concrete (sidekick.Sidekick_smt_solver.Tracer.concrete)</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">Tracer</a> &#x00BB; concrete</nav><header class="odoc-preamble"><h1>Class <code><span>Tracer.concrete</span></code></h1><p>Tracer emitting to a sink</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec inherit"><code><span><span class="keyword">inherit</span> <a href="../../../Sidekick_core/Term/Tracer/class-type-t/index.html">Sidekick_core.Term.Tracer.t</a></span></code></div></div><div class="odoc-spec"><div class="spec inherit"><code><span><span class="keyword">inherit</span> <a href="../../../Sidekick_core/Clause_tracer/class-type-t/index.html">Sidekick_core.Clause_tracer.t</a></span></code></div></div><div class="odoc-spec"><div class="spec method" id="method-emit_assert_term" class="anchored"><a href="#method-emit_assert_term" class="anchor"></a><code><span><span class="keyword">method</span> emit_assert_term : <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_trace/Entry_id/index.html#type-t">Tr.Entry_id.t</a></span></code></div><div class="spec-doc"><p>Emit an assertion</p></div></div></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>concrete (sidekick.Sidekick_smt_solver.Tracer.concrete)</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">Tracer</a> &#x00BB; concrete</nav><header class="odoc-preamble"><h1>Class <code><span>Tracer.concrete</span></code></h1><p>Tracer emitting to a sink</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec inherit"><code><span><span class="keyword">inherit</span> <a href="../../../Sidekick_core/Term/Tracer/class-type-t/index.html">Sidekick_core.Term.Tracer.t</a></span></code></div></div><div class="odoc-spec"><div class="spec inherit"><code><span><span class="keyword">inherit</span> <a href="../../../Sidekick_sat/Tracer/class-type-t/index.html">Sidekick_sat.Tracer.t</a></span></code></div></div><div class="odoc-spec"><div class="spec inherit"><code><span><span class="keyword">inherit</span> <a href="../../../Sidekick_proof/Tracer/class-type-t/index.html">Sidekick_proof.Tracer.t</a></span></code></div></div><div class="odoc-spec"><div class="spec method" id="method-emit_assert_term" class="anchored"><a href="#method-emit_assert_term" class="anchor"></a><code><span><span class="keyword">method</span> emit_assert_term : <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_trace/Entry_id/index.html#type-t">Tr.Entry_id.t</a></span></code></div><div class="spec-doc"><p>Emit an assertion</p></div></div></div></body></html>

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