<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Biabduction__Propset (infer.Biabduction__Propset)</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; Biabduction__Propset</nav><h1>Module <code>Biabduction__Propset</code></h1><nav class="toc"><ul><li><a href="#sets-of-propositions">Sets of Propositions</a></li><li><a href="#pretty-print">Pretty print</a></li></ul></nav></header><aside><p>Functions for Sets of Propositions with and without sharing</p></aside><section><header><h3 id="sets-of-propositions"><a href="#sets-of-propositions" class="anchor"></a>Sets of Propositions</h3></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="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><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><dd><p>Compare propsets</p></dd></dl><dl><dt class="spec value" id="val-singleton"><a href="#val-singleton" class="anchor"></a><code><span class="keyword">val</span> singleton : <a href="../IR/Tenv/index.html#type-t">IR.Tenv.t</a> <span>&#45;&gt;</span> <span><a href="../Biabduction/Prop/index.html#type-normal">Biabduction.Prop.normal</a> <a href="../Biabduction/Prop/index.html#type-t">Biabduction.Prop.t</a></span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dd><p>Singleton set.</p></dd></dl><dl><dt class="spec value" id="val-mem"><a href="#val-mem" class="anchor"></a><code><span class="keyword">val</span> mem : <span><a href="../Biabduction/Prop/index.html#type-normal">Biabduction.Prop.normal</a> <a href="../Biabduction/Prop/index.html#type-t">Biabduction.Prop.t</a></span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Set membership.</p></dd></dl><dl><dt class="spec value" id="val-union"><a href="#val-union" class="anchor"></a><code><span class="keyword">val</span> union : <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><dd><p>Set union.</p></dd></dl><dl><dt class="spec value" id="val-inter"><a href="#val-inter" class="anchor"></a><code><span class="keyword">val</span> inter : <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><dd><p>Set intersection</p></dd></dl><dl><dt class="spec value" id="val-add"><a href="#val-add" class="anchor"></a><code><span class="keyword">val</span> add : <a href="../IR/Tenv/index.html#type-t">IR.Tenv.t</a> <span>&#45;&gt;</span> <span><a href="../Biabduction/Prop/index.html#type-normal">Biabduction.Prop.normal</a> <a href="../Biabduction/Prop/index.html#type-t">Biabduction.Prop.t</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><dd><p>Add <code>prop</code> to propset.</p></dd></dl><dl><dt class="spec value" id="val-diff"><a href="#val-diff" class="anchor"></a><code><span class="keyword">val</span> diff : <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><dd><p>Set difference.</p></dd></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><dd><p>The empty set of propositions.</p></dd></dl><dl><dt class="spec value" id="val-size"><a href="#val-size" class="anchor"></a><code><span class="keyword">val</span> size : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> int</code></dt><dd><p>Size of the set</p></dd></dl><dl><dt class="spec value" id="val-from_proplist"><a href="#val-from_proplist" class="anchor"></a><code><span class="keyword">val</span> from_proplist : <a href="../IR/Tenv/index.html#type-t">IR.Tenv.t</a> <span>&#45;&gt;</span> <span><span><a href="../Biabduction/Prop/index.html#type-normal">Biabduction.Prop.normal</a> <a href="../Biabduction/Prop/index.html#type-t">Biabduction.Prop.t</a></span> list</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-to_proplist"><a href="#val-to_proplist" class="anchor"></a><code><span class="keyword">val</span> to_proplist : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><span><a href="../Biabduction/Prop/index.html#type-normal">Biabduction.Prop.normal</a> <a href="../Biabduction/Prop/index.html#type-t">Biabduction.Prop.t</a></span> list</span></code></dt><dt class="spec value" id="val-map"><a href="#val-map" class="anchor"></a><code><span class="keyword">val</span> map : <a href="../IR/Tenv/index.html#type-t">IR.Tenv.t</a> <span>&#45;&gt;</span> <span>(<span><a href="../Biabduction/Prop/index.html#type-normal">Biabduction.Prop.normal</a> <a href="../Biabduction/Prop/index.html#type-t">Biabduction.Prop.t</a></span> <span>&#45;&gt;</span> <span><a href="../Biabduction/Prop/index.html#type-normal">Biabduction.Prop.normal</a> <a href="../Biabduction/Prop/index.html#type-t">Biabduction.Prop.t</a></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><dd><p>Apply function to all the elements of the propset.</p></dd></dl><dl><dt class="spec value" id="val-map_option"><a href="#val-map_option" class="anchor"></a><code><span class="keyword">val</span> map_option : <a href="../IR/Tenv/index.html#type-t">IR.Tenv.t</a> <span>&#45;&gt;</span> <span>(<span><a href="../Biabduction/Prop/index.html#type-normal">Biabduction.Prop.normal</a> <a href="../Biabduction/Prop/index.html#type-t">Biabduction.Prop.t</a></span> <span>&#45;&gt;</span> <span><span><a href="../Biabduction/Prop/index.html#type-normal">Biabduction.Prop.normal</a> <a href="../Biabduction/Prop/index.html#type-t">Biabduction.Prop.t</a></span> 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><dd><p>Apply function to all the elements of the propset, removing those where it returns <code>None</code>.</p></dd></dl><dl><dt class="spec value" id="val-fold"><a href="#val-fold" class="anchor"></a><code><span class="keyword">val</span> fold : <span>(<span class="type-var">'a</span> <span>&#45;&gt;</span> <span><a href="../Biabduction/Prop/index.html#type-normal">Biabduction.Prop.normal</a> <a href="../Biabduction/Prop/index.html#type-t">Biabduction.Prop.t</a></span> <span>&#45;&gt;</span> <span class="type-var">'a</span>)</span> <span>&#45;&gt;</span> <span class="type-var">'a</span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span class="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><dt class="spec value" id="val-iter"><a href="#val-iter" class="anchor"></a><code><span class="keyword">val</span> iter : <span>(<span><a href="../Biabduction/Prop/index.html#type-normal">Biabduction.Prop.normal</a> <a href="../Biabduction/Prop/index.html#type-t">Biabduction.Prop.t</a></span> <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><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><dt class="spec value" id="val-partition"><a href="#val-partition" class="anchor"></a><code><span class="keyword">val</span> partition : <span>(<span><a href="../Biabduction/Prop/index.html#type-normal">Biabduction.Prop.normal</a> <a href="../Biabduction/Prop/index.html#type-t">Biabduction.Prop.t</a></span> <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-subseteq"><a href="#val-subseteq" class="anchor"></a><code><span class="keyword">val</span> subseteq : <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-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><dd><p>Set emptiness check.</p></dd></dl><dl><dt class="spec value" id="val-filter"><a href="#val-filter" class="anchor"></a><code><span class="keyword">val</span> filter : <span>(<span><a href="../Biabduction/Prop/index.html#type-normal">Biabduction.Prop.normal</a> <a href="../Biabduction/Prop/index.html#type-t">Biabduction.Prop.t</a></span> <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></dl></section><section><header><h3 id="pretty-print"><a href="#pretty-print" class="anchor"></a>Pretty print</h3></header><dl><dt class="spec value" id="val-d"><a href="#val-d" class="anchor"></a><code><span class="keyword">val</span> d : <span><a href="../Biabduction/Prop/index.html#type-normal">Biabduction.Prop.normal</a> <a href="../Biabduction/Prop/index.html#type-t">Biabduction.Prop.t</a></span> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>dump a propset coming form the given initial prop</p></dd></dl></section></div></body></html>