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>
<htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>Propset (infer.Biabduction.Propset)</title><linkrel="stylesheet"href="../../../odoc.css"/><metacharset="utf-8"/><metaname="generator"content="odoc 1.5.0"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><scriptsrc="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><divclass="content"><header><nav><ahref="../index.html">Up</a>–<ahref="../../index.html">infer</a>»<ahref="../index.html">Biabduction</a>» Propset</nav><h1>Module <code>Biabduction.Propset</code></h1><navclass="toc"><ul><li><ahref="#sets-of-propositions">Sets of Propositions</a></li><li><ahref="#pretty-print">Pretty print</a></li></ul></nav></header><aside><p>Functions for Sets of Propositions with and without sharing</p></aside><section><header><h3id="sets-of-propositions"><ahref="#sets-of-propositions"class="anchor"></a>Sets of Propositions</h3></header><dl><dtclass="spec type"id="type-t"><ahref="#type-t"class="anchor"></a><code><spanclass="keyword">type</span> t</code></dt><dd><p>Sets of propositions. The invariant is maintaned that Prop.prop_rename_primed_footprint_vars is called on any prop added to the set.</p></dd></dl><dl><dtclass="spec value"id="val-compare"><ahref="#val-compare"class="anchor"></a><code><spanclass="keyword">val</span> compare : <ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span> int</code></dt><dd><p>Compare propsets</p></dd></dl><dl><dtclass="spec value"id="val-singleton"><ahref="#val-singleton"class="anchor"></a><code><spanclass="keyword">val</span> singleton : <ahref="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a><span>-></span><span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span><span>-></span><ahref="index.html#type-t">t</a></code></dt><dd><p>Singleton set.</p></dd></dl><dl><dtclass="spec value"id="val-mem"><ahref="#val-mem"class="anchor"></a><code><spanclass="keyword">val</span> mem : <span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span><span>-></span><ahref="index.html#type-t">t</a><span>-></span> bool</code></dt><dd><p>Set membership.</p></dd></dl><dl><dtclass="spec value"id="val-union"><ahref="#val-union"class="anchor"></a><code><spanclass="keyword">val</span> union : <ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dd><p>Set union.</p></dd></dl><dl><dtclass="spec value"id="val-inter"><ahref="#val-inter"class="anchor"></a><code><spanclass="keyword">val</span> inter : <ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dd><p>Set intersection</p></dd></dl><dl><dtclass="spec value"id="val-add"><ahref="#val-add"class="anchor"></a><code><spanclass="keyword">val</span> add : <ahref="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a><span>-></span><span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dd><p>Add <code>prop</code> to propset.</p></dd></dl><dl><dtclass="spec value"id="val-diff"><ahref="#val-diff"class="anchor"></a><code><spanclass="keyword">val</span> diff : <ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dd><p>Set difference.</p></dd></dl><dl><dtclass="spec value"id="val-empty"><ahref="#val-empty"class="anchor"></a><code><spanclass="keyword">val</span> empty : <ahref="index.html#type-t">t</a></code></dt><dd><p>The empty set of propositions.</p></dd></dl><dl><dtclass="spec value"id="val-size"><ahref="#val-size"class="anchor"></a><code><spanclass="keyword">val</span> size : <ahref="index.html#type-t">t</a><span>-></span> int</code></dt><dd><p>Size of the set</p></dd></dl><dl><dtclass="spec value"id="val-from_proplist"><ahref="#val-from_proplist"class="anchor"></a><code><spanclass="keyword">val</span> from_proplist : <ahref="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a><span>-></span><span><span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span> list</span><span>-></span><ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-to_proplist"><ahref="#val-to_proplist"class="anchor"></a><code><spanclass="keyword">val</span> to_proplist : <ahref="index.html#type-t">t</a><span>-></span><span><span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span> list</span></code></dt><dtclass="spec value"id="val-map"><ahref="#val-map"class="anchor"></a><code><spanclass="keyword">val</span> map : <ahref="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a><span>-></span><span>(<span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span><span>-></span><span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span>)</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dd><p>Apply function to all the elements of the propset.</p></dd></dl><dl><dtclass="spec value"id="val-map_option"><ahref="#val-map_option"class="anchor"></a><code><spanclass="keyword">val</span> map_option : <ahref="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a><span>-></span><span>(<span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span><span>-></span><span><span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span> option</span>)</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dd><p>Apply function to all the elements of the propset, removing those where it returns <code>None</code>.</p></dd></dl><dl><dtclass="spec value"id="val-fold"><ahref="#val-fold"class="anchor"></a><code><spanclass="keyword">val</span> fold : <span>(<spanclass="type-var">'a</span><span>-></span><span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span><span>-></span><spanclass="type-var">'a</span>)</span><span>-></span><spanclass="type-var">'a</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><spanclass="type-var">'a</span></code></dt><dd><p><code>fold f pset a</code> computes <code>(f pN ... (f p2 (f p1 a))...)</code>, where <code>p1 ... pN</code> are the elements of pset, in increasing order.</p></dd></dl><dl><dtclass="spec value"id="val-iter"><ahref="#val-iter"class="anchor"></a><code><spanclass="keyword">val</span> iter : <span>(<span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span><span>-></span> unit)</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span> unit</code></dt><dd><p><code>iter f pset</code> computes (f p1;f p2;..;f pN) where <code>p1 ... pN</code> are the elements of pset, in increasing order.</p></dd></dl><dl><dtclass="spec value"id="val-partition"><ahref="#val-partition"class="anchor"></a><code><spanclass="keyword">val</span> partition : <span>(<span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span><span>-></span> bool)</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a> * <ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-subseteq"><ahref="#val-subseteq"class="anchor"></a><code><spanclass="keyword">val</span> subseteq : <ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span> bool</code></dt><dtclass="spec value"id="val-is_empty"><ahref="#val-is_empty"class="anchor"></a><code><spanclass="keyword">val</span> is_empty : <ahref="index.html#type-t">t</a><span>-></span> bool</code></dt><dd><p>Set emptiness check.</p></dd></dl><dl><dtclass="spec value"id="val-filter"><ahref="#val-filter"class="anchor"></a><code><spanclass="keyword">val</span> filter : <span>(<span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span><span>-></span> bool)</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt></dl></section><section><header><h3id="pretty-print"><ahref="#pretty-print"class="anchor"></a>Pretty print</h3></header><dl><dtclass="spec value"id="val-d"><ahref="#val-d"class="anchor"></a><code><spanclass="keyword">val</span> d : <span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span><span>-></span><ahref="index.html#type-t">t</a><span>-></span> unit</code></dt><dd><p>dump a propset coming form the given initial prop</p></dd></dl></section></div></body></html>