<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Pulselib__PulseExecutionDomain (infer.Pulselib__PulseExecutionDomain)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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; Pulselib__PulseExecutionDomain</nav><h1>Module <code>Pulselib__PulseExecutionDomain</code></h1></header><div class="spec module" id="module-AbductiveDomain"><a href="#module-AbductiveDomain" class="anchor"></a><code><span class="keyword">module</span> AbductiveDomain = <a href="../Pulselib/index.html#module-PulseAbductiveDomain">Pulselib.PulseAbductiveDomain</a></code></div><div class="spec module" id="module-LatentIssue"><a href="#module-LatentIssue" class="anchor"></a><code><span class="keyword">module</span> LatentIssue = <a href="../Pulselib/index.html#module-PulseLatentIssue">Pulselib.PulseLatentIssue</a></code></div><dl><dt class="spec type" id="type-base_t"><a href="#type-base_t" class="anchor"></a><code><span class="keyword">type</span> <span>'abductive_domain_t base_t</span></code><code> = </code><table class="variant"><tr id="type-base_t.ContinueProgram" class="anchored"><td class="def constructor"><a href="#type-base_t.ContinueProgram" class="anchor"></a><code>| </code><code><span class="constructor">ContinueProgram</span> <span class="keyword">of</span> <span class="type-var">'abductive_domain_t</span></code></td><td class="doc"><p>represents the state at the program point</p></td></tr><tr id="type-base_t.ExitProgram" class="anchored"><td class="def constructor"><a href="#type-base_t.ExitProgram" class="anchor"></a><code>| </code><code><span class="constructor">ExitProgram</span> <span class="keyword">of</span> <a href="../Pulselib/PulseAbductiveDomain/index.html#type-summary">AbductiveDomain.summary</a></code></td><td class="doc"><p>represents the state originating at exit/divergence.</p></td></tr><tr id="type-base_t.AbortProgram" class="anchored"><td class="def constructor"><a href="#type-base_t.AbortProgram" class="anchor"></a><code>| </code><code><span class="constructor">AbortProgram</span> <span class="keyword">of</span> <a href="../Pulselib/PulseAbductiveDomain/index.html#type-summary">AbductiveDomain.summary</a></code></td><td class="doc"><p>represents the state at the program point that caused an error</p></td></tr><tr id="type-base_t.LatentAbortProgram" class="anchored"><td class="def constructor"><a href="#type-base_t.LatentAbortProgram" class="anchor"></a><code>| </code><code><span class="constructor">LatentAbortProgram</span> <span class="keyword">of</span> </code><code>{</code><table class="record"><tr id="type-base_t.astate" class="anchored"><td class="def field"><a href="#type-base_t.astate" class="anchor"></a><code>astate : <a href="../Pulselib/PulseAbductiveDomain/index.html#type-summary">AbductiveDomain.summary</a>;</code></td></tr><tr id="type-base_t.latent_issue" class="anchored"><td class="def field"><a href="#type-base_t.latent_issue" class="anchor"></a><code>latent_issue : <a href="../Pulselib/PulseLatentIssue/index.html#type-t">LatentIssue.t</a>;</code></td></tr></table><code>}</code></td><td class="doc"><p>this path leads to an error but we don't have conclusive enough data to report it yet</p></td></tr><tr id="type-base_t.LatentInvalidAccess" class="anchored"><td class="def constructor"><a href="#type-base_t.LatentInvalidAccess" class="anchor"></a><code>| </code><code><span class="constructor">LatentInvalidAccess</span> <span class="keyword">of</span> </code><code>{</code><table class="record"><tr id="type-base_t.astate" class="anchored"><td class="def field"><a href="#type-base_t.astate" class="anchor"></a><code>astate : <a href="../Pulselib/PulseAbductiveDomain/index.html#type-summary">AbductiveDomain.summary</a>;</code></td></tr><tr id="type-base_t.address" class="anchored"><td class="def field"><a href="#type-base_t.address" class="anchor"></a><code>address : <a href="../Pulselib/PulseAbstractValue/index.html#type-t">Pulselib.PulseBasicInterface.AbstractValue.t</a>;</code></td></tr><tr id="type-base_t.must_be_valid" class="anchored"><td class="def field"><a href="#type-base_t.must_be_valid" class="anchor"></a><code>must_be_valid : <a href="../Pulselib/PulseTrace/index.html#type-t">Pulselib.PulseBasicInterface.Trace.t</a> * <span><a href="../Pulselib/PulseInvalidation/index.html#type-must_be_valid_reason">Pulselib.PulseBasicInterface.Invalidation.must_be_valid_reason</a> option</span>;</code></td></tr><tr id="type-base_t.calling_context" class="anchored"><td class="def field"><a href="#type-base_t.calling_context" class="anchor"></a><code>calling_context : <span><span>(<a href="../Pulselib/PulseCallEvent/index.html#type-t">Pulselib.PulseBasicInterface.CallEvent.t</a> * <a href="../IBase/Location/index.html#type-t">IBase.Location.t</a>)</span> list</span>;</code></td></tr></table><code>}</code></td><td class="doc"><p>if <code>address</code> is ever observed to be invalid then there is an invalid access because it <code>must_be_valid</code></p></td></tr><tr id="type-base_t.ISLLatentMemoryError" class="anchored"><td class="def constructor"><a href="#type-base_t.ISLLatentMemoryError" class="anchor"></a><code>| </code><code><span class="constructor">ISLLatentMemoryError</span> <span class="keyword">of</span> <a href="../Pulselib/PulseAbductiveDomain/index.html#type-summary">AbductiveDomain.summary</a></code></td><td class="doc"><p>represents the state at the program point that might cause an error; used for <span class="xref-unresolved" title="unresolved reference to &quot;Config.pulse_isl&quot;"><code>Config</code>.pulse_isl</span></p></td></tr></table></dt><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = <span><a href="../Pulselib/PulseAbductiveDomain/index.html#type-t">AbductiveDomain.t</a> <a href="index.html#type-base_t">base_t</a></span></code></dt></dl><div><div class="spec include"><div class="doc"><details open="open"><summary><span class="def"><code><span class="keyword">include</span> <a href="../Absint/AbstractDomain/index.html#module-type-NoJoin">Absint.AbstractDomain.NoJoin</a> <span class="keyword">with</span> <span class="keyword">type</span> <a href="../Absint/AbstractDomain/module-type-NoJoin/index.html#type-t">t</a> := <a href="index.html#type-t">t</a></code></span></summary><div><div class="spec include"><div class="doc"><details open="open"><summary><span class="def"><code><span class="keyword">include</span> <a href="../IStdlib/PrettyPrintable/index.html#module-type-PrintableType">IStdlib.PrettyPrintable.PrintableType</a></code></span></summary><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <a href="../IStdlib/PrettyPrintable/index.html#module-F">IStdlib.PrettyPrintable.F</a>.formatter <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt></dl></details></div></div></div><dl><dt class="spec value" id="val-leq"><a href="#val-leq" class="anchor"></a><code><span class="keyword">val</span> leq : <span>lhs:<a href="index.html#type-t">t</a></span> <span>&#45;&gt;</span> <span>rhs:<a href="index.html#type-t">t</a></span> <span>&#45;&gt;</span> bool</code></dt><dd><p>the implication relation: <code>lhs &lt;= rhs</code> means <code>lhs |- rhs</code></p></dd></dl></details></div></div></div><dl><dt class="spec value" id="val-continue"><a href="#val-continue" class="anchor"></a><code><span class="keyword">val</span> continue : <a href="../Pulselib/PulseAbductiveDomain/index.html#type-t">AbductiveDomain.t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-mk_initial"><a href="#val-mk_initial" class="anchor"></a><code><span class="keyword">val</span> mk_initial : <a href="../IR/Tenv/index.html#type-t">IR.Tenv.t</a> <span>&#45;&gt;</span> <a href="../IR/Procdesc/index.html#type-t">IR.Procdesc.t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-is_unsat_cheap"><a href="#val-is_unsat_cheap" class="anchor"></a><code><span class="keyword">val</span> is_unsat_cheap : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>see <span class="xref-unresolved" title="unresolved reference to &quot;PulsePathCondition.is_unsat_cheap&quot;"><code>PulsePathCondition</code>.is_unsat_cheap</span></p></dd></dl><dl><dt class="spec type" id="type-summary"><a href="#type-summary" class="anchor"></a><code><span class="keyword">type</span> summary</code><code> = <span><a href="../Pulselib/PulseAbductiveDomain/index.html#type-summary">AbductiveDomain.summary</a> <a href="index.html#type-base_t">base_t</a></span></code></dt></dl><div><div class="spec include"><div class="doc"><dl><dt class="spec value" id="val-compare_summary"><a href="#val-compare_summary" class="anchor"></a><code><span class="keyword">val</span> compare_summary : <a href="index.html#type-summary">summary</a> <span>&#45;&gt;</span> <a href="index.html#type-summary">summary</a> <span>&#45;&gt;</span> int</code></dt><dt class="spec value" id="val-equal_summary"><a href="#val-equal_summary" class="anchor"></a><code><span class="keyword">val</span> equal_summary : <a href="index.html#type-summary">summary</a> <span>&#45;&gt;</span> <a href="index.html#type-summary">summary</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-yojson_of_summary"><a href="#val-yojson_of_summary" class="anchor"></a><code><span class="keyword">val</span> yojson_of_summary : <a href="index.html#type-summary">summary</a> <span>&#45;&gt;</span> Ppx_yojson_conv_lib.Yojson.Safe.t</code></dt></dl></div></div></div></div></body></html>