<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Abs (infer.Biabduction.Abs)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.1"/><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; Abs</nav><h1>Module <code>Biabduction.Abs</code></h1></header><aside><p>Implementation of Abstraction Functions</p></aside><dl><dt class="spec type" id="type-rules"><a href="#type-rules" class="anchor"></a><code><span class="keyword">type</span> rules</code></dt><dd><p>Abstraction rules discovered</p></dd></dl><dl><dt class="spec value" id="val-abstract"><a href="#val-abstract" class="anchor"></a><code><span class="keyword">val</span> abstract : <span><a href="../BiabductionSummary/index.html#type-t">BiabductionSummary.t</a> <a href="../../Absint/InterproceduralAnalysis/index.html#type-t">Absint.InterproceduralAnalysis.t</a></span> <span>&#45;&gt;</span> <span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span> <span>&#45;&gt;</span> <span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span></code></dt><dd><p>Abstract a proposition.</p></dd></dl><dl><dt class="spec value" id="val-abstract_spec"><a href="#val-abstract_spec" class="anchor"></a><code><span class="keyword">val</span> abstract_spec : <span><a href="../BiabductionSummary/index.html#type-t">BiabductionSummary.t</a> <a href="../../Absint/InterproceduralAnalysis/index.html#type-t">Absint.InterproceduralAnalysis.t</a></span> <span>&#45;&gt;</span> <span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../BiabductionSummary/index.html#type-spec">BiabductionSummary.spec</a></span> <span>&#45;&gt;</span> <a href="../BiabductionSummary/NormSpec/index.html#type-t">BiabductionSummary.NormSpec.t</a></code></dt><dd><p>Normalizes names and applies simplifications, soem of which require looking at both pre and post.</p></dd></dl><dl><dt class="spec value" id="val-abstract_junk"><a href="#val-abstract_junk" class="anchor"></a><code><span class="keyword">val</span> abstract_junk : <span><a href="../BiabductionSummary/index.html#type-t">BiabductionSummary.t</a> <a href="../../Absint/InterproceduralAnalysis/index.html#type-t">Absint.InterproceduralAnalysis.t</a></span> <span>&#45;&gt;</span> <span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span> <span>&#45;&gt;</span> <span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span></code></dt><dd><p>Check whether the prop contains junk. If it does, and <code>Config.allowleak</code> is true, remove the junk, otherwise raise a Leak exception.</p></dd></dl><dl><dt class="spec value" id="val-abstract_no_symop"><a href="#val-abstract_no_symop" class="anchor"></a><code><span class="keyword">val</span> abstract_no_symop : <span><a href="../BiabductionSummary/index.html#type-t">BiabductionSummary.t</a> <a href="../../Absint/InterproceduralAnalysis/index.html#type-t">Absint.InterproceduralAnalysis.t</a></span> <span>&#45;&gt;</span> <span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span> <span>&#45;&gt;</span> <span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span></code></dt><dd><p>Abstract a proposition but don't pay a SymOp</p></dd></dl><dl><dt class="spec value" id="val-get_current_rules"><a href="#val-get_current_rules" class="anchor"></a><code><span class="keyword">val</span> get_current_rules : unit <span>&#45;&gt;</span> <a href="index.html#type-rules">rules</a></code></dt><dd><p>Get the current rules discoveres</p></dd></dl><dl><dt class="spec value" id="val-lifted_abstract"><a href="#val-lifted_abstract" class="anchor"></a><code><span class="keyword">val</span> lifted_abstract : <span><a href="../BiabductionSummary/index.html#type-t">BiabductionSummary.t</a> <a href="../../Absint/InterproceduralAnalysis/index.html#type-t">Absint.InterproceduralAnalysis.t</a></span> <span>&#45;&gt;</span> <a href="../Propset/index.html#type-t">Propset.t</a> <span>&#45;&gt;</span> <a href="../Propset/index.html#type-t">Propset.t</a></code></dt><dd><p>Abstract each proposition in <code>propset</code></p></dd></dl><dl><dt class="spec value" id="val-remove_redundant_array_elements"><a href="#val-remove_redundant_array_elements" class="anchor"></a><code><span class="keyword">val</span> remove_redundant_array_elements : <span><a href="../BiabductionSummary/index.html#type-t">BiabductionSummary.t</a> <a href="../../Absint/InterproceduralAnalysis/index.html#type-t">Absint.InterproceduralAnalysis.t</a></span> <span>&#45;&gt;</span> <span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span> <span>&#45;&gt;</span> <span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span></code></dt><dd><p>Remove redundant elements in an array, and check for junk afterwards</p></dd></dl><dl><dt class="spec value" id="val-reset_current_rules"><a href="#val-reset_current_rules" class="anchor"></a><code><span class="keyword">val</span> reset_current_rules : unit <span>&#45;&gt;</span> unit</code></dt><dd><p>Reset the abstraction rules discovered</p></dd></dl><dl><dt class="spec value" id="val-set_current_rules"><a href="#val-set_current_rules" class="anchor"></a><code><span class="keyword">val</span> set_current_rules : <a href="index.html#type-rules">rules</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>Set the current rules discovered</p></dd></dl></div></body></html>