<htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>PulseBaseDomain (infer.Pulselib.PulseBaseDomain)</title><linkrel="stylesheet"href="../../../odoc.css"/><metacharset="utf-8"/><metaname="generator"content="odoc 1.5.1"/><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">Pulselib</a>» PulseBaseDomain</nav><h1>Module <code>Pulselib.PulseBaseDomain</code></h1></header><divclass="spec module"id="module-F"><ahref="#module-F"class="anchor"></a><code><spanclass="keyword">module</span> F = Stdlib.Format</code></div><dl><dtclass="spec type"id="type-t"><ahref="#type-t"class="anchor"></a><code><spanclass="keyword">type</span> t</code><code> = </code><code>{</code><tableclass="record"><trid="type-t.heap"class="anchored"><tdclass="def field"><ahref="#type-t.heap"class="anchor"></a><code>heap : <ahref="../PulseBaseMemory/index.html#type-t">PulseBaseMemory.t</a>;</code></td></tr><trid="type-t.stack"class="anchored"><tdclass="def field"><ahref="#type-t.stack"class="anchor"></a><code>stack : <ahref="../PulseBaseStack/index.html#type-t">PulseBaseStack.t</a>;</code></td></tr><trid="type-t.attrs"class="anchored"><tdclass="def field"><ahref="#type-t.attrs"class="anchor"></a><code>attrs : <ahref="../PulseBaseAddressAttributes/index.html#type-t">PulseBaseAddressAttributes.t</a>;</code></td></tr></table><code>}</code></dt><dtclass="spec type"id="type-cell"><ahref="#type-cell"class="anchor"></a><code><spanclass="keyword">type</span> cell</code><code> = <ahref="../PulseBaseMemory/Edges/index.html#type-t">PulseBaseMemory.Edges.t</a> * <ahref="../PulseBasicInterface/Attributes/index.html#type-t">PulseBasicInterface.Attributes.t</a></code></dt></dl><dl><dtclass="spec value"id="val-empty"><ahref="#val-empty"class="anchor"></a><code><spanclass="keyword">val</span> empty : <ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-reachable_addresses"><ahref="#val-reachable_addresses"class="anchor"></a><code><spanclass="keyword">val</span> reachable_addresses : <ahref="index.html#type-t">t</a><span>-></span><ahref="../../Pulselib__PulseAbstractValue/index.html#module-Set">Pulselib.PulseBasicInterface.AbstractValue.Set</a>.t</code></dt><dd><p>compute the set of abstract addresses that are "used" in the abstract state, i.e. reachable from the stack variables</p></dd></dl><dl><dtclass="spec type"id="type-mapping"><ahref="#type-mapping"class="anchor"></a><code><spanclass="keyword">type</span> mapping</code></dt></dl><dl><dtclass="spec value"id="val-empty_mapping"><ahref="#val-empty_mapping"class="anchor"></a><code><spanclass="keyword">val</span> empty_mapping : <ahref="index.html#type-mapping">mapping</a></code></dt></dl><dl><dtclass="spec type"id="type-isograph_relation"><ahref="#type-isograph_relation"class="anchor"></a><code><spanclass="keyword">type</span> isograph_relation</code><code> = </code><tableclass="variant"><trid="type-isograph_relation.NotIsomorphic"class="anchored"><tdclass="def constructor"><ahref="#type-isograph_relation.NotIsomorphic"class="anchor"></a><code>| </code><code><spanclass="constructor">NotIsomorphic</span></code></td><tdclass="doc"><p>no mapping was found that can make LHS the same as the RHS</p></td></tr><trid="type-isograph_relation.IsomorphicUpTo"class="anchored"><tdclass="def constructor"><ahref="#type-isograph_relation.IsomorphicUpTo"class="anchor"></a><code>| </code><code><spanclass="constructor">IsomorphicUpTo</span><spanclass="keyword">of</span><ahref="index.html#type-mapping">mapping</a></code></td><tdclass="doc"><p><code>mapping(lhs)</code> is isomorphic to <code>rhs</code></p></td></tr></table></dt></dl><dl><dtclass="spec value"id="val-isograph_map"><ahref="#val-isograph_map"class="anchor"></a><code><spanclass="key