<htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>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>»<ahref="../index.html">Pulselib</a>» 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="../PulseAbductiveDomain/index.html#type-t">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>(<ahref="../PulseAbstractValue/index.html#type-t">PulseBasicInterface.AbstractValue.t</a> * <ahref="../PulseValueHistory/index.html#type-t">PulseBasicInterface.ValueHistory.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="../PulseAbstractValue/index.html#type-t">PulseBasicInterface.AbstractValue.t</a> * <ahref="../PulseValueHistory/index.html#type-t">PulseBasicInterface.ValueHistory.t</a>)</span> * <ahref="../../IR/Typ/index.html#type-t">IR.Typ.t</a>)</span> list</span></span><span>-></span><ahref="../PulseAbductiveDomain/index.html#type-t">PulseDomainInterface.AbductiveDomain.t</a><span>-></span><span><span><span>(<ahref="../PulseAbductiveDomain/index.html#type-t">PulseDomainInterface.AbductiveDomain.t</a> * <span><span>(<ahref="../PulseAbstractValue/index.html#type-t">PulseBasicInterface.AbstractValue.t</a> * <ahref="../PulseValueHistory/index.html#type-t">PulseBasicInterface.ValueHistory.t</a>)</span> option</span> * <span><span>(<ahref="../PulseAbstractValue/index.html#type-t">PulseBasicInterface.AbstractValue.t</a> * <ahref="../PulseValueHistory/index.html#type-t">PulseBasicInterface.ValueHistory.t</a>)</span><ahref="../../Pulselib__PulseAbstractValue/index.html#module-Map">Pulselib.PulseBasicInterface.AbstractValue.Map</a>.t</span>)</span><ahref="../PulseAccessResult/index.html#type-t">PulseDomainInterface.AccessResult.t</a></span><ahref="../PulseSatUnsat/index.html#type-t">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>