sidekick/dev/sidekick-base/Sidekick_base_solver/Solver/Solver_internal/index.html
2021-08-24 22:15:31 +00:00

2 lines
No EOL
21 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Solver_internal (sidekick-base.Sidekick_base_solver.Solver.Solver_internal)</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-base</a> &#x00BB; <a href="../../index.html">Sidekick_base_solver</a> &#x00BB; <a href="../index.html">Solver</a> &#x00BB; Solver_internal</nav><h1>Module <code>Solver.Solver_internal</code></h1></header><div class="spec module" id="module-T"><a href="#module-T" class="anchor"></a><code><span class="keyword">module</span> <a href="T/index.html">T</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="spec module" id="module-Lit"><a href="#module-Lit" class="anchor"></a><code><span class="keyword">module</span> <a href="Lit/index.html">Lit</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><dl><dt class="spec type" id="type-ty"><a href="#type-ty" class="anchor"></a><code><span class="keyword">type</span> ty</code><code> = <a href="T/Ty/index.html#type-t">T.Ty.t</a></code></dt><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-term_store"><a href="#type-term_store" class="anchor"></a><code><span class="keyword">type</span> term_store</code><code> = <a href="T/Term/index.html#type-store">T.Term.store</a></code></dt><dt class="spec type" id="type-ty_store"><a href="#type-ty_store" class="anchor"></a><code><span class="keyword">type</span> ty_store</code><code> = <a href="T/Ty/index.html#type-store">T.Ty.store</a></code></dt><dt class="spec type" id="type-proof"><a href="#type-proof" class="anchor"></a><code><span class="keyword">type</span> proof</code><code> = <a href="../index.html#type-proof">proof</a></code></dt><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-proof">proof</a> <span>&#45;&gt;</span> unit</code></dt></dl><div class="spec module" id="module-P"><a href="#module-P" class="anchor"></a><code><span class="keyword">module</span> <a href="P/index.html">P</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = <a href="../../../../sidekick/Sidekick_smt_solver/Make/Solver_internal/index.html#type-t">Sidekick_smt_solver.Make(Solver_arg).Solver_internal.t</a></code></dt><dt class="spec type" id="type-solver"><a href="#type-solver" class="anchor"></a><code><span class="keyword">type</span> solver</code><code> = <a href="index.html#type-t">t</a></code></dt></dl><dl><dt class="spec value" id="val-tst"><a href="#val-tst" class="anchor"></a><code><span class="keyword">val</span> tst : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-term_store">term_store</a></code></dt><dt class="spec value" id="val-ty_st"><a href="#val-ty_st" class="anchor"></a><code><span class="keyword">val</span> ty_st : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-ty_store">ty_store</a></code></dt><dt class="spec value" id="val-stats"><a href="#val-stats" class="anchor"></a><code><span class="keyword">val</span> stats : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="../../../../sidekick/Sidekick_util/Stat/index.html#type-t">Sidekick_util.Stat.t</a></code></dt><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>&#45;&gt;</span> <span>(<a href="index.html#type-proof">proof</a> <span>&#45;&gt;</span> unit)</span> <span>&#45;&gt;</span> unit</code></dt></dl><dl><dt class="spec type" id="type-theory_actions"><a href="#type-theory_actions" class="anchor"></a><code><span class="keyword">type</span> theory_actions</code><code> = <a href="../../../../sidekick/Sidekick_smt_solver/Make/Solver_internal/index.html#type-theory_actions">Sidekick_smt_solver.Make(Solver_arg).Solver_internal.theory_actions</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><dl><dt class="spec value" id="val-define_const"><a href="#val-define_const" class="anchor"></a><code><span class="keyword">val</span> define_const : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span>const:<a href="index.html#type-term">term</a></span> <span>&#45;&gt;</span> <span>rhs:<a href="index.html#type-term">term</a></span> <span>&#45;&gt;</span> unit</code></dt></dl><div class="spec module" id="module-CC"><a href="#module-CC" class="anchor"></a><code><span class="keyword">module</span> <a href="CC/index.html">CC</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><dl><dt class="spec value" id="val-cc"><a href="#val-cc" class="anchor"></a><code><span class="keyword">val</span> cc : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="CC/index.html#type-t">CC.t</a></code></dt></dl><div class="spec module" id="module-Simplify"><a href="#module-Simplify" class="anchor"></a><code><span class="keyword">module</span> <a href="Simplify/index.html">Simplify</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><dl><dt class="spec type" id="type-simplify_hook"><a href="#type-simplify_hook" class="anchor"></a><code><span class="keyword">type</span> simplify_hook</code><code> = <a href="Simplify/index.html#type-hook">Simplify.hook</a></code></dt></dl><dl><dt class="spec value" id="val-add_simplifier"><a href="#val-add_simplifier" class="anchor"></a><code><span class="keyword">val</span> add_simplifier : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="Simplify/index.html#type-hook">Simplify.hook</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-simplifier"><a href="#val-simplifier" class="anchor"></a><code><span class="keyword">val</span> simplifier : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="Simplify/index.html#type-t">Simplify.t</a></code></dt><dt class="spec value" id="val-simplify_t"><a href="#val-simplify_t" class="anchor"></a><code><span class="keyword">val</span> simplify_t : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <span><a href="index.html#type-term">term</a> option</span></code></dt><dt class="spec value" id="val-simp_t"><a href="#val-simp_t" class="anchor"></a><code><span class="keyword">val</span> simp_t : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a></code></dt></dl><div class="spec module-type" id="module-type-PREPROCESS_ACTS"><a href="#module-type-PREPROCESS_ACTS" class="anchor"></a><code><span class="keyword">module</span> <span class="keyword">type</span> <a href="module-type-PREPROCESS_ACTS/index.html">PREPROCESS_ACTS</a> = <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><dl><dt class="spec type" id="type-preprocess_actions"><a href="#type-preprocess_actions" class="anchor"></a><code><span class="keyword">type</span> preprocess_actions</code><code> = <span>(<span class="keyword">module</span> <a href="module-type-PREPROCESS_ACTS/index.html">PREPROCESS_ACTS</a>)</span></code></dt><dt class="spec type" id="type-preprocess_hook"><a href="#type-preprocess_hook" class="anchor"></a><code><span class="keyword">type</span> preprocess_hook</code><code> = <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-preprocess_actions">preprocess_actions</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <span><a href="index.html#type-term">term</a> option</span></code></dt></dl><dl><dt class="spec value" id="val-on_preprocess"><a href="#val-on_preprocess" class="anchor"></a><code><span class="keyword">val</span> on_preprocess : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-preprocess_hook">preprocess_hook</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-preprocess_acts_of_acts"><a href="#val-preprocess_acts_of_acts" class="anchor"></a><code><span class="keyword">val</span> preprocess_acts_of_acts : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-theory_actions">theory_actions</a> <span>&#45;&gt;</span> <a href="index.html#type-preprocess_actions">preprocess_actions</a></code></dt><dt class="spec value" id="val-raise_conflict"><a href="#val-raise_conflict" class="anchor"></a><code><span class="keyword">val</span> raise_conflict : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-theory_actions">theory_actions</a> <span>&#45;&gt;</span> <span><a href="index.html#type-lit">lit</a> list</span> <span>&#45;&gt;</span> <a href="index.html#type-dproof">dproof</a> <span>&#45;&gt;</span> <span class="type-var">'a</span></code></dt><dt class="spec value" id="val-push_decision"><a href="#val-push_decision" class="anchor"></a><code><span class="keyword">val</span> push_decision : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-theory_actions">theory_actions</a> <span>&#45;&gt;</span> <a href="index.html#type-lit">lit</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-propagate"><a href="#val-propagate" class="anchor"></a><code><span class="keyword">val</span> propagate : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-theory_actions">theory_actions</a> <span>&#45;&gt;</span> <a href="index.html#type-lit">lit</a> <span>&#45;&gt;</span> <span>reason:<span>(unit <span>&#45;&gt;</span> <span><a href="index.html#type-lit">lit</a> list</span> * <a href="index.html#type-dproof">dproof</a>)</span></span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-propagate_l"><a href="#val-propagate_l" class="anchor"></a><code><span class="keyword">val</span> propagate_l : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-theory_actions">theory_actions</a> <span>&#45;&gt;</span> <a href="index.html#type-lit">lit</a> <span>&#45;&gt;</span> <span><a href="index.html#type-lit">lit</a> list</span> <span>&#45;&gt;</span> <a href="index.html#type-dproof">dproof</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-add_clause_temp"><a href="#val-add_clause_temp" class="anchor"></a><code><span class="keyword">val</span> add_clause_temp : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-theory_actions">theory_actions</a> <span>&#45;&gt;</span> <span><a href="index.html#type-lit">lit</a> list</span> <span>&#45;&gt;</span> <a href="index.html#type-dproof">dproof</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-add_clause_permanent"><a href="#val-add_clause_permanent" class="anchor"></a><code><span class="keyword">val</span> add_clause_permanent : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-theory_actions">theory_actions</a> <span>&#45;&gt;</span> <span><a href="index.html#type-lit">lit</a> list</span> <span>&#45;&gt;</span> <a href="index.html#type-dproof">dproof</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-mk_lit"><a href="#val-mk_lit" class="anchor"></a><code><span class="keyword">val</span> mk_lit : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-theory_actions">theory_actions</a> <span>&#45;&gt;</span> <span>?&#8288;sign:bool</span> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-lit">lit</a></code></dt><dt class="spec value" id="val-preprocess_term"><a href="#val-preprocess_term" class="anchor"></a><code><span class="keyword">val</span> preprocess_term : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-preprocess_actions">preprocess_actions</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-add_lit"><a href="#val-add_lit" class="anchor"></a><code><span class="keyword">val</span> add_lit : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-theory_actions">theory_actions</a> <span>&#45;&gt;</span> <span>?&#8288;default_pol:bool</span> <span>&#45;&gt;</span> <a href="index.html#type-lit">lit</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-add_lit_t"><a href="#val-add_lit_t" class="anchor"></a><code><span class="keyword">val</span> add_lit_t : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-theory_actions">theory_actions</a> <span>&#45;&gt;</span> <span>?&#8288;sign:bool</span> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-cc_raise_conflict_expl"><a href="#val-cc_raise_conflict_expl" class="anchor"></a><code><span class="keyword">val</span> cc_raise_conflict_expl : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-theory_actions">theory_actions</a> <span>&#45;&gt;</span> <a href="CC/Expl/index.html#type-t">CC.Expl.t</a> <span>&#45;&gt;</span> <span class="type-var">'a</span></code></dt><dt class="spec value" id="val-cc_find"><a href="#val-cc_find" class="anchor"></a><code><span class="keyword">val</span> cc_find : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="CC/N/index.html#type-t">CC.N.t</a> <span>&#45;&gt;</span> <a href="CC/N/index.html#type-t">CC.N.t</a></code></dt><dt class="spec value" id="val-cc_are_equal"><a href="#val-cc_are_equal" class="anchor"></a><code><span class="keyword">val</span> cc_are_equal : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-cc_merge"><a href="#val-cc_merge" class="anchor"></a><code><span class="keyword">val</span> cc_merge : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-theory_actions">theory_actions</a> <span>&#45;&gt;</span> <a href="CC/N/index.html#type-t">CC.N.t</a> <span>&#45;&gt;</span> <a href="CC/N/index.html#type-t">CC.N.t</a> <span>&#45;&gt;</span> <a href="CC/Expl/index.html#type-t">CC.Expl.t</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-cc_merge_t"><a href="#val-cc_merge_t" class="anchor"></a><code><span class="keyword">val</span> cc_merge_t : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-theory_actions">theory_actions</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="CC/Expl/index.html#type-t">CC.Expl.t</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-cc_add_term"><a href="#val-cc_add_term" class="anchor"></a><code><span class="keyword">val</span> cc_add_term : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> <a href="CC/N/index.html#type-t">CC.N.t</a></code></dt><dt class="spec value" id="val-cc_mem_term"><a href="#val-cc_mem_term" class="anchor"></a><code><span class="keyword">val</span> cc_mem_term : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-on_cc_pre_merge"><a href="#val-on_cc_pre_merge" class="anchor"></a><code><span class="keyword">val</span> on_cc_pre_merge : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span>(<a href="CC/index.html#type-t">CC.t</a> <span>&#45;&gt;</span> <a href="index.html#type-theory_actions">theory_actions</a> <span>&#45;&gt;</span> <a href="CC/N/index.html#type-t">CC.N.t</a> <span>&#45;&gt;</span> <a href="CC/N/index.html#type-t">CC.N.t</a> <span>&#45;&gt;</span> <a href="CC/Expl/index.html#type-t">CC.Expl.t</a> <span>&#45;&gt;</span> unit)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-on_cc_post_merge"><a href="#val-on_cc_post_merge" class="anchor"></a><code><span class="keyword">val</span> on_cc_post_merge : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span>(<a href="CC/index.html#type-t">CC.t</a> <span>&#45;&gt;</span> <a href="index.html#type-theory_actions">theory_actions</a> <span>&#45;&gt;</span> <a href="CC/N/index.html#type-t">CC.N.t</a> <span>&#45;&gt;</span> <a href="CC/N/index.html#type-t">CC.N.t</a> <span>&#45;&gt;</span> unit)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-on_cc_new_term"><a href="#val-on_cc_new_term" class="anchor"></a><code><span class="keyword">val</span> on_cc_new_term : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span>(<a href="CC/index.html#type-t">CC.t</a> <span>&#45;&gt;</span> <a href="CC/N/index.html#type-t">CC.N.t</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> unit)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-on_cc_is_subterm"><a href="#val-on_cc_is_subterm" class="anchor"></a><code><span class="keyword">val</span> on_cc_is_subterm : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span>(<a href="CC/N/index.html#type-t">CC.N.t</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a> <span>&#45;&gt;</span> unit)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-on_cc_conflict"><a href="#val-on_cc_conflict" class="anchor"></a><code><span class="keyword">val</span> on_cc_conflict : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span>(<a href="CC/index.html#type-t">CC.t</a> <span>&#45;&gt;</span> <span>th:bool</span> <span>&#45;&gt;</span> <span><a href="index.html#type-lit">lit</a> list</span> <span>&#45;&gt;</span> unit)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-on_cc_propagate"><a href="#val-on_cc_propagate" class="anchor"></a><code><span class="keyword">val</span> on_cc_propagate : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span>(<a href="CC/index.html#type-t">CC.t</a> <span>&#45;&gt;</span> <a href="index.html#type-lit">lit</a> <span>&#45;&gt;</span> <span>(unit <span>&#45;&gt;</span> <span><a href="index.html#type-lit">lit</a> list</span> * <a href="index.html#type-dproof">dproof</a>)</span> <span>&#45;&gt;</span> unit)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-on_partial_check"><a href="#val-on_partial_check" class="anchor"></a><code><span class="keyword">val</span> on_partial_check : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span>(<a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-theory_actions">theory_actions</a> <span>&#45;&gt;</span> <span><a href="index.html#type-lit">lit</a> Iter.t</span> <span>&#45;&gt;</span> unit)</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-on_final_check"><a href="#val-on_final_check" class="anchor"></a><code><span class="keyword">val</span> on_final_check : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span>(<a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-theory_actions">theory_actions</a> <span>&#45;&gt;</span> <span><a href="index.html#type-lit">lit</a> Iter.t</span> <span>&#45;&gt;</span> unit)</span> <span>&#45;&gt;</span> unit</code></dt></dl><dl><dt class="spec type" id="type-model_hook"><a href="#type-model_hook" class="anchor"></a><code><span class="keyword">type</span> model_hook</code><code> = <span>recurse:<span>(<a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="CC/N/index.html#type-t">CC.N.t</a> <span>&#45;&gt;</span> <a href="index.html#type-term">term</a>)</span></span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="CC/N/index.html#type-t">CC.N.t</a> <span>&#45;&gt;</span> <span><a href="index.html#type-term">term</a> option</span></code></dt></dl><dl><dt class="spec value" id="val-on_model_gen"><a href="#val-on_model_gen" class="anchor"></a><code><span class="keyword">val</span> on_model_gen : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-model_hook">model_hook</a> <span>&#45;&gt;</span> unit</code></dt></dl></div></body></html>