summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Unknown <afd@afd-THINK>2012-08-07 16:43:03 +0100
committerGravatar Unknown <afd@afd-THINK>2012-08-07 16:43:03 +0100
commitafcaa6d1f8a01b8eefe10e268cff58cf405ecfaa (patch)
tree301b5f1b4763ea652cd4f2212dba0233ae95f173
parentc2a4326f10d5a83aec2df56572a51075663ac142 (diff)
parentcf732a4863e027378e30e7a6e3cb02c94eeb9f42 (diff)
Merge
-rw-r--r--Source/Houdini/Houdini.cs8
1 files changed, 6 insertions, 2 deletions
diff --git a/Source/Houdini/Houdini.cs b/Source/Houdini/Houdini.cs
index ab2fa74f..526302db 100644
--- a/Source/Houdini/Houdini.cs
+++ b/Source/Houdini/Houdini.cs
@@ -485,14 +485,18 @@ namespace Microsoft.Boogie.Houdini {
public bool MatchCandidate(Expr boogieExpr, out Variable candidateConstant) {
candidateConstant = null;
- IExpr antecedent;
+ IExpr antecedent, consequent;
IExpr expr = boogieExpr as IExpr;
- if (expr != null && ExprUtil.Match(expr, Prop.Implies, out antecedent)) {
+ if (expr != null && ExprUtil.Match(expr, Prop.Implies, out antecedent, out consequent)) {
IdentifierExpr.ConstantFunApp constantFunApp = antecedent as IdentifierExpr.ConstantFunApp;
if (constantFunApp != null && houdiniConstants.Contains(constantFunApp.IdentifierExpr.Decl)) {
candidateConstant = constantFunApp.IdentifierExpr.Decl;
return true;
}
+
+ var e = consequent as Expr;
+ if (e != null && MatchCandidate(e, out candidateConstant))
+ return true;
}
return false;
}