You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2 lines
19 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Pulselib__PulseBaseStack (infer.Pulselib__PulseBaseStack)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">infer</a> &#x00BB; Pulselib__PulseBaseStack</nav><h1>Module <code>Pulselib__PulseBaseStack</code></h1></header><div class="spec module" id="module-F"><a href="#module-F" class="anchor"></a><code><span class="keyword">module</span> F = Stdlib.Format</code></div><div><div class="spec include"><div class="doc"><details open="open"><summary><span class="def"><code><span class="keyword">include</span> <a href="../IStdlib/PrettyPrintable/index.html#module-type-MonoMap">IStdlib.PrettyPrintable.MonoMap</a> <span class="keyword">with</span> <span class="keyword">type</span> <a href="../IStdlib/PrettyPrintable/module-type-MonoMap/index.html#type-key">key</a> = <a href="../IR/Var/index.html#type-t">IR.Var.t</a> <span class="keyword">and</span> <span class="keyword">type</span> <a href="../IStdlib/PrettyPrintable/module-type-MonoMap/index.html#type-value">value</a> = <a href="../Pulselib/PulseAbstractValue/index.html#type-t">Pulselib.PulseBasicInterface.AbstractValue.t</a> * <a href="../Pulselib/PulseValueHistory/index.html#type-t">Pulselib.PulseBasicInterface.ValueHistory.t</a></code></span></summary><dl><dt class="spec type" id="type-key"><a href="#type-key" class="anchor"></a><code><span class="keyword">type</span> key</code><code> = <a href="../IR/Var/index.html#type-t">IR.Var.t</a></code></dt><dt class="spec type" id="type-value"><a href="#type-value" class="anchor"></a><code><span class="keyword">type</span> value</code><code> = <a href="../Pulselib/PulseAbstractValue/index.html#type-t">Pulselib.PulseBasicInterface.AbstractValue.t</a> * <a href="../Pulselib/PulseValueHistory/index.html#type-t">Pulselib.PulseBasicInterface.ValueHistory.t</a></code></dt><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-empty"><a href="#val-empty" class="anchor"></a><code><span class="keyword">val</span> empty : <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-is_empty"><a href="#val-is_empty" class="anchor"></a><code><span class="keyword">val</span> is_empty : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-mem"><a href="#val-mem" class="anchor"></a><code><span class="keyword">val</span> mem : <a href="index.html#type-key">key</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-add"><a href="#val-add" class="anchor"></a><code><span class="keyword">val</span> add : <a href="index.html#type-key">key</a> <span>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-update"><a href="#val-update" class="anchor"></a><code><span class="keyword">val</span> update : <a href="index.html#type-key">key</a> <span>&#45;&gt;</span> <span>(<span><a href="index.html#type-value">value</a> option</span> <span>&#45;&gt;</span> <span><a href="index.html#type-value">value</a> option</span>)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-singleton"><a href="#val-singleton" class="anchor"></a><code><span class="keyword">val</span> singleton : <a href="index.html#type-key">key</a> <span>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-remove"><a href="#val-remove" class="anchor"></a><code><span class="keyword">val</span> remove : <a href="index.html#type-key">key</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-merge"><a href="#val-merge" class="anchor"></a><code><span class="keyword">val</span> merge : <span>(<a href="index.html#type-key">key</a> <span>&#45;&gt;</span> <span><a href="index.html#type-value">value</a> option</span> <span>&#45;&gt;</span> <span><a href="index.html#type-value">value</a> option</span> <span>&#45;&gt;</span> <span><a href="index.html#type-value">value</a> option</span>)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-union"><a href="#val-union" class="anchor"></a><code><span class="keyword">val</span> union : <span>(<a href="index.html#type-key">key</a> <span>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> <span><a href="index.html#type-value">value</a> option</span>)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-compare"><a href="#val-compare" class="anchor"></a><code><span class="keyword">val</span> compare : <span>(<a href="index.html#type-value">value</a> <span>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> int)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span class="keyword">val</span> equal : <span>(<a href="index.html#type-value">value</a> <span>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-iter"><a href="#val-iter" class="anchor"></a><code><span class="keyword">val</span> iter : <span>(<a href="index.html#type-key">key</a> <span>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> unit)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-fold"><a href="#val-fold" class="anchor"></a><code><span class="keyword">val</span> fold : <span>(<a href="index.html#type-key">key</a> <span>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> <span class="type-var">'a</span> <span>&#45;&gt;</span> <span class="type-var">'a</span>)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span class="type-var">'a</span> <span>&#45;&gt;</span> <span class="type-var">'a</span></code></dt><dt class="spec value" id="val-for_all"><a href="#val-for_all" class="anchor"></a><code><span class="keyword">val</span> for_all : <span>(<a href="index.html#type-key">key</a> <span>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-exists"><a href="#val-exists" class="anchor"></a><code><span class="keyword">val</span> exists : <span>(<a href="index.html#type-key">key</a> <span>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-filter"><a href="#val-filter" class="anchor"></a><code><span class="keyword">val</span> filter : <span>(<a href="index.html#type-key">key</a> <span>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-filter_map"><a href="#val-filter_map" class="anchor"></a><code><span class="keyword">val</span> filter_map : <span>(<a href="index.html#type-key">key</a> <span>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> <span><a href="index.html#type-value">value</a> option</span>)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-partition"><a href="#val-partition" class="anchor"></a><code><span class="keyword">val</span> partition : <span>(<a href="index.html#type-key">key</a> <span>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> * <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-cardinal"><a href="#val-cardinal" class="anchor"></a><code><span class="keyword">val</span> cardinal : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-bindings"><a href="#val-bindings" class="anchor"></a><code><span class="keyword">val</span> bindings : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><span>(<a href="index.html#type-key">key</a> * <a href="index.html#type-value">value</a>)</span> list</span></code></dt><dt class="spec value" id="val-min_binding"><a href="#val-min_binding" class="anchor"></a><code><span class="keyword">val</span> min_binding : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-key">key</a> * <a href="index.html#type-value">value</a></code></dt><dt class="spec value" id="val-min_binding_opt"><a href="#val-min_binding_opt" class="anchor"></a><code><span class="keyword">val</span> min_binding_opt : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><span>(<a href="index.html#type-key">key</a> * <a href="index.html#type-value">value</a>)</span> option</span></code></dt><dt class="spec value" id="val-max_binding"><a href="#val-max_binding" class="anchor"></a><code><span class="keyword">val</span> max_binding : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-key">key</a> * <a href="index.html#type-value">value</a></code></dt><dt class="spec value" id="val-max_binding_opt"><a href="#val-max_binding_opt" class="anchor"></a><code><span class="keyword">val</span> max_binding_opt : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><span>(<a href="index.html#type-key">key</a> * <a href="index.html#type-value">value</a>)</span> option</span></code></dt><dt class="spec value" id="val-choose"><a href="#val-choose" class="anchor"></a><code><span class="keyword">val</span> choose : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-key">key</a> * <a href="index.html#type-value">value</a></code></dt><dt class="spec value" id="val-choose_opt"><a href="#val-choose_opt" class="anchor"></a><code><span class="keyword">val</span> choose_opt : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><span>(<a href="index.html#type-key">key</a> * <a href="index.html#type-value">value</a>)</span> option</span></code></dt><dt class="spec value" id="val-split"><a href="#val-split" class="anchor"></a><code><span class="keyword">val</span> split : <a href="index.html#type-key">key</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> * <span><a href="index.html#type-value">value</a> option</span> * <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-find"><a href="#val-find" class="anchor"></a><code><span class="keyword">val</span> find : <a href="index.html#type-key">key</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-value">value</a></code></dt><dt class="spec value" id="val-find_opt"><a href="#val-find_opt" class="anchor"></a><code><span class="keyword">val</span> find_opt : <a href="index.html#type-key">key</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><a href="index.html#type-value">value</a> option</span></code></dt><dt class="spec value" id="val-find_first"><a href="#val-find_first" class="anchor"></a><code><span class="keyword">val</span> find_first : <span>(<a href="index.html#type-key">key</a> <span>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-key">key</a> * <a href="index.html#type-value">value</a></code></dt><dt class="spec value" id="val-find_first_opt"><a href="#val-find_first_opt" class="anchor"></a><code><span class="keyword">val</span> find_first_opt : <span>(<a href="index.html#type-key">key</a> <span>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><span>(<a href="index.html#type-key">key</a> * <a href="index.html#type-value">value</a>)</span> option</span></code></dt><dt class="spec value" id="val-find_last"><a href="#val-find_last" class="anchor"></a><code><span class="keyword">val</span> find_last : <span>(<a href="index.html#type-key">key</a> <span>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-key">key</a> * <a href="index.html#type-value">value</a></code></dt><dt class="spec value" id="val-find_last_opt"><a href="#val-find_last_opt" class="anchor"></a><code><span class="keyword">val</span> find_last_opt : <span>(<a href="index.html#type-key">key</a> <span>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><span>(<a href="index.html#type-key">key</a> * <a href="index.html#type-value">value</a>)</span> option</span></code></dt><dt class="spec value" id="val-map"><a href="#val-map" class="anchor"></a><code><span class="keyword">val</span> map : <span>(<a href="index.html#type-value">value</a> <span>&#45;&gt;</span> <a href="index.html#type-value">value</a>)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mapi"><a href="#val-mapi" class="anchor"></a><code><span class="keyword">val</span> mapi : <span>(<a href="index.html#type-key">key</a> <span>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> <a href="index.html#type-value">value</a>)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-is_singleton_or_more"><a href="#val-is_singleton_or_more" class="anchor"></a><code><span class="keyword">val</span> is_singleton_or_more : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><span>(<a href="index.html#type-key">key</a> * <a href="index.html#type-value">value</a>)</span> <a href="../IStdlib/IContainer/index.html#type-singleton_or_more">IStdlib.IContainer.singleton_or_more</a></span></code></dt><dt class="spec value" id="val-fold_map"><a href="#val-fold_map" class="anchor"></a><code><span class="keyword">val</span> fold_map : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span>init:<span class="type-var">'a</span></span> <span>&#45;&gt;</span> <span>f:<span>(<span class="type-var">'a</span> <span>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> <span class="type-var">'a</span> * <a href="index.html#type-value">value</a>)</span></span> <span>&#45;&gt;</span> <span class="type-var">'a</span> * <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-fold_mapi"><a href="#val-fold_mapi" class="anchor"></a><code><span class="keyword">val</span> fold_mapi : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span>init:<span class="type-var">'a</span></span> <span>&#45;&gt;</span> <span>f:<span>(<a href="index.html#type-key">key</a> <span>&#45;&gt;</span> <span class="type-var">'a</span> <span>&#45;&gt;</span> <a href="index.html#type-value">value</a> <span>&#45;&gt;</span> <span class="type-var">'a</span> * <a href="index.html#type-value">value</a>)</span></span> <span>&#45;&gt;</span> <span class="type-var">'a</span> * <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-of_seq"><a href="#val-of_seq" class="anchor"></a><code><span class="keyword">val</span> of_seq : <span><span>(<a href="index.html#type-key">key</a> * <a href="index.html#type-value">value</a>)</span> Stdlib.Seq.t</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt></dl></details></div></div></div><dl><dt class="spec value" id="val-compare"><a href="#val-compare" class="anchor"></a><code><span class="keyword">val</span> compare : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span class="keyword">val</span> equal : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <a href="index.html#module-F">F</a>.formatter <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-yojson_of_t"><a href="#val-yojson_of_t" class="anchor"></a><code><span class="keyword">val</span> yojson_of_t : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> Yojson.Safe.t</code></dt><dt class="spec value" id="val-canonicalize"><a href="#val-canonicalize" class="anchor"></a><code><span class="keyword">val</span> canonicalize : <span>get_var_repr:<span>(<a href="../Pulselib/PulseAbstractValue/index.html#type-t">Pulselib.PulseBasicInterface.AbstractValue.t</a> <span>&#45;&gt;</span> <a href="../Pulselib/PulseAbstractValue/index.html#type-t">Pulselib.PulseBasicInterface.AbstractValue.t</a>)</span></span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><a href="index.html#type-t">t</a> <a href="../Pulselib/PulseSatUnsat/index.html#type-t">Pulselib.PulseBasicInterface.SatUnsat.t</a></span></code></dt><dd><p>replace each address in the stack by its canonical representative according to the current equality relation, represented by <code>get_var_repr</code></p></dd></dl><dl><dt class="spec value" id="val-subst_var"><a href="#val-subst_var" class="anchor"></a><code><span class="keyword">val</span> subst_var : <span>(<a href="../Pulselib/PulseAbstractValue/index.html#type-t">Pulselib.PulseBasicInterface.AbstractValue.t</a> * <a href="../Pulselib/PulseAbstractValue/index.html#type-t">Pulselib.PulseBasicInterface.AbstractValue.t</a>)</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><a href="index.html#type-t">t</a> <a href="../Pulselib/PulseSatUnsat/index.html#type-t">Pulselib.PulseBasicInterface.SatUnsat.t</a></span></code></dt></dl></div></body></html>