<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>BiabductionSummary (infer.Biabduction.BiabductionSummary)</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; <a href="../index.html">Biabduction</a> &#x00BB; BiabductionSummary</nav><h1>Module <code>Biabduction.BiabductionSummary</code></h1></header><dl><dt class="spec module" id="module-Jprop"><a href="#module-Jprop" class="anchor"></a><code><span class="keyword">module</span> <a href="Jprop/index.html">Jprop</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd><p>Module for joined props: the result of joining together propositions repeatedly</p></dd></dl><dl><dt class="spec module" id="module-Visitedset"><a href="#module-Visitedset" class="anchor"></a><code><span class="keyword">module</span> Visitedset : <a href="../../IStdlib/index.html#module-IStd">IStdlib.IStd</a>.Caml.Set.S <span class="keyword">with</span> <span class="keyword">type</span> <a href="index.html#module-Visitedset">Visitedset</a>.elt = <a href="../../IR/Procdesc/Node/index.html#type-id">IR.Procdesc.Node.id</a> * <span>int list</span></code></dt><dd><p>set of visited nodes: node id and list of lines of all the instructions</p></dd></dl><dl><dt class="spec type" id="type-spec"><a href="#type-spec" class="anchor"></a><code><span class="keyword">type</span> <span>'a spec</span></code><code> = </code><code>{</code><table class="record"><tr id="type-spec.pre" class="anchored"><td class="def field"><a href="#type-spec.pre" class="anchor"></a><code>pre : <span><span class="type-var">'a</span> <a href="Jprop/index.html#type-t">Jprop.t</a></span>;</code></td></tr><tr id="type-spec.posts" class="anchored"><td class="def field"><a href="#type-spec.posts" class="anchor"></a><code>posts : <span><span>(<span><span class="type-var">'a</span> <a href="../Prop/index.html#type-t">Prop.t</a></span> * <a href="../Paths/Path/index.html#type-t">Paths.Path.t</a>)</span> list</span>;</code></td></tr><tr id="type-spec.visited" class="anchored"><td class="def field"><a href="#type-spec.visited" class="anchor"></a><code>visited : <a href="index.html#module-Visitedset">Visitedset</a>.t;</code></td></tr></table><code>}</code></dt><dd><p>A spec consists of:</p><ul><li>pre: a joined prop</li><li>posts: a list of props with path</li><li>visited: a list of pairs (node_id, line) for the visited nodes</li></ul></dd></dl><dl><dt class="spec module" id="module-NormSpec"><a href="#module-NormSpec" class="anchor"></a><code><span class="keyword">module</span> <a href="NormSpec/index.html">NormSpec</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd><p>encapsulate type for normalized specs</p></dd></dl><dl><dt class="spec value" id="val-expose"><a href="#val-expose" class="anchor"></a><code><span class="keyword">val</span> expose : <a href="NormSpec/index.html#type-t">NormSpec.t</a> <span>&#45;&gt;</span> <span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="index.html#type-spec">spec</a></span></code></dt><dt class="spec value" id="val-normalized_specs_to_specs"><a href="#val-normalized_specs_to_specs" class="anchor"></a><code><span class="keyword">val</span> normalized_specs_to_specs : <span><a href="NormSpec/index.html#type-t">NormSpec.t</a> list</span> <span>&#45;&gt;</span> <span><span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="index.html#type-spec">spec</a></span> list</span></code></dt><dd><p>Cast a list of normalized specs to a list of specs</p></dd></dl><dl><dt class="spec value" id="val-pp_spec"><a href="#val-pp_spec" class="anchor"></a><code><span class="keyword">val</span> pp_spec : Stdlib.Format.formatter <span>&#45;&gt;</span> <span><span class="type-var">_</span> <a href="index.html#type-spec">spec</a></span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-spec_normalize"><a href="#val-spec_normalize" class="anchor"></a><code><span class="keyword">val</span> spec_normalize : <a href="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a> <span>&#45;&gt;</span> <span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="index.html#type-spec">spec</a></span> <span>&#45;&gt;</span> <a href="NormSpec/index.html#type-t">NormSpec.t</a></code></dt><dd><p>Convert spec into normal form.</p></dd></dl><dl><dt class="spec type" id="type-phase"><a href="#type-phase" class="anchor"></a><code><span class="keyword">type</span> phase</code><code> = </code><table class="variant"><tr id="type-phase.FOOTPRINT" class="anchored"><td class="def constructor"><a href="#type-phase.FOOTPRINT" class="anchor"></a><code>| </code><code><span class="constructor">FOOTPRINT</span></code></td></tr><tr id="type-phase.RE_EXECUTION" class="anchored"><td class="def constructor"><a href="#type-phase.RE_EXECUTION" class="anchor"></a><code>| </code><code><span class="constructor">RE_EXECUTION</span></code></td></tr></table></dt></dl><dl><dt class="spec value" id="val-equal_phase"><a href="#val-equal_phase" class="anchor"></a><code><span class="keyword">val</span> equal_phase : <a href="index.html#type-phase">phase</a> <span>&#45;&gt;</span> <a href="index.html#type-phase">phase</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-string_of_phase_short"><a href="#val-string_of_phase_short" class="anchor"></a><code><span class="keyword">val</span> string_of_phase_short : <a href="index.html#type-phase">phase</a> <span>&#45;&gt;</span> string</code></dt></dl><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = </code><code>{</code><table class="record"><tr id="type-t.preposts" class="anchored"><td class="def field"><a href="#type-t.preposts" class="anchor"></a><code>preposts : <span><a href="NormSpec/index.html#type-t">NormSpec.t</a> list</span>;</code></td></tr><tr id="type-t.phase" class="anchored"><td class="def field"><a href="#type-t.phase" class="anchor"></a><code>phase : <a href="index.html#type-phase">phase</a>;</code></td></tr></table><code>}</code></dt></dl><dl><dt class="spec value" id="val-get_specs"><a href="#val-get_specs" class="anchor"></a><code><span class="keyword">val</span> get_specs : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <span><span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="index.html#type-spec">spec</a></span> list</span></code></dt><dt class="spec value" id="val-opt_get_phase"><a href="#val-opt_get_phase" class="anchor"></a><code><span class="keyword">val</span> opt_get_phase : <span><a href="index.html#type-t">t</a> option</span> <span>&#45;&gt;</span> <a href="index.html#type-phase">phase</a></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="../../IStdlib/Pp/index.html#type-env">IStdlib.Pp.env</a> <span>&#45;&gt;</span> Stdlib.Format.formatter <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt></dl></div></body></html>