<htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>Attribute (infer.Biabduction.Attribute)</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>» Attribute</nav><h1>Module <code>Biabduction.Attribute</code></h1></header><aside><p>Attribute manipulation in Propositions (i.e., Symbolic Heaps)</p></aside><dl><dtclass="spec value"id="val-is_pred"><ahref="#val-is_pred"class="anchor"></a><code><spanclass="keyword">val</span> is_pred : <ahref="../Predicates/index.html#type-atom">Predicates.atom</a><span>-></span> bool</code></dt><dd><p>Check whether an atom is used to mark an attribute</p></dd></dl><dl><dtclass="spec value"id="val-add"><ahref="#val-add"class="anchor"></a><code><spanclass="keyword">val</span> add : <ahref="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a><span>-></span><span>?⁠footprint:bool</span><span>-></span><span>?⁠polarity:bool</span><span>-></span><span><ahref="../Prop/index.html#type-normal">Prop.normal</a><ahref="../Prop/index.html#type-t">Prop.t</a></span><span>-></span><ahref="../../IR/PredSymb/index.html#type-t">IR.PredSymb.t</a><span>-></span><span><ahref="../../IR/Exp/index.html#type-t">IR.Exp.t</a> list</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>Add an attribute associated to the argument expressions</p></dd></dl><dl><dtclass="spec value"id="val-add_or_replace"><ahref="#val-add_or_replace"class="anchor"></a><code><spanclass="keyword">val</span> add_or_replace : <ahref="../../IR/Tenv/index.html#type-t">IR.Tenv.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><ahref="../Predicates/index.html#type-atom">Predicates.atom</a><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>Replace an attribute associated to the expression</p></dd></dl><dl><dtclass="spec value"id="val-add_or_replace_check_changed"><ahref="#val-add_or_replace_check_changed"class="anchor"></a><code><spanclass="keyword">val</span> add_or_replace_check_changed : <ahref="../../IR/Tenv/index.html#type-t">IR.Tenv.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><ahref="../Predicates/index.html#type-atom">Predicates.atom</a><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>Replace an attribute associated to the expression, and call the given function with new and old attributes if they changed.</p></dd></dl><dl><dtclass="spec value"id="val-get_all"><ahref="#val-get_all"class="anchor"></a><code><spanclass="keyword">val</span> get_all : <span><spanclass="type-var">'a</span><ahref="../Prop/index.html#type-t">Prop.t</a></span><span>-></span><span><ahref="../Predicates/index.html#type-atom">Predicates.atom</a> list</span></code></dt><dd><p>Get all the attributes of the prop</p></dd></dl><dl><dtclass="spec value"id="val-get_for_exp"><ahref="#val-get_for_exp"class="anchor"></a><code><spanclass="keyword">val</span> get_for_exp : <ahref="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a><span>-></span><span><spanclass="type-var">'a</span><ahref="../Prop/index.html#type-t">Prop.t</a></span><span>-></span><ahref="../../IR/Exp/index.html#type-t