<htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>Pulselib__PulseInterproc (infer.Pulselib__PulseInterproc)</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>» Pulselib__PulseInterproc</nav><h1>Module <code>Pulselib__PulseInterproc</code></h1></header><dl><dtclass="spec value"id="val-apply_prepost"><ahref="#val-apply_prepost"class="anchor"></a><code><spanclass="keyword">val</span> apply_prepost : <span>is_isl_error_prepost:bool</span><span>-></span><ahref="../IR/Procname/index.html#type-t">IR.Procname.t</a><span>-></span><ahref="../IBase/Location/index.html#type-t">IBase.Location.t</a><span>-></span><span>callee_prepost:<ahref="../Pulselib/PulseAbductiveDomain/index.html#type-t">Pulselib.PulseDomainInterface.AbductiveDomain.t</a></span><span>-></span><span>captured_vars_with_actuals:<span><span>(<ahref="../IR/Var/index.html#type-t">IR.Var.t</a> * <span>(<span>(<ahref="../Pulselib/PulseAbstractValue/index.html#type-t">Pulselib.PulseBasicInterface.AbstractValue.t</a> * <ahref="../Pulselib/PulseValueHistory/index.html#type-t">Pulselib.PulseBasicInterface.ValueHistory.t</a>)</span> * <ahref="../IR/Typ/index.html#type-t">IR.Typ.t</a>)</span>)</span> list</span></span><span>-></span><span>formals:<span><ahref="../IR/Var/index.html#type-t">IR.Var.t</a> list</span></span><span>-></span><span>actuals:<span><span>(<span>(<ahref="../Pulselib/PulseAbstractValue/index.html#type-t">Pulselib.PulseBasicInterface.AbstractValue.t</a> * <ahref="../Pulselib/PulseValueHistory/index.html#type-t">Pulselib.PulseBasicInterface.ValueHistory.t</a>)</span> * <ahref="../IR/Typ/index.html#type-t">IR.Typ.t</a>)</span> list</span></span><span>-></span><ahref="../Pulselib/PulseAbductiveDomain/index.html#type-t">Pulselib.PulseDomainInterface.AbductiveDomain.t</a><span>-></span><span><span><span>(<ahref="../Pulselib/PulseAbductiveDomain/index.html#type-t">Pulselib.PulseDomainInterface.AbductiveDomain.t</a> * <span><span>(<ahref="../Pulselib/PulseAbstractValue/index.html#type-t">Pulselib.PulseBasicInterface.AbstractValue.t</a> * <ahref="../Pulselib/PulseValueHistory/index.html#type-t">Pulselib.PulseBasicInterface.ValueHistory.t</a>)</span> option</span> * <span><span>(<ahref="../Pulselib/PulseAbstractValue/index.html#type-t">Pulselib.PulseBasicInterface.AbstractValue.t</a> * <ahref="../Pulselib/PulseValueHistory/index.html#type-t">Pulselib.PulseBasicInterface.ValueHistory.t</a>)</span><ahref="../Pulselib__PulseAbstractValue/index.html#module-Map">Pulselib.PulseBasicInterface.AbstractValue.Map</a>.t</span>)</span><ahref="../Pulselib/PulseAccessResult/index.html#type-t">Pulselib.PulseDomainInterface.AccessResult.t</a></span><ahref="../Pulselib/PulseSatUnsat/index.html#type-t">Pulselib.PulseBasicInterface.SatUnsat.t</a></span></code></dt><dd><p>result of applying one pre/post pair of a callee's summary:</p><ul><li><spanclass="xref-unresolved"title="unresolved reference to "SatUnsat.Unsat""><code>SatUnsat</code>.Unsat</span> if that path in the callee is infeasible</li><li>otherwise, there can be an error detected</li><li>otherwise, the result is a new abstract state, an optional return value, and a substitution <code>callee_abstract_value -> caller_abstract_value</code> mapping callee's abstract values to what they became in the new (caller) state</li></ul></dd></dl></div></body></html>