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.

4 lines
5.7 KiB

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Abs (infer.InferModules.Abs)</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.Abs</span></h1></header><p>Implementation of Abstraction Functions</p><div class="spec type" id="type-rules"><a href="#type-rules" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>rules</code><code></code><code></code></div><div class="doc"><p>Abstraction rules discovered</p></div></div><div class="spec val" id="val-abstract"><a href="#val-abstract" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>abstract : <a href="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span class="keyword">&#8209;&gt;</span> <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="../Prop/index.html#type-t">Prop.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></code></div><div class="doc"><p>Abstract a proposition.</p></div></div><div class="spec val" id="val-abstract_junk"><a href="#val-abstract_junk" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>abstract_junk : <a href="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span class="keyword">&#8209;&gt;</span> <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="../Prop/index.html#type-t">Prop.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></code></div><div class="doc"><p>Check whether the prop contains junk.
If it does, and <code class="code">Config.allowleak</code> is true, remove the junk,
otherwise raise a Leak exception.</p></div></div><div class="spec val" id="val-abstract_no_symop"><a href="#val-abstract_no_symop" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>abstract_no_symop : <a href="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span class="keyword">&#8209;&gt;</span> <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="../Prop/index.html#type-t">Prop.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></code></div><div class="doc"><p>Abstract a proposition but don't pay a SymOp</p></div></div><div class="spec val" id="val-get_current_rules"><a href="#val-get_current_rules" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>get_current_rules : unit <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-rules">rules</a></code></div><div class="doc"><p>Get the current rules discoveres</p></div></div><div class="spec val" id="val-lifted_abstract"><a href="#val-lifted_abstract" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>lifted_abstract : <a href="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../Propset/index.html#type-t">Propset.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../Propset/index.html#type-t">Propset.t</a></code></div><div class="doc"><p>Abstract each proposition in <code class="code">propset</code></p></div></div><div class="spec val" id="val-remove_redundant_array_elements"><a href="#val-remove_redundant_array_elements" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>remove_redundant_array_elements : <a href="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span class="keyword">&#8209;&gt;</span> <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="../Prop/index.html#type-t">Prop.t</a> <span class="keyword">&#8209;&gt;</span> <a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></code></div><div class="doc"><p>Remove redundant elements in an array, and check for junk afterwards</p></div></div><div class="spec val" id="val-reset_current_rules"><a href="#val-reset_current_rules" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>reset_current_rules : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Reset the abstraction rules discovered</p></div></div><div class="spec val" id="val-set_current_rules"><a href="#val-set_current_rules" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>set_current_rules : <a href="index.html#type-rules">rules</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Set the current rules discovered</p></div></div></body></html>