mirror of
https://github.com/c-cube/sidekick.git
synced 2025-12-07 11:45:41 -05:00
2 lines
No EOL
8.1 KiB
HTML
2 lines
No EOL
8.1 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>P (sidekick-bin.Sidekick_smtlib.Process.Solver.P)</title><link rel="stylesheet" href="../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.3"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../../../../index.html">sidekick-bin</a> » <a href="../../../index.html">Sidekick_smtlib</a> » <a href="../../index.html">Process</a> » <a href="../index.html">Solver</a> » P</nav><h1>Module <code>Solver.P</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = <a href="../index.html#type-proof">proof</a></code></dt><dd><p>The abstract representation of a proof. A proof always proves a clause to be <b>valid</b> (true in every possible interpretation of the problem's assertions, and the theories)</p></dd></dl><dl><dt class="spec type" id="type-term"><a href="#type-term" class="anchor"></a><code><span class="keyword">type</span> term</code><code> = <a href="../T/Term/index.html#type-t">T.Term.t</a></code></dt><dt class="spec type" id="type-lit"><a href="#type-lit" class="anchor"></a><code><span class="keyword">type</span> lit</code><code> = <a href="../Lit/index.html#type-t">Lit.t</a></code></dt></dl><div><div class="spec include"><div class="doc"><details open="open"><summary><span class="def"><code><span class="keyword">include</span> <a href="../../../../../sidekick/Sidekick_core/index.html#module-type-CC_PROOF">Sidekick_core.CC_PROOF</a> <span class="keyword">with</span> <span class="keyword">type</span> <a href="../../../../../sidekick/Sidekick_core/module-type-CC_PROOF/index.html#type-t">t</a> := <a href="index.html#type-t">t</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../../../../sidekick/Sidekick_core/module-type-CC_PROOF/index.html#type-lit">lit</a> := <a href="index.html#type-lit">lit</a></code></span></summary><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt><dt class="spec type" id="type-lit"><a href="#type-lit" class="anchor"></a><code><span class="keyword">type</span> lit</code></dt></dl><dl><dt class="spec value" id="val-lemma_cc"><a href="#val-lemma_cc" class="anchor"></a><code><span class="keyword">val</span> lemma_cc : <span><a href="index.html#type-lit">lit</a> Iter.t</span> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> unit</code></dt><dd><p><code>lemma_cc proof lits</code> asserts that <code>lits</code> form a tautology for the theory of uninterpreted functions.</p></dd></dl></details></div></div></div><div><div class="spec include"><div class="doc"><details open="open"><summary><span class="def"><code><span class="keyword">include</span> <a href="../../../../../sidekick/Sidekick_core/index.html#module-type-SAT_PROOF">Sidekick_core.SAT_PROOF</a> <span class="keyword">with</span> <span class="keyword">type</span> <a href="../../../../../sidekick/Sidekick_core/module-type-SAT_PROOF/index.html#type-t">t</a> := <a href="index.html#type-t">t</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../../../../../sidekick/Sidekick_core/module-type-SAT_PROOF/index.html#type-lit">lit</a> := <a href="index.html#type-lit">lit</a></code></span></summary><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt><dd><p>The stored proof (possibly nil, possibly on disk, possibly in memory)</p></dd></dl><dl><dt class="spec type" id="type-lit"><a href="#type-lit" class="anchor"></a><code><span class="keyword">type</span> lit</code></dt><dd><p>A boolean literal for the proof trace</p></dd></dl><dl><dt class="spec type" id="type-dproof"><a href="#type-dproof" class="anchor"></a><code><span class="keyword">type</span> dproof</code><code> = <a href="index.html#type-t">t</a> <span>-></span> unit</code></dt><dd><p>A delayed proof, used to produce proofs on demand from theories.</p></dd></dl><dl><dt class="spec value" id="val-with_proof"><a href="#val-with_proof" class="anchor"></a><code><span class="keyword">val</span> with_proof : <a href="index.html#type-t">t</a> <span>-></span> <span>(<a href="index.html#type-t">t</a> <span>-></span> unit)</span> <span>-></span> unit</code></dt><dd><p>If proof is enabled, call <code>f</code> on it to emit steps. if proof is disabled, the callback won't even be called.</p></dd></dl><dl><dt class="spec value" id="val-emit_input_clause"><a href="#val-emit_input_clause" class="anchor"></a><code><span class="keyword">val</span> emit_input_clause : <span><a href="index.html#type-lit">lit</a> Iter.t</span> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> unit</code></dt><dd><p>Emit an input clause.</p></dd></dl><dl><dt class="spec value" id="val-emit_redundant_clause"><a href="#val-emit_redundant_clause" class="anchor"></a><code><span class="keyword">val</span> emit_redundant_clause : <span><a href="index.html#type-lit">lit</a> Iter.t</span> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> unit</code></dt><dd><p>Emit a clause deduced by the SAT solver, redundant wrt axioms. The clause must be RUP wrt previous clauses.</p></dd></dl><dl><dt class="spec value" id="val-del_clause"><a href="#val-del_clause" class="anchor"></a><code><span class="keyword">val</span> del_clause : <span><a href="index.html#type-lit">lit</a> Iter.t</span> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> unit</code></dt><dd><p>Forget a clause. Only useful for performance considerations.</p></dd></dl></details></div></div></div><dl><dt class="spec value" id="val-begin_subproof"><a href="#val-begin_subproof" class="anchor"></a><code><span class="keyword">val</span> begin_subproof : <a href="index.html#type-t">t</a> <span>-></span> unit</code></dt><dd><p>Begins a subproof. The result of this will only be the clause with which <a href="index.html#val-end_subproof"><code>end_subproof</code></a> is called; all other intermediate steps will be discarded.</p></dd></dl><dl><dt class="spec value" id="val-end_subproof"><a href="#val-end_subproof" class="anchor"></a><code><span class="keyword">val</span> end_subproof : <a href="index.html#type-t">t</a> <span>-></span> unit</code></dt><dd><p><code>end_subproof p</code> ends the current active subproof, the last result of which is kept.</p></dd></dl><dl><dt class="spec value" id="val-define_term"><a href="#val-define_term" class="anchor"></a><code><span class="keyword">val</span> define_term : <a href="index.html#type-term">term</a> <span>-></span> <a href="index.html#type-term">term</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> unit</code></dt><dd><p><code>define_term p cst u</code> defines the new constant <code>cst</code> as being equal to <code>u</code>.</p></dd></dl><dl><dt class="spec value" id="val-lemma_true"><a href="#val-lemma_true" class="anchor"></a><code><span class="keyword">val</span> lemma_true : <a href="index.html#type-term">term</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> unit</code></dt><dd><p><code>lemma_true p (true)</code> asserts the clause <code>(true)</code></p></dd></dl><dl><dt class="spec value" id="val-lemma_preprocess"><a href="#val-lemma_preprocess" class="anchor"></a><code><span class="keyword">val</span> lemma_preprocess : <a href="index.html#type-term">term</a> <span>-></span> <a href="index.html#type-term">term</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> unit</code></dt><dd><p><code>lemma_preprocess p t u</code> asserts that <code>t = u</code> is a tautology and that <code>t</code> has been preprocessed into <code>u</code>. From now on, <code>t</code> and <code>u</code> will be used interchangeably.</p></dd></dl></div></body></html> |