This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
<!DOCTYPE html>
<htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>Abs (infer.InferModules.Abs)</title><linkrel="stylesheet"href="../../../odoc.css"/><metacharset="utf-8"/><metaname="generator"content="odoc %%VERSION%%"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><scriptsrc="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><divclass="content"><header><nav><ahref="../index.html">Up</a>–<ahref="../../index.html">infer</a>»<ahref="../index.html">InferModules</a>» Abs</nav><h1>Module <code>InferModules.Abs</code></h1></header><aside><p>Implementation of Abstraction Functions</p></aside><dl><dtclass="spec type"id="type-rules"><ahref="#type-rules"class="anchor"></a><code><spanclass="keyword">type</span> rules</code></dt><dd><p>Abstraction rules discovered</p></dd></dl><dl><dtclass="spec value"id="val-abstract"><ahref="#val-abstract"class="anchor"></a><code><spanclass="keyword">val</span> abstract : <ahref="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a><span>-></span><ahref="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span><span>-></span><span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span></code></dt><dd><p>Abstract a proposition.</p></dd></dl><dl><dtclass="spec value"id="val-abstract_junk"><ahref="#val-abstract_junk"class="anchor"></a><code><spanclass="keyword">val</span> abstract_junk : <ahref="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a><span>-></span><ahref="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span><span>-></span><span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../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><dtclass="spec value"id="val-abstract_no_symop"><ahref="#val-abstract_no_symop"class="anchor"></a><code><spanclass="keyword">val</span> abstract_no_symop : <ahref="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a><span>-></span><ahref="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span><span>-></span><span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../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><dtclass="spec value"id="val-get_current_rules"><ahref="#val-get_current_rules"class="anchor"></a><code><spanclass="keyword">val</span> get_current_rules : unit <span>-></span><ahref="index.html#type-rules">rules</a></code></dt><dd><p>Get the current rules discoveres</p></dd></dl><dl><dtclass="spec value"id="val-lifted_abstract"><ahref="#val-lifted_abstract"class="anchor"></a><code><spanclass="keyword">val</span> lifted_abstract : <ahref="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a><span>-></span><ahref="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><ahref="../Propset/index.html#type-t">Propset.t</a><span>-></span><ahref="../Propset/index.html#type-t">Propset.t</a></code></dt><dd><p>Abstract each proposition in <code>propset</code></p></dd></dl><dl><dtclass="spec value"id="val-remove_redundant_array_elements"><ahref="#val-remove_redundant_array_elements"class="anchor"></a><code><spanclass="keyword">val</span> remove_redundant_array_elements : <ahref="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a><span>-></span><ahref="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span><span>-></span><span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../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><dtclass="spec value"id="val-reset_current_rules"><ahref="#val-reset_current_rules"class="anchor"></a><code><spanclass="keyword">val</span> reset_current_rules : unit <span>-></span> unit</code></dt><dd><p>Reset the abstraction rules discovered</p></dd></dl><dl><dtclass="spec value"id="val-set_current_rules"><ahref="#val-set_current_rules"class="anchor"></a><code><spanclass="keyword">val</span> set_current_rules : <ahref="index.html#type-rules">rules</a><span>-></span> unit</code></dt><dd><p>Set the current rules discovered</p></dd></dl></div></body></html>