<htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>SymExec (infer.Biabduction.SymExec)</title><linkrel="stylesheet"href="../../../odoc.css"/><metacharset="utf-8"/><metaname="generator"content="odoc 1.5.2"/><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">Biabduction</a>» SymExec</nav><h1>Module <code>Biabduction.SymExec</code></h1></header><aside><p>Symbolic Execution</p></aside><dl><dtclass="spec value"id="val-declare_locals_and_ret"><ahref="#val-declare_locals_and_ret"class="anchor"></a><code><spanclass="keyword">val</span> declare_locals_and_ret : <ahref="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a><span>-></span><ahref="../../IR/Procdesc/index.html#type-t">IR.Procdesc.t</a><span>-></span><span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span><span>-></span><span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span></code></dt><dd><p>Symbolic execution of the declaration of locals and return value.</p></dd></dl><dl><dtclass="spec value"id="val-node"><ahref="#val-node"class="anchor"></a><code><spanclass="keyword">val</span> node : <span>(exn <span>-></span> unit)</span><span>-></span><span><ahref="../BiabductionSummary/index.html#type-t">BiabductionSummary.t</a><ahref="../../Absint/InterproceduralAnalysis/index.html#type-t">Absint.InterproceduralAnalysis.t</a></span><span>-></span><ahref="../../Absint/ProcCfg/Exceptional/index.html#type-t">Absint.ProcCfg.Exceptional.t</a><span>-></span><ahref="../../Absint__ProcCfg/DefaultNode/index.html#type-t">Absint.ProcCfg.Exceptional.Node.t</a><span>-></span><ahref="../Paths/PathSet/index.html#type-t">Paths.PathSet.t</a><span>-></span><ahref="../Paths/PathSet/index.html#type-t">Paths.PathSet.t</a></code></dt><dd><p>Symbolic execution of the instructions of a node, lifted to sets of propositions.</p></dd></dl><dl><dtclass="spec value"id="val-instrs"><ahref="#val-instrs"class="anchor"></a><code><spanclass="keyword">val</span> instrs : <span>?⁠mask_errors:bool</span><span>-></span><span><ahref="../BiabductionSummary/index.html#type-t">BiabductionSummary.t</a><ahref="../../Absint/InterproceduralAnalysis/index.html#type-t">Absint.InterproceduralAnalysis.t</a></span><span>-></span><ahref="../../IR/Instrs/index.html#type-not_reversed_t">IR.Instrs.not_reversed_t</a><span>-></span><span><span>(<span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span> * <ahref="../Paths/Path/index.html#type-t">Paths.Path.t</a>)</span> list</span><span>-></span><span><span>(<span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span> * <ahref="../Paths/Path/index.html#type-t">Paths.Path.t</a>)</span> list</span></code></dt><dd><p>Symbolic execution of a sequence of instructions. If errors occur and <code>mask_errors</code> is true, just treat as skip.</p></dd></dl><dl><dtclass="spec value"id="val-diverge"><ahref="#val-diverge"class="anchor"></a><code><spanclass="keyword">val</span> diverge : <span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span><span>-></span><ahref="../Paths/Path/index.html#type-t">Paths.Path.t</a><span>-></span><span><span>(<span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span> * <ahref="../Paths/Path/index.html#type-t">Paths.Path.t</a>)</span> list</span></code></dt><dd><p>Symbolic execution of the divergent pure computation.</p></dd></dl><dl><dtclass="spec value"id="val-proc_ca