You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2 lines
9.6 KiB

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Match (infer.Biabduction.Match)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../index.html">infer</a> &#x00BB; <a href="../index.html">Biabduction</a> &#x00BB; Match</nav><h1>Module <code>Biabduction.Match</code></h1></header><aside><p>Implementation of &quot;Smart&quot; Pattern Matching for higher order singly-linked list predicate.</p><p>Used for detecting on a given program if some data scructures are matching some predefined higher-order list predicates. When it is the case, these predicates can be used as possible candidates for abstracting the data-structures. See <a href="http://dx.doi.org/10.1007/978-3-540-73368-3_22">CAV 2007</a> for the therory involved.</p></aside><dl><dt class="spec value" id="val-hpara_match_with_impl"><a href="#val-hpara_match_with_impl" class="anchor"></a><code><span class="keyword">val</span> hpara_match_with_impl : <a href="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a> <span>&#45;&gt;</span> bool <span>&#45;&gt;</span> <a href="../Predicates/index.html#type-hpara">Predicates.hpara</a> <span>&#45;&gt;</span> <a href="../Predicates/index.html#type-hpara">Predicates.hpara</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-hpara_dll_match_with_impl"><a href="#val-hpara_dll_match_with_impl" class="anchor"></a><code><span class="keyword">val</span> hpara_dll_match_with_impl : <a href="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a> <span>&#45;&gt;</span> bool <span>&#45;&gt;</span> <a href="../Predicates/index.html#type-hpara_dll">Predicates.hpara_dll</a> <span>&#45;&gt;</span> <a href="../Predicates/index.html#type-hpara_dll">Predicates.hpara_dll</a> <span>&#45;&gt;</span> bool</code></dt></dl><dl><dt class="spec type" id="type-hpred_pat"><a href="#type-hpred_pat" class="anchor"></a><code><span class="keyword">type</span> hpred_pat</code><code> = </code><code>{</code><table class="record"><tr id="type-hpred_pat.hpred" class="anchored"><td class="def field"><a href="#type-hpred_pat.hpred" class="anchor"></a><code>hpred : <a href="../Predicates/index.html#type-hpred">Predicates.hpred</a>;</code></td></tr><tr id="type-hpred_pat.flag" class="anchored"><td class="def field"><a href="#type-hpred_pat.flag" class="anchor"></a><code>flag : bool;</code></td></tr></table><code>}</code></dt><dd><p>Type for a hpred pattern. <code>flag=false</code> means that the implication between hpreds is not considered, and <code>flag = true</code> means that it is considered during pattern matching.</p></dd></dl><dl><dt class="spec type" id="type-sidecondition"><a href="#type-sidecondition" class="anchor"></a><code><span class="keyword">type</span> sidecondition</code><code> = <span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span> <span>&#45;&gt;</span> <a href="../Predicates/index.html#type-subst">Predicates.subst</a> <span>&#45;&gt;</span> bool</code></dt></dl><dl><dt class="spec value" id="val-prop_match_with_impl"><a href="#val-prop_match_with_impl" class="anchor"></a><code><span class="keyword">val</span> prop_match_with_impl : <a href="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a> <span>&#45;&gt;</span> <span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span> <span>&#45;&gt;</span> <a href="index.html#type-sidecondition">sidecondition</a> <span>&#45;&gt;</span> <span><a href="../../IR/Ident/index.html#type-t">IR.Ident.t</a> list</span> <span>&#45;&gt;</span> <a href="index.html#type-hpred_pat">hpred_pat</a> <span>&#45;&gt;</span> <span><a href="index.html#type-hpred_pat">hpred_pat</a> list</span> <span>&#45;&gt;</span> <span><span>(<a href="../Predicates/index.html#type-subst">P