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
12 KiB

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>PulseAbductiveDomain (infer.Pulselib.PulseAbductiveDomain)</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">Pulselib</a> &#x00BB; PulseAbductiveDomain</nav><h1>Module <code>Pulselib.PulseAbductiveDomain</code></h1></header><div class="spec module" id="module-F"><a href="#module-F" class="anchor"></a><code><span class="keyword">module</span> F = Stdlib.Format</code></div><div class="spec module" id="module-BaseAddressAttributes"><a href="#module-BaseAddressAttributes" class="anchor"></a><code><span class="keyword">module</span> BaseAddressAttributes = <a href="../index.html#module-PulseBaseAddressAttributes">PulseBaseAddressAttributes</a></code></div><div class="spec module" id="module-BaseDomain"><a href="#module-BaseDomain" class="anchor"></a><code><span class="keyword">module</span> BaseDomain = <a href="../index.html#module-PulseBaseDomain">PulseBaseDomain</a></code></div><div class="spec module" id="module-BaseMemory"><a href="#module-BaseMemory" class="anchor"></a><code><span class="keyword">module</span> BaseMemory = <a href="../index.html#module-PulseBaseMemory">PulseBaseMemory</a></code></div><div class="spec module" id="module-BaseStack"><a href="#module-BaseStack" class="anchor"></a><code><span class="keyword">module</span> BaseStack = <a href="../index.html#module-PulseBaseStack">PulseBaseStack</a></code></div><aside><p>Layer on top of <a href="BaseDomain/index.html"><code>BaseDomain</code></a> to propagate operations on the current state to the pre-condition when necessary</p><p>The abstract type <code>t</code> is a pre/post pair in the style of biabduction.</p></aside><dl><dt class="spec module-type" id="module-type-BaseDomainSig"><a href="#module-type-BaseDomainSig" class="anchor"></a><code><span class="keyword">module</span> <span class="keyword">type</span> <a href="module-type-BaseDomainSig/index.html">BaseDomainSig</a> = <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd><p>signature common to the &quot;normal&quot; <code>Domain</code>, representing the post at the current program point, and the inverted <code>PreDomain</code>, representing the inferred pre-condition</p></dd></dl><dl><dt class="spec module" id="module-PostDomain"><a href="#module-PostDomain" class="anchor"></a><code><span class="keyword">module</span> <a href="PostDomain/index.html">PostDomain</a> : <a href="index.html#module-type-BaseDomainSig">BaseDomainSig</a></code></dt><dd><p>The post abstract state at each program point, or current state.</p></dd></dl><dl><dt class="spec module" id="module-PreDomain"><a href="#module-PreDomain" class="anchor"></a><code><span class="keyword">module</span> <a href="PreDomain/index.html">PreDomain</a> : <a href="index.html#module-type-BaseDomainSig">BaseDomainSig</a></code></dt><dd><p>The inferred pre-condition at each program point, biabduction style.</p></dd></dl><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = <span class="keyword">private</span> </code><code>{</code><table class="record"><tr id="type-t.post" class="anchored"><td class="def field"><a href="#type-t.post" class="anchor"></a><code>post : <a href="PostDomain/index.html#type-t">PostDomain.t</a>;</code></td><td class="doc"><p>state at the current program point</p></td></tr><tr id="type-t.pre" class="anchored"><td class="def field"><a href="#type-t.pre" class="anchor"></a><code>pre : <a href="PreDomain/index.html#type-t">PreDomain.t</a>;</code></td><td class="doc"><p>inferred pre at the current program point</p></td></tr><tr id="type-t.skipped_calls" class="anchored"><td class="de