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.

2 lines
5.4 KiB

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>LoopInvariant (infer.InferModules.LoopInvariant)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><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">InferModules</a> &#x00BB; LoopInvariant</nav><h1>Module <code>InferModules.LoopInvariant</code></h1></header><div class="spec module" id="module-InvariantVars"><a href="#module-InvariantVars" class="anchor"></a><code><span class="keyword">module</span> <a href="InvariantVars/index.html">InvariantVars</a> : <span class="keyword">module</span> <span class="keyword">type</span> <span class="keyword">of</span> <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="spec module" id="module-VarsInLoop"><a href="#module-VarsInLoop" class="anchor"></a><code><span class="keyword">module</span> <a href="VarsInLoop/index.html">VarsInLoop</a> : <span class="keyword">module</span> <span class="keyword">type</span> <span class="keyword">of</span> <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="spec module" id="module-LoopNodes"><a href="#module-LoopNodes" class="anchor"></a><code><span class="keyword">module</span> <a href="LoopNodes/index.html">LoopNodes</a> : <span class="keyword">module</span> <span class="keyword">type</span> <span class="keyword">of</span> <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="spec module" id="module-VarSet"><a href="#module-VarSet" class="anchor"></a><code><span class="keyword">module</span> <a href="VarSet/index.html">VarSet</a> : <span class="keyword">module</span> <span class="keyword">type</span> <span class="keyword">of</span> <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><dl><dt class="spec module" id="module-LoopHeadToLoopNodes"><a href="#module-LoopHeadToLoopNodes" class="anchor"></a><code><span class="keyword">module</span> LoopHeadToLoopNodes = <a href="../../../InferIR/InferIR/Procdesc/index.html#module-NodeMap">InferIR.Procdesc.NodeMap</a></code></dt><dd><p>Map loop header node -&gt; all nodes in the loop</p></dd></dl><dl><dt class="spec module" id="module-LoopHeadToInvVars"><a href="#module-LoopHeadToInvVars" class="anchor"></a><code><span class="keyword">module</span> LoopHeadToInvVars = <a href="../../../InferIR/InferIR/Procdesc/index.html#module-NodeMap">InferIR.Procdesc.NodeMap</a></code></dt><dd><p>Map loop head -&gt; invariant vars in loop</p></dd></dl><dl><dt class="spec type" id="type-invariant_map"><a href="#type-invariant_map" class="anchor"></a><code><span class="keyword">type</span> invariant_map</code><code> = <span><a href="VarsInLoop/index.html#type-t">VarsInLoop.t</a> <a href="../../../InferIR/InferIR__Procdesc/index.html#module-NodeMap">InferIR.Procdesc.NodeMap</a>.t</span></code></dt></dl><dl><dt class="spec value" id="val-get_inv_vars_in_loop"><a href="#val-get_inv_vars_in_loop" class="anchor"></a><code><span class="keyword">val</span> get_inv_vars_in_loop : <a href="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a> <span>&#45;&gt;</span> <a href="../ReachingDefs/index.html#type-invariant_map">ReachingDefs.invariant_map</a> <span>&#45;&gt;</span> <span>is_pure_by_default:bool</span> <span>&#45;&gt;</span> <span>get_callee_purity:<span>(<a href="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span>&#45;&gt;</span> <span><span><a href="../PurityDomain/ModifiedParamIndices/index.html#type-t">PurityDomain.ModifiedParamIndices.t</a> <a href="../AbstractDomain/Types/index.html#type-top_lifted">AbstractDomain.Types.top_lifted</a></span> <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.ISt