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.

5 lines
8.5 KiB

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>BiabductionSummary (infer.InferModules.BiabductionSummary)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">infer</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferModules.BiabductionSummary</span></h1></header><div class="spec module" id="module-Jprop"><a href="#module-Jprop" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="Jprop/index.html">Jprop</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"><p>Module for joined props: the result of joining together propositions repeatedly</p></div></div><div class="spec module" id="module-Visitedset"><a href="#module-Visitedset" class="anchor"></a><div class="def module"><code><span class="keyword">module </span>Visitedset : <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.Caml.Set.S<span class="keyword"> with </span><span class="keyword">type </span><a href="index.html#module-Visitedset">Visitedset</a>.elt<span class="keyword"> = </span><a href="../../../InferIR/InferIR/Procdesc/Node/index.html#type-id">InferIR.Procdesc.Node.id</a><span class="keyword"> * </span>int list</code></div><div class="doc"><p>set of visited nodes: node id and list of lines of all the instructions</p></div></div><div class="spec type" id="type-spec"><a href="#type-spec" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a spec</code><code></code><code><span class="keyword"> = </span></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 class="type-var">'a</span> <a href="Jprop/index.html#type-t">Jprop.t</a>;</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 class="type-var">'a</span> <a href="../Prop/index.html#type-t">Prop.t</a><span class="keyword"> * </span><a href="../Paths/Path/index.html#type-t">Paths.Path.t</a>) list;</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><code></code></div><div class="doc"><p>A spec consists of:
pre: a joined prop
posts: a list of props with path
visited: a list of pairs (node_id, line) for the visited nodes</p></div></div><div class="spec module" id="module-NormSpec"><a href="#module-NormSpec" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="NormSpec/index.html">NormSpec</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"><p>encapsulate type for normalized specs</p></div></div><div class="spec val" id="val-normalized_specs_to_specs"><a href="#val-normalized_specs_to_specs" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>normalized_specs_to_specs : <a href="NormSpec/index.html#type-t">NormSpec.t</a> list <span class="keyword">&#8209;&gt;</span> <a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="index.html#type-spec">spec</a> list</code></div><div class="doc"><p>Cast a list of normalized specs to a list of specs</p></div></div><div class="spec val" id="val-d_spec"><a href="#val-d_spec" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>d_spec : <span class="type-var">'a</span> <a href="index.html#type-spec">spec</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Dump a spec</p></div></div><div class="spec val" id="val-spec_normalize"><a href="#val-spec_normalize" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>spec_normalize : <a href="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="index.html#type-spec">spec</a> <span class="keyword">&#8209;&gt;</span> <a href="NormSpec/index.html#type-t">NormSpec.t</a></code></div><div class="doc"><p>Convert spec into normal form w.r.t. variable renaming</p></div></div><div class="spec val" id="val-pp_spec"><a href="#val-pp_spec" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp_spec : <a href="../../../InferStdlib/InferStdlib/Pp/index.html#type-env">InferStdlib.Pp.env</a> <span class="keyword">&#8209;&gt;</span> (int<span class="keyword"> * </span>int) option <span class="keyword">&#8209;&gt;</span> Format.formatter <span class="keyword">&#8209;&gt;</span> <a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="index.html#type-spec">spec</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Print the spec</p></div></div><div class="spec type" id="type-phase"><a href="#type-phase" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>phase</code><code></code><code><span class="keyword"> = </span></code><table class="variant"><tr id="type-phase.FOOTPRINT" class="anchored"><td class="def constructor"><a href="#type-phase.FOOTPRINT" class="anchor"></a><code><span class="keyword">| </span></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><span class="keyword">| </span></code><code><span class="constructor">RE_EXECUTION</span></code></td></tr></table><code></code></div><div class="doc"></div></div><div class="spec val" id="val-equal_phase"><a href="#val-equal_phase" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>equal_phase : <a href="index.html#type-phase">phase</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-phase">phase</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-string_of_phase_short"><a href="#val-string_of_phase_short" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>string_of_phase_short : <a href="index.html#type-phase">phase</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"></div></div><div class="spec val" id="val-get_specs_from_preposts"><a href="#val-get_specs_from_preposts" class="anchor"></a><div class="def val"><code><span