From 4724ce5d2d6b7e9889815e35337aaf9b765e570f Mon Sep 17 00:00:00 2001 From: Philippe Suter <philippe.suter@gmail.com> Date: Thu, 18 Nov 2010 17:13:34 +0000 Subject: [PATCH] support for div --- src/purescala/Analysis.scala | 4 ++-- src/purescala/DefaultTactic.scala | 6 +++--- src/purescala/Z3Solver.scala | 8 ++++++++ 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/purescala/Analysis.scala b/src/purescala/Analysis.scala index c29a2b19e..2c62fb5d4 100644 --- a/src/purescala/Analysis.scala +++ b/src/purescala/Analysis.scala @@ -82,9 +82,9 @@ class Analysis(val program: Program) { val vc = vcInfo.condition reporter.info("Now considering '" + vcInfo.kind + "' VC for " + funDef.id + "...") - // reporter.info("Verification condition (post) for ==== " + funDef.id + " ====") + reporter.info("Verification condition (" + vcInfo.kind + ") for ==== " + funDef.id + " ====") // if(Settings.unrollingLevel == 0) { - // reporter.info(simplifyLets(vc)) + reporter.info(simplifyLets(vc)) // } else { // reporter.info("(not showing unrolled VCs)") // } diff --git a/src/purescala/DefaultTactic.scala b/src/purescala/DefaultTactic.scala index b7e586a39..5b16ad4ea 100644 --- a/src/purescala/DefaultTactic.scala +++ b/src/purescala/DefaultTactic.scala @@ -77,7 +77,7 @@ class DefaultTactic(reporter: Reporter) extends Tactic(reporter) { expr2 } } - Seq(new VerificationCondition(theExpr, functionDefinition, VCKind.Postcondition, this)) + Seq(new VerificationCondition(theExpr, functionDefinition, VCKind.Postcondition, this.asInstanceOf[DefaultTactic])) } } @@ -110,7 +110,7 @@ class DefaultTactic(reporter: Reporter) extends Tactic(reporter) { withPrecIfDefined(path, newCall), function, VCKind.Precondition, - this).setPosInfo(fi) + this.asInstanceOf[DefaultTactic]).setPosInfo(fi) }).toSeq } else { Seq.empty @@ -142,7 +142,7 @@ class DefaultTactic(reporter: Reporter) extends Tactic(reporter) { withPrecIfDefined(pc._1), function, VCKind.ExhaustiveMatch, - this).setPosInfo(pc._2.asInstanceOf[Error]) + this.asInstanceOf[DefaultTactic]).setPosInfo(pc._2.asInstanceOf[Error]) ).toSeq } else { Seq.empty diff --git a/src/purescala/Z3Solver.scala b/src/purescala/Z3Solver.scala index 967899a1e..c9054fc08 100644 --- a/src/purescala/Z3Solver.scala +++ b/src/purescala/Z3Solver.scala @@ -726,6 +726,14 @@ class Z3Solver(val reporter: Reporter) extends Solver(reporter) with Z3ModelReco assert(argsSize == 2) Times(rargs(0), rargs(1)) } + case OpDiv => { + assert(argsSize == 2) + Division(rargs(0), rargs(1)) + } + case OpIDiv => { + assert(argsSize == 2) + Division(rargs(0), rargs(1)) + } case other => { System.err.println("Don't know what to do with this declKind : " + other) throw new CantTranslateException(t) -- GitLab