mirror of
https://github.com/c-cube/sidekick.git
synced 2025-12-09 04:35:35 -05:00
2 lines
No EOL
33 KiB
HTML
2 lines
No EOL
33 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Ast (sidekick-bin.Sidekick_smtlib.Ast)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><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> » Ast</nav><h1>Module <code>Sidekick_smtlib.Ast</code></h1><h2 id="preprocessing-ast"><a href="#preprocessing-ast" class="anchor"></a>Preprocessing AST</h2><nav class="toc"><ul><li><a href="#types">Types</a></li><li><a href="#constructors">Constructors</a></li><li><a href="#helpers">helpers</a></li><li><a href="#printing">Printing</a></li><li><a href="#environment">Environment</a></li></ul></nav></header><dl><dt class="spec type" id="type-or_error"><a href="#type-or_error" class="anchor"></a><code><span class="keyword">type</span> 'a or_error</code><code> = (<span class="type-var">'a</span>, string) CCResult.t</code></dt></dl><section><header><h3 id="types"><a href="#types" class="anchor"></a>Types</h3></header><div class="spec module" id="module-Var"><a href="#module-Var" class="anchor"></a><code><span class="keyword">module</span> <a href="Var/index.html">Var</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="spec module" id="module-Ty"><a href="#module-Ty" class="anchor"></a><code><span class="keyword">module</span> <a href="Ty/index.html">Ty</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><dl><dt class="spec type" id="type-var"><a href="#type-var" class="anchor"></a><code><span class="keyword">type</span> var</code><code> = <a href="Ty/index.html#type-t">Ty.t</a> <a href="Var/index.html#type-t">Var.t</a></code></dt><dt class="spec type" id="type-op"><a href="#type-op" class="anchor"></a><code><span class="keyword">type</span> op</code><code> = </code><table class="variant"><tr id="type-op.And" class="anchored"><td class="def constructor"><a href="#type-op.And" class="anchor"></a><code>| </code><code><span class="constructor">And</span></code></td></tr><tr id="type-op.Or" class="anchored"><td class="def constructor"><a href="#type-op.Or" class="anchor"></a><code>| </code><code><span class="constructor">Or</span></code></td></tr><tr id="type-op.Imply" class="anchored"><td class="def constructor"><a href="#type-op.Imply" class="anchor"></a><code>| </code><code><span class="constructor">Imply</span></code></td></tr><tr id="type-op.Eq" class="anchored"><td class="def constructor"><a href="#type-op.Eq" class="anchor"></a><code>| </code><code><span class="constructor">Eq</span></code></td></tr><tr id="type-op.Distinct" class="anchored"><td class="def constructor"><a href="#type-op.Distinct" class="anchor"></a><code>| </code><code><span class="constructor">Distinct</span></code></td></tr></table></dt><dt class="spec type" id="type-arith_op"><a href="#type-arith_op" class="anchor"></a><code><span class="keyword">type</span> arith_op</code><code> = </code><table class="variant"><tr id="type-arith_op.Leq" class="anchored"><td class="def constructor"><a href="#type-arith_op.Leq" class="anchor"></a><code>| </code><code><span class="constructor">Leq</span></code></td></tr><tr id="type-arith_op.Lt" class="anchored"><td class="def constructor"><a href="#type-arith_op.Lt" class="anchor"></a><code>| </code><code><span class="constructor">Lt</span></code></td></tr><tr id="type-arith_op.Geq" class="anchored"><td class="def constructor"><a href="#type-arith_op.Geq" class="anchor"></a><code>| </code><code><span class="constructor">Geq</span></code></td></tr><tr id="type-arith_op.Gt" class="anchored"><td class="def constructor"><a href="#type-arith_op.Gt" class="anchor"></a><code>| </code><code><span class="constructor">Gt</span></code></td></tr><tr id="type-arith_op.Add" class="anchored"><td class="def constructor"><a href="#type-arith_op.Add" class="anchor"></a><code>| </code><code><span class="constructor">Add</span></code></td></tr><tr id="type-arith_op.Minus" class="anchored"><td class="def constructor"><a href="#type-arith_op.Minus" class="anchor"></a><code>| </code><code><span class="constructor">Minus</span></code></td></tr><tr id="type-arith_op.Mult" class="anchored"><td class="def constructor"><a href="#type-arith_op.Mult" class="anchor"></a><code>| </code><code><span class="constructor">Mult</span></code></td></tr><tr id="type-arith_op.Div" class="anchored"><td class="def constructor"><a href="#type-arith_op.Div" class="anchor"></a><code>| </code><code><span class="constructor">Div</span></code></td></tr></table></dt><dt class="spec type" id="type-binder"><a href="#type-binder" class="anchor"></a><code><span class="keyword">type</span> binder</code><code> = </code><table class="variant"><tr id="type-binder.Fun" class="anchored"><td class="def constructor"><a href="#type-binder.Fun" class="anchor"></a><code>| </code><code><span class="constructor">Fun</span></code></td></tr><tr id="type-binder.Forall" class="anchored"><td class="def constructor"><a href="#type-binder.Forall" class="anchor"></a><code>| </code><code><span class="constructor">Forall</span></code></td></tr><tr id="type-binder.Exists" class="anchored"><td class="def constructor"><a href="#type-binder.Exists" class="anchor"></a><code>| </code><code><span class="constructor">Exists</span></code></td></tr><tr id="type-binder.Mu" class="anchored"><td class="def constructor"><a href="#type-binder.Mu" class="anchor"></a><code>| </code><code><span class="constructor">Mu</span></code></td></tr></table></dt><dt class="spec type" id="type-term"><a href="#type-term" class="anchor"></a><code><span class="keyword">type</span> term</code><code> = <span class="keyword">private</span> </code><code>{</code><table class="record"><tr id="type-term.term" class="anchored"><td class="def field"><a href="#type-term.term" class="anchor"></a><code>term : <a href="index.html#type-term_cell">term_cell</a>;</code></td></tr><tr id="type-term.ty" class="anchored"><td class="def field"><a href="#type-term.ty" class="anchor"></a><code>ty : <a href="Ty/index.html#type-t">Ty.t</a>;</code></td></tr></table><code>}</code></dt><dt class="spec type" id="type-term_cell"><a href="#type-term_cell" class="anchor"></a><code><span class="keyword">and</span> term_cell</code><code> = </code><table class="variant"><tr id="type-term_cell.Var" class="anchored"><td class="def constructor"><a href="#type-term_cell.Var" class="anchor"></a><code>| </code><code><span class="constructor">Var</span> <span class="keyword">of</span> <a href="index.html#type-var">var</a></code></td></tr><tr id="type-term_cell.Const" class="anchored"><td class="def constructor"><a href="#type-term_cell.Const" class="anchor"></a><code>| </code><code><span class="constructor">Const</span> <span class="keyword">of</span> <a href="../../../sidekick/Sidekick_base_term/ID/index.html#type-t">Sidekick_base_term.ID.t</a></code></td></tr><tr id="type-term_cell.Num_z" class="anchored"><td class="def constructor"><a href="#type-term_cell.Num_z" class="anchor"></a><code>| </code><code><span class="constructor">Num_z</span> <span class="keyword">of</span> Z.t</code></td></tr><tr id="type-term_cell.Num_q" class="anchored"><td class="def constructor"><a href="#type-term_cell.Num_q" class="anchor"></a><code>| </code><code><span class="constructor">Num_q</span> <span class="keyword">of</span> Q.t</code></td></tr><tr id="type-term_cell.App" class="anchored"><td class="def constructor"><a href="#type-term_cell.App" class="anchor"></a><code>| </code><code><span class="constructor">App</span> <span class="keyword">of</span> <a href="index.html#type-term">term</a> * <a href="index.html#type-term">term</a> list</code></td></tr><tr id="type-term_cell.If" class="anchored"><td class="def constructor"><a href="#type-term_cell.If" class="anchor"></a><code>| </code><code><span class="constructor">If</span> <span class="keyword">of</span> <a href="index.html#type-term">term</a> * <a href="index.html#type-term">term</a> * <a href="index.html#type-term">term</a></code></td></tr><tr id="type-term_cell.Match" class="anchored"><td class="def constructor"><a href="#type-term_cell.Match" class="anchor"></a><code>| </code><code><span class="constructor">Match</span> <span class="keyword">of</span> <a href="index.html#type-term">term</a> * (<a href="index.html#type-var">var</a> list * <a href="index.html#type-term">term</a>) <a href="../../../sidekick/Sidekick_base_term__ID/index.html#module-Map">Sidekick_base_term.ID.Map</a>.t</code></td></tr><tr id="type-term_cell.Select" class="anchored"><td class="def constructor"><a href="#type-term_cell.Select" class="anchor"></a><code>| </code><code><span class="constructor">Select</span> <span class="keyword">of</span> <a href="index.html#type-select">select</a> * <a href="index.html#type-term">term</a></code></td></tr><tr id="type-term_cell.Bind" class="anchored"><td class="def constructor"><a href="#type-term_cell.Bind" class="anchor"></a><code>| </code><code><span class="constructor">Bind</span> <span class="keyword">of</span> <a href="index.html#type-binder">binder</a> * <a href="index.html#type-var">var</a> * <a href="index.html#type-term">term</a></code></td></tr><tr id="type-term_cell.Arith" class="anchored"><td class="def constructor"><a href="#type-term_cell.Arith" class="anchor"></a><code>| </code><code><span class="constructor">Arith</span> <span class="keyword">of</span> <a href="index.html#type-arith_op">arith_op</a> * <a href="index.html#type-term">term</a> list</code></td></tr><tr id="type-term_cell.Let" class="anchored"><td class="def constructor"><a href="#type-term_cell.Let" class="anchor"></a><code>| </code><code><span class="constructor">Let</span> <span class="keyword">of</span> (<a href="index.html#type-var">var</a> * <a href="index.html#type-term">term</a>) list * <a href="index.html#type-term">term</a></code></td></tr><tr id="type-term_cell.Not" class="anchored"><td class="def constructor"><a href="#type-term_cell.Not" class="anchor"></a><code>| </code><code><span class="constructor">Not</span> <span class="keyword">of</span> <a href="index.html#type-term">term</a></code></td></tr><tr id="type-term_cell.Op" class="anchored"><td class="def constructor"><a href="#type-term_cell.Op" class="anchor"></a><code>| </code><code><span class="constructor">Op</span> <span class="keyword">of</span> <a href="index.html#type-op">op</a> * <a href="index.html#type-term">term</a> list</code></td></tr><tr id="type-term_cell.Asserting" class="anchored"><td class="def constructor"><a href="#type-term_cell.Asserting" class="anchor"></a><code>| </code><code><span class="constructor">Asserting</span> <span class="keyword">of</span> </code><code>{</code><table class="record"><tr id="type-term_cell.t" class="anchored"><td class="def field"><a href="#type-term_cell.t" class="anchor"></a><code>t : <a href="index.html#type-term">term</a>;</code></td></tr><tr id="type-term_cell.guard" class="anchored"><td class="def field"><a href="#type-term_cell.guard" class="anchor"></a><code>guard : <a href="index.html#type-term">term</a>;</code></td></tr></table><code>}</code></td></tr><tr id="type-term_cell.Undefined_value" class="anchored"><td class="def constructor"><a href="#type-term_cell.Undefined_value" class="anchor"></a><code>| </code><code><span class="constructor">Undefined_value</span></code></td></tr><tr id="type-term_cell.Bool" class="anchored"><td class="def constructor"><a href="#type-term_cell.Bool" class="anchor"></a><code>| </code><code><span class="constructor">Bool</span> <span class="keyword">of</span> bool</code></td></tr></table></dt><dt class="spec type" id="type-select"><a href="#type-select" class="anchor"></a><code><span class="keyword">and</span> select</code><code> = </code><code>{</code><table class="record"><tr id="type-select.select_name" class="anchored"><td class="def field"><a href="#type-select.select_name" class="anchor"></a><code>select_name : <a href="../../../sidekick/Sidekick_base_term/ID/index.html#type-t">Sidekick_base_term.ID.t</a> lazy_t;</code></td></tr><tr id="type-select.select_cstor" class="anchored"><td class="def field"><a href="#type-select.select_cstor" class="anchor"></a><code>select_cstor : <a href="../../../sidekick/Sidekick_base_term/ID/index.html#type-t">Sidekick_base_term.ID.t</a>;</code></td></tr><tr id="type-select.select_i" class="anchored"><td class="def field"><a href="#type-select.select_i" class="anchor"></a><code>select_i : int;</code></td></tr></table><code>}</code></dt><dt class="spec type" id="type-definition"><a href="#type-definition" class="anchor"></a><code><span class="keyword">type</span> definition</code><code> = <a href="../../../sidekick/Sidekick_base_term/ID/index.html#type-t">Sidekick_base_term.ID.t</a> * <a href="Ty/index.html#type-t">Ty.t</a> * <a href="index.html#type-term">term</a></code></dt><dt class="spec type" id="type-statement"><a href="#type-statement" class="anchor"></a><code><span class="keyword">type</span> statement</code><code> = </code><table class="variant"><tr id="type-statement.SetLogic" class="anchored"><td class="def constructor"><a href="#type-statement.SetLogic" class="anchor"></a><code>| </code><code><span class="constructor">SetLogic</span> <span class="keyword">of</span> string</code></td></tr><tr id="type-statement.SetOption" class="anchored"><td class="def constructor"><a href="#type-statement.SetOption" class="anchor"></a><code>| </code><code><span class="constructor">SetOption</span> <span class="keyword">of</span> string list</code></td></tr><tr id="type-statement.SetInfo" class="anchored"><td class="def constructor"><a href="#type-statement.SetInfo" class="anchor"></a><code>| </code><code><span class="constructor">SetInfo</span> <span class="keyword">of</span> string list</code></td></tr><tr id="type-statement.Data" class="anchored"><td class="def constructor"><a href="#type-statement.Data" class="anchor"></a><code>| </code><code><span class="constructor">Data</span> <span class="keyword">of</span> <a href="Ty/index.html#type-data">Ty.data</a> list</code></td></tr><tr id="type-statement.TyDecl" class="anchored"><td class="def constructor"><a href="#type-statement.TyDecl" class="anchor"></a><code>| </code><code><span class="constructor">TyDecl</span> <span class="keyword">of</span> <a href="../../../sidekick/Sidekick_base_term/ID/index.html#type-t">Sidekick_base_term.ID.t</a> * int</code></td></tr><tr id="type-statement.Decl" class="anchored"><td class="def constructor"><a href="#type-statement.Decl" class="anchor"></a><code>| </code><code><span class="constructor">Decl</span> <span class="keyword">of</span> <a href="../../../sidekick/Sidekick_base_term/ID/index.html#type-t">Sidekick_base_term.ID.t</a> * <a href="Ty/index.html#type-t">Ty.t</a></code></td></tr><tr id="type-statement.Define" class="anchored"><td class="def constructor"><a href="#type-statement.Define" class="anchor"></a><code>| </code><code><span class="constructor">Define</span> <span class="keyword">of</span> <a href="index.html#type-definition">definition</a> list</code></td></tr><tr id="type-statement.Assert" class="anchored"><td class="def constructor"><a href="#type-statement.Assert" class="anchor"></a><code>| </code><code><span class="constructor">Assert</span> <span class="keyword">of</span> <a href="index.html#type-term">term</a></code></td></tr><tr id="type-statement.Goal" class="anchored"><td class="def constructor"><a href="#type-statement.Goal" class="anchor"></a><code>| </code><code><span class="constructor">Goal</span> <span class="keyword">of</span> <a href="index.html#type-var">var</a> list * <a href="index.html#type-term">term</a></code></td></tr><tr id="type-statement.CheckSat" class="anchored"><td class="def constructor"><a href="#type-statement.CheckSat" class="anchor"></a><code>| </code><code><span class="constructor">CheckSat</span></code></td></tr><tr id="type-statement.Exit" class="anchored"><td class="def constructor"><a href="#type-statement.Exit" class="anchor"></a><code>| </code><code><span class="constructor">Exit</span></code></td></tr></table></dt></dl></section><section><header><h3 id="constructors"><a href="#constructors" class="anchor"></a>Constructors</h3></header><dl><dt class="spec value" id="val-term_view"><a href="#val-term_view" class="anchor"></a><code><span class="keyword">val</span> term_view : <a href="index.html#type-term">term</a> <span>-></span> <a href="index.html#type-term_cell">term_cell</a></code></dt><dt class="spec value" id="val-ty"><a href="#val-ty" class="anchor"></a><code><span class="keyword">val</span> ty : <a href="index.html#type-term">term</a> <span>-></span> <a href="Ty/index.html#type-t">Ty.t</a></code></dt><dt class="spec value" id="val-var"><a href="#val-var" class="anchor"></a><code><span class="keyword">val</span> var : <a href="index.html#type-var">var</a> <span>-></span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-const"><a href="#val-const" class="anchor"></a><code><span class="keyword">val</span> const : <a href="../../../sidekick/Sidekick_base_term/ID/index.html#type-t">Sidekick_base_term.ID.t</a> <span>-></span> <a href="Ty/index.html#type-t">Ty.t</a> <span>-></span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-app"><a href="#val-app" class="anchor"></a><code><span class="keyword">val</span> app : <a href="index.html#type-term">term</a> <span>-></span> <a href="index.html#type-term">term</a> list <span>-></span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-app_a"><a href="#val-app_a" class="anchor"></a><code><span class="keyword">val</span> app_a : <a href="index.html#type-term">term</a> <span>-></span> <a href="index.html#type-term">term</a> array <span>-></span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-if_"><a href="#val-if_" class="anchor"></a><code><span class="keyword">val</span> if_ : <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-term">term</a> <span>-></span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-match_"><a href="#val-match_" class="anchor"></a><code><span class="keyword">val</span> match_ : <a href="index.html#type-term">term</a> <span>-></span> (<a href="index.html#type-var">var</a> list * <a href="index.html#type-term">term</a>) <a href="../../../sidekick/Sidekick_base_term__ID/index.html#module-Map">Sidekick_base_term.ID.Map</a>.t <span>-></span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-let_"><a href="#val-let_" class="anchor"></a><code><span class="keyword">val</span> let_ : <a href="index.html#type-var">var</a> <span>-></span> <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-term">term</a></code></dt><dt class="spec value" id="val-let_l"><a href="#val-let_l" class="anchor"></a><code><span class="keyword">val</span> let_l : (<a href="index.html#type-var">var</a> * <a href="index.html#type-term">term</a>) list <span>-></span> <a href="index.html#type-term">term</a> <span>-></span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-bind"><a href="#val-bind" class="anchor"></a><code><span class="keyword">val</span> bind : ty:<a href="Ty/index.html#type-t">Ty.t</a> <span>-></span> <a href="index.html#type-binder">binder</a> <span>-></span> <a href="index.html#type-var">var</a> <span>-></span> <a href="index.html#type-term">term</a> <span>-></span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-select"><a href="#val-select" class="anchor"></a><code><span class="keyword">val</span> select : ty:<a href="Ty/index.html#type-t">Ty.t</a> <span>-></span> <a href="index.html#type-select">select</a> <span>-></span> <a href="index.html#type-term">term</a> <span>-></span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-fun_"><a href="#val-fun_" class="anchor"></a><code><span class="keyword">val</span> fun_ : <a href="index.html#type-var">var</a> <span>-></span> <a href="index.html#type-term">term</a> <span>-></span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-fun_l"><a href="#val-fun_l" class="anchor"></a><code><span class="keyword">val</span> fun_l : <a href="index.html#type-var">var</a> list <span>-></span> <a href="index.html#type-term">term</a> <span>-></span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-fun_a"><a href="#val-fun_a" class="anchor"></a><code><span class="keyword">val</span> fun_a : <a href="index.html#type-var">var</a> array <span>-></span> <a href="index.html#type-term">term</a> <span>-></span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-forall"><a href="#val-forall" class="anchor"></a><code><span class="keyword">val</span> forall : <a href="index.html#type-var">var</a> <span>-></span> <a href="index.html#type-term">term</a> <span>-></span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-forall_l"><a href="#val-forall_l" class="anchor"></a><code><span class="keyword">val</span> forall_l : <a href="index.html#type-var">var</a> list <span>-></span> <a href="index.html#type-term">term</a> <span>-></span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-exists"><a href="#val-exists" class="anchor"></a><code><span class="keyword">val</span> exists : <a href="index.html#type-var">var</a> <span>-></span> <a href="index.html#type-term">term</a> <span>-></span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-exists_l"><a href="#val-exists_l" class="anchor"></a><code><span class="keyword">val</span> exists_l : <a href="index.html#type-var">var</a> list <span>-></span> <a href="index.html#type-term">term</a> <span>-></span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-mu"><a href="#val-mu" class="anchor"></a><code><span class="keyword">val</span> mu : <a href="index.html#type-var">var</a> <span>-></span> <a href="index.html#type-term">term</a> <span>-></span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-eq"><a href="#val-eq" class="anchor"></a><code><span class="keyword">val</span> eq : <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-term">term</a></code></dt><dt class="spec value" id="val-not_"><a href="#val-not_" class="anchor"></a><code><span class="keyword">val</span> not_ : <a href="index.html#type-term">term</a> <span>-></span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-op"><a href="#val-op" class="anchor"></a><code><span class="keyword">val</span> op : <a href="index.html#type-op">op</a> <span>-></span> <a href="index.html#type-term">term</a> list <span>-></span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-and_"><a href="#val-and_" class="anchor"></a><code><span class="keyword">val</span> and_ : <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-term">term</a></code></dt><dt class="spec value" id="val-and_l"><a href="#val-and_l" class="anchor"></a><code><span class="keyword">val</span> and_l : <a href="index.html#type-term">term</a> list <span>-></span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-or_"><a href="#val-or_" class="anchor"></a><code><span class="keyword">val</span> or_ : <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-term">term</a></code></dt><dt class="spec value" id="val-or_l"><a href="#val-or_l" class="anchor"></a><code><span class="keyword">val</span> or_l : <a href="index.html#type-term">term</a> list <span>-></span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-imply"><a href="#val-imply" class="anchor"></a><code><span class="keyword">val</span> imply : <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-term">term</a></code></dt><dt class="spec value" id="val-true_"><a href="#val-true_" class="anchor"></a><code><span class="keyword">val</span> true_ : <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-false_"><a href="#val-false_" class="anchor"></a><code><span class="keyword">val</span> false_ : <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-undefined_value"><a href="#val-undefined_value" class="anchor"></a><code><span class="keyword">val</span> undefined_value : <a href="Ty/index.html#type-t">Ty.t</a> <span>-></span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-asserting"><a href="#val-asserting" class="anchor"></a><code><span class="keyword">val</span> asserting : <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-term">term</a></code></dt><dt class="spec value" id="val-num_z"><a href="#val-num_z" class="anchor"></a><code><span class="keyword">val</span> num_z : <a href="Ty/index.html#type-t">Ty.t</a> <span>-></span> Z.t <span>-></span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-num_q"><a href="#val-num_q" class="anchor"></a><code><span class="keyword">val</span> num_q : <a href="Ty/index.html#type-t">Ty.t</a> <span>-></span> Q.t <span>-></span> <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-num_str"><a href="#val-num_str" class="anchor"></a><code><span class="keyword">val</span> num_str : <a href="Ty/index.html#type-t">Ty.t</a> <span>-></span> string <span>-></span> <a href="index.html#type-term">term</a></code></dt><dd><p>parses int + <code>num</code></p></dd></dl><dl><dt class="spec value" id="val-arith"><a href="#val-arith" class="anchor"></a><code><span class="keyword">val</span> arith : <a href="Ty/index.html#type-t">Ty.t</a> <span>-></span> <a href="index.html#type-arith_op">arith_op</a> <span>-></span> <a href="index.html#type-term">term</a> list <span>-></span> <a href="index.html#type-term">term</a></code></dt></dl></section><section><header><h3 id="helpers"><a href="#helpers" class="anchor"></a>helpers</h3></header><dl><dt class="spec value" id="val-is_true"><a href="#val-is_true" class="anchor"></a><code><span class="keyword">val</span> is_true : <a href="index.html#type-term">term</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-is_false"><a href="#val-is_false" class="anchor"></a><code><span class="keyword">val</span> is_false : <a href="index.html#type-term">term</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-unfold_binder"><a href="#val-unfold_binder" class="anchor"></a><code><span class="keyword">val</span> unfold_binder : <a href="index.html#type-binder">binder</a> <span>-></span> <a href="index.html#type-term">term</a> <span>-></span> <a href="index.html#type-var">var</a> list * <a href="index.html#type-term">term</a></code></dt><dt class="spec value" id="val-unfold_fun"><a href="#val-unfold_fun" class="anchor"></a><code><span class="keyword">val</span> unfold_fun : <a href="index.html#type-term">term</a> <span>-></span> <a href="index.html#type-var">var</a> list * <a href="index.html#type-term">term</a></code></dt></dl></section><section><header><h3 id="printing"><a href="#printing" class="anchor"></a>Printing</h3></header><dl><dt class="spec value" id="val-pp_ty"><a href="#val-pp_ty" class="anchor"></a><code><span class="keyword">val</span> pp_ty : <a href="Ty/index.html#type-t">Ty.t</a> CCFormat.printer</code></dt><dt class="spec value" id="val-pp_term"><a href="#val-pp_term" class="anchor"></a><code><span class="keyword">val</span> pp_term : <a href="index.html#type-term">term</a> CCFormat.printer</code></dt><dt class="spec value" id="val-pp_statement"><a href="#val-pp_statement" class="anchor"></a><code><span class="keyword">val</span> pp_statement : <a href="index.html#type-statement">statement</a> CCFormat.printer</code></dt></dl></section><section><header><h3 id="environment"><a href="#environment" class="anchor"></a>Environment</h3></header><dl><dt class="spec type" id="type-env_entry"><a href="#type-env_entry" class="anchor"></a><code><span class="keyword">type</span> env_entry</code><code> = </code><table class="variant"><tr id="type-env_entry.E_uninterpreted_ty" class="anchored"><td class="def constructor"><a href="#type-env_entry.E_uninterpreted_ty" class="anchor"></a><code>| </code><code><span class="constructor">E_uninterpreted_ty</span></code></td></tr><tr id="type-env_entry.E_uninterpreted_cst" class="anchored"><td class="def constructor"><a href="#type-env_entry.E_uninterpreted_cst" class="anchor"></a><code>| </code><code><span class="constructor">E_uninterpreted_cst</span></code></td></tr><tr id="type-env_entry.E_const" class="anchored"><td class="def constructor"><a href="#type-env_entry.E_const" class="anchor"></a><code>| </code><code><span class="constructor">E_const</span> <span class="keyword">of</span> <a href="Ty/index.html#type-t">Ty.t</a></code></td></tr><tr id="type-env_entry.E_data" class="anchored"><td class="def constructor"><a href="#type-env_entry.E_data" class="anchor"></a><code>| </code><code><span class="constructor">E_data</span> <span class="keyword">of</span> <a href="Ty/index.html#type-t">Ty.t</a> <a href="../../../sidekick/Sidekick_base_term__ID/index.html#module-Map">Sidekick_base_term.ID.Map</a>.t</code></td></tr><tr id="type-env_entry.E_cstor" class="anchored"><td class="def constructor"><a href="#type-env_entry.E_cstor" class="anchor"></a><code>| </code><code><span class="constructor">E_cstor</span> <span class="keyword">of</span> <a href="Ty/index.html#type-t">Ty.t</a></code></td></tr><tr id="type-env_entry.E_defined" class="anchored"><td class="def constructor"><a href="#type-env_entry.E_defined" class="anchor"></a><code>| </code><code><span class="constructor">E_defined</span> <span class="keyword">of</span> <a href="Ty/index.html#type-t">Ty.t</a> * <a href="index.html#type-term">term</a></code></td></tr></table></dt><dt class="spec type" id="type-env"><a href="#type-env" class="anchor"></a><code><span class="keyword">type</span> env</code><code> = </code><code>{</code><table class="record"><tr id="type-env.defs" class="anchored"><td class="def field"><a href="#type-env.defs" class="anchor"></a><code>defs : <a href="index.html#type-env_entry">env_entry</a> <a href="../../../sidekick/Sidekick_base_term__ID/index.html#module-Map">Sidekick_base_term.ID.Map</a>.t;</code></td></tr></table><code>}</code></dt><dd><p>Environment with definitions and goals</p></dd></dl><dl><dt class="spec value" id="val-env_empty"><a href="#val-env_empty" class="anchor"></a><code><span class="keyword">val</span> env_empty : <a href="index.html#type-env">env</a></code></dt><dt class="spec value" id="val-env_add_statement"><a href="#val-env_add_statement" class="anchor"></a><code><span class="keyword">val</span> env_add_statement : <a href="index.html#type-env">env</a> <span>-></span> <a href="index.html#type-statement">statement</a> <span>-></span> <a href="index.html#type-env">env</a></code></dt><dt class="spec value" id="val-env_of_statements"><a href="#val-env_of_statements" class="anchor"></a><code><span class="keyword">val</span> env_of_statements : <a href="index.html#type-statement">statement</a> Iter.t <span>-></span> <a href="index.html#type-env">env</a></code></dt><dt class="spec value" id="val-env_find_def"><a href="#val-env_find_def" class="anchor"></a><code><span class="keyword">val</span> env_find_def : <a href="index.html#type-env">env</a> <span>-></span> <a href="../../../sidekick/Sidekick_base_term/ID/index.html#type-t">Sidekick_base_term.ID.t</a> <span>-></span> <a href="index.html#type-env_entry">env_entry</a> option</code></dt><dt class="spec value" id="val-env_add_def"><a href="#val-env_add_def" class="anchor"></a><code><span class="keyword">val</span> env_add_def : <a href="index.html#type-env">env</a> <span>-></span> <a href="../../../sidekick/Sidekick_base_term/ID/index.html#type-t">Sidekick_base_term.ID.t</a> <span>-></span> <a href="index.html#type-env_entry">env_entry</a> <span>-></span> <a href="index.html#type-env">env</a></code></dt></dl></section></div></body></html> |