This commit is contained in:
c-cube 2022-10-24 01:01:34 +00:00
parent 55042ab1cb
commit c498c6dc32
20 changed files with 22 additions and 18 deletions

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

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
<!DOCTYPE html> <!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-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 module" id="module-Model" class="anchored"><a href="#module-Model" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Model/index.html">Model</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Models</p></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,7 +1,7 @@
<!DOCTYPE html> <!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_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> <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> <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> 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-tst" class="anchored"><a href="#method-tst" class="anchor"></a><code><span><span class="keyword">method</span> tst : <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 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>?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>?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>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>

View file

@ -1,5 +1,5 @@
<!DOCTYPE html> <!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 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 : <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-tst" class="anchored"><a href="#val-tst" class="anchor"></a><code><span><span class="keyword">val</span> tst : <span><a href="class-type-t/index.html">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-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><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><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> <span><a href="../../Sidekick_proof/Pterm/index.html#type-delayed">Proof.Pterm.delayed</a> <span class="arrow">&#45;&gt;</span></span>

File diff suppressed because one or more lines are too long

View file

@ -3,7 +3,7 @@
<span><a href="../../Sidekick_proof/Pterm/index.html#type-delayed">Asolver.Proof.Pterm.delayed</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> 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">Asolver.Proof.Pterm.delayed</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> 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-tst" class="anchored"><a href="#method-tst" class="anchor"></a><code><span><span class="keyword">method</span> tst : <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 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>?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>?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>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>

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,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Model (sidekick.Sidekick_smt_solver.Model)</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; Model</nav><header class="odoc-preamble"><h1>Module <code><span>Sidekick_smt_solver.Model</span></code></h1><p>SMT models.</p><p>The solver models are partially evaluated; the frontend might ask for values for terms not explicitly present in them.</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.eval" class="anchored"><td class="def record field"><a href="#type-t.eval" class="anchor"></a><code><span>eval : <span><a href="../../Sidekick_core/Term/index.html#type-t">Sigs.Term.t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../Sigs/index.html#type-value">Sigs.value</a> option</span>;</span></code></td></tr><tr id="type-t.map" class="anchored"><td class="def record field"><a href="#type-t.map" class="anchor"></a><code><span>map : <span><a href="../Sigs/index.html#type-value">Sigs.value</a> <span class="xref-unresolved">Sidekick_smt_solver__</span>.Sigs.Term.Map.t</span>;</span></code></td></tr></table><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-is_empty" class="anchored"><a href="#val-is_empty" class="anchor"></a><code><span><span class="keyword">val</span> is_empty : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-eval" class="anchored"><a href="#val-eval" class="anchor"></a><code><span><span class="keyword">val</span> eval : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Sidekick_core/Term/index.html#type-t">Sigs.Term.t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../Sigs/index.html#type-value">Sigs.value</a> option</span></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">Sidekick_smt_solver__</span>.Sigs.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>

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

@ -80,7 +80,7 @@
<span>?ask:<a href="#type-model_ask_hook">model_ask_hook</a> <span class="arrow">&#45;&gt;</span></span> <span>?ask:<a href="#type-model_ask_hook">model_ask_hook</a> <span class="arrow">&#45;&gt;</span></span>
<span>?complete:<a href="#type-model_completion_hook">model_completion_hook</a> <span class="arrow">&#45;&gt;</span></span> <span>?complete:<a href="#type-model_completion_hook">model_completion_hook</a> <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-t">t</a> <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div><div class="spec-doc"><p>Add model production/completion hooks.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-on_progress" class="anchored"><a href="#val-on_progress" class="anchor"></a><code><span><span class="keyword">val</span> on_progress : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><span>( unit, unit )</span> <a href="../../Sidekick_util/Event/index.html#type-t">Sidekick_util.Event.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-is_complete" class="anchored"><a href="#val-is_complete" class="anchor"></a><code><span><span class="keyword">val</span> is_complete : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><p>Are we still in a complete logic fragment?</p></div></div><div class="odoc-spec"><div class="spec value" id="val-last_model" class="anchored"><a href="#val-last_model" class="anchor"></a><code><span><span class="keyword">val</span> last_model : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Sidekick_model/index.html#type-t">Sigs.Model.t</a> option</span></span></code></div></div><h3 id="delayed-actions"><a href="#delayed-actions" class="anchor"></a>Delayed actions</h3><div class="odoc-spec"><div class="spec module-type" id="module-type-PERFORM_ACTS" class="anchored"><a href="#module-type-PERFORM_ACTS" class="anchor"></a><code><span><span class="keyword">module</span> <span class="keyword">type</span> <a href="module-type-PERFORM_ACTS/index.html">PERFORM_ACTS</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-Perform_delayed" class="anchored"><a href="#module-Perform_delayed" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Perform_delayed/index.html">Perform_delayed</a></span><span> (<a href="Perform_delayed/argument-1-A/index.html">A</a> : <a href="module-type-PERFORM_ACTS/index.html">PERFORM_ACTS</a>) : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-add_theory_state" class="anchored"><a href="#val-add_theory_state" class="anchor"></a><code><span><span class="keyword">val</span> add_theory_state : unit</span></code></div><div class="spec-doc"><p>Add model production/completion hooks.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-on_progress" class="anchored"><a href="#val-on_progress" class="anchor"></a><code><span><span class="keyword">val</span> on_progress : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><span>( unit, unit )</span> <a href="../../Sidekick_util/Event/index.html#type-t">Sidekick_util.Event.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-is_complete" class="anchored"><a href="#val-is_complete" class="anchor"></a><code><span><span class="keyword">val</span> is_complete : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><p>Are we still in a complete logic fragment?</p></div></div><div class="odoc-spec"><div class="spec value" id="val-last_model" class="anchored"><a href="#val-last_model" class="anchor"></a><code><span><span class="keyword">val</span> last_model : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../Model/index.html#type-t">Model.t</a> option</span></span></code></div></div><h3 id="delayed-actions"><a href="#delayed-actions" class="anchor"></a>Delayed actions</h3><div class="odoc-spec"><div class="spec module-type" id="module-type-PERFORM_ACTS" class="anchored"><a href="#module-type-PERFORM_ACTS" class="anchor"></a><code><span><span class="keyword">module</span> <span class="keyword">type</span> <a href="module-type-PERFORM_ACTS/index.html">PERFORM_ACTS</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-Perform_delayed" class="anchored"><a href="#module-Perform_delayed" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Perform_delayed/index.html">Perform_delayed</a></span><span> (<a href="Perform_delayed/argument-1-A/index.html">A</a> : <a href="module-type-PERFORM_ACTS/index.html">PERFORM_ACTS</a>) : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-add_theory_state" class="anchored"><a href="#val-add_theory_state" class="anchor"></a><code><span><span class="keyword">val</span> add_theory_state :
<span>st:<span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span>st:<span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span>
<span>push_level:<span>( <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> unit )</span> <span class="arrow">&#45;&gt;</span></span> <span>push_level:<span>( <span><span class="type-var">'a</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">'a</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>pop_levels:<span>( <span><span class="type-var">'a</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>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long