From f02fc91a770982bb83b6dc1b97d83caa3315375d Mon Sep 17 00:00:00 2001 From: Philippe Suter <philippe.suter@gmail.com> Date: Wed, 10 Nov 2010 22:02:21 +0000 Subject: [PATCH] --- WISHLIST | 2 + lib/z3.jar | Bin 210291 -> 208440 bytes src/funcheck/FunCheckPlugin.scala | 4 +- src/purescala/DefaultTactic.scala | 66 ++++++++++-------- src/purescala/Settings.scala | 2 + src/purescala/Z3Solver.scala | 37 ++++++---- .../z3plugins/instantiator/Instantiator.scala | 54 ++++++++++++++ testcases/Test.scala | 3 +- 8 files changed, 123 insertions(+), 45 deletions(-) create mode 100644 src/purescala/z3plugins/instantiator/Instantiator.scala diff --git a/WISHLIST b/WISHLIST index fa1ab68c2..20fdc0402 100644 --- a/WISHLIST +++ b/WISHLIST @@ -6,6 +6,8 @@ PS: generate VCs for pattern-matching PS: support multiple top-level objects PS: use 'private' accessor to indicate what's part of the interface PS: support tuples (including natively in Z3) +PS: implement @induct tactic +PS: use a theory plugin to instantiate/unroll function bodies Wishes granted so far --------------------- diff --git a/lib/z3.jar b/lib/z3.jar index 4341ca8c2d4d45c05d10a50abf253962558b13f9..2405ab3028d98f39108e0c1e4a21aadb5b195138 100644 GIT binary patch delta 45481 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 delta 47363 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 DXekcu diff --git a/src/funcheck/FunCheckPlugin.scala b/src/funcheck/FunCheckPlugin.scala index 6bed3131a..03031e9b3 100644 --- a/src/funcheck/FunCheckPlugin.scala +++ b/src/funcheck/FunCheckPlugin.scala @@ -28,7 +28,8 @@ class FunCheckPlugin(val global: Global) extends Plugin { " -P:funcheck:tolerant Silently extracts non-pure function bodies as ''unknown''" + "\n" + " -P:funcheck:nobapa Disable BAPA Z3 extension" + "\n" + " -P:funcheck:quiet No info and warning messages from the extensions" + "\n" + - " -P:funcheck:XP Enable weird transformations and other bug-producing features" + " -P:funcheck:XP Enable weird transformations and other bug-producing features" + "\n" + + " -P:funcheck:PLDI PLDI 2011 settings. Subject to change. Same warning as for XP." ) /** Processes the command-line options. */ @@ -46,6 +47,7 @@ class FunCheckPlugin(val global: Global) extends Plugin { case "nobapa" => purescala.Settings.useBAPA = false case "newPM" => { println("''newPM'' is no longer a command-line option, because the new translation is now on by default."); System.exit(0) } case "XP" => purescala.Settings.experimental = true + case "PLDI" => { purescala.Settings.experimental = true; purescala.Settings.useInstantiator = true; purescala.Settings.useBAPA = false; purescala.Settings.zeroInlining = true } case s if s.startsWith("unrolling=") => purescala.Settings.unrollingLevel = try { s.substring("unrolling=".length, s.length).toInt } catch { case _ => 0 } case s if s.startsWith("functions=") => purescala.Settings.functionsToAnalyse = Set(splitList(s.substring("functions=".length, s.length)): _*) case s if s.startsWith("extensions=") => purescala.Settings.extensionNames = splitList(s.substring("extensions=".length, s.length)) diff --git a/src/purescala/DefaultTactic.scala b/src/purescala/DefaultTactic.scala index 42950a7c0..da1f6c9f0 100644 --- a/src/purescala/DefaultTactic.scala +++ b/src/purescala/DefaultTactic.scala @@ -38,38 +38,42 @@ class DefaultTactic(reporter: Reporter) extends Tactic(reporter) { } import Analysis._ - - if(Settings.experimental) { - reporter.info("Raw:") - reporter.info(withPrec) - reporter.info("Raw, expanded:") - reporter.info(expandLets(withPrec)) - } - reporter.info(" - inlining...") - val expr0 = inlineNonRecursiveFunctions(program, withPrec) - if(Settings.experimental) { - reporter.info("Inlined:") - reporter.info(expr0) - reporter.info("Inlined, expanded:") - reporter.info(expandLets(expr0)) - } - reporter.info(" - unrolling...") - val expr1 = unrollRecursiveFunctions(program, expr0, Settings.unrollingLevel) - if(Settings.experimental) { - reporter.info("Unrolled:") - reporter.info(expr1) - reporter.info("Unrolled, expanded:") - reporter.info(expandLets(expr1)) - } - reporter.info(" - inlining contracts...") - val expr2 = inlineContracts(expr1) - if(Settings.experimental) { - reporter.info("Contract'ed:") - reporter.info(expr2) - reporter.info("Contract'ed, expanded:") - reporter.info(expandLets(expr2)) + + if(Settings.zeroInlining) { + withPrec + } else { + if(Settings.experimental) { + reporter.info("Raw:") + reporter.info(withPrec) + reporter.info("Raw, expanded:") + reporter.info(expandLets(withPrec)) + } + reporter.info(" - inlining...") + val expr0 = inlineNonRecursiveFunctions(program, withPrec) + if(Settings.experimental) { + reporter.info("Inlined:") + reporter.info(expr0) + reporter.info("Inlined, expanded:") + reporter.info(expandLets(expr0)) + } + reporter.info(" - unrolling...") + val expr1 = unrollRecursiveFunctions(program, expr0, Settings.unrollingLevel) + if(Settings.experimental) { + reporter.info("Unrolled:") + reporter.info(expr1) + reporter.info("Unrolled, expanded:") + reporter.info(expandLets(expr1)) + } + reporter.info(" - inlining contracts...") + val expr2 = inlineContracts(expr1) + if(Settings.experimental) { + reporter.info("Contract'ed:") + reporter.info(expr2) + reporter.info("Contract'ed, expanded:") + reporter.info(expandLets(expr2)) + } + expr2 } - expr2 } Seq(new VerificationCondition(theExpr, functionDefinition, VCKind.Postcondition, this)) } diff --git a/src/purescala/Settings.scala b/src/purescala/Settings.scala index 8be325547..a4e330799 100644 --- a/src/purescala/Settings.scala +++ b/src/purescala/Settings.scala @@ -12,5 +12,7 @@ object Settings { var runDefaultExtensions: Boolean = true var noForallAxioms: Boolean = true var unrollingLevel: Int = 0 + var zeroInlining : Boolean = false var useBAPA: Boolean = true + var useInstantiator: Boolean = false } diff --git a/src/purescala/Z3Solver.scala b/src/purescala/Z3Solver.scala index 09baa756e..fe4a81b3d 100644 --- a/src/purescala/Z3Solver.scala +++ b/src/purescala/Z3Solver.scala @@ -8,11 +8,14 @@ import Trees._ import TypeTrees._ import z3plugins.bapa.{BAPATheory, BAPATheoryEqc, BAPATheoryBubbles} +import z3plugins.instantiator.Instantiator import scala.collection.mutable.{HashMap => MutableHashMap} class Z3Solver(val reporter: Reporter) extends Solver(reporter) with Z3ModelReconstruction { import Settings.useBAPA + import Settings.useInstantiator + val description = "Z3 Solver" override val shortDescription = "Z3" @@ -31,20 +34,16 @@ class Z3Solver(val reporter: Reporter) extends Solver(reporter) with Z3ModelReco ) toggleWarningMessages(true) - private var z3: Z3Context = null + protected[purescala] var z3: Z3Context = null + protected[purescala] var program: Program = null private var bapa: BAPATheoryType = null - private var program: Program = null + private var instantiator: Instantiator = null private var neverInitialized = true private val IntSetType = SetType(Int32Type) override def setProgram(prog: Program): Unit = { program = prog - // commented out: Z3 is now restarted for each VC... Could be slow if we - // have axioms, but we'll make sure we don't count that in the timing.. - // The main advantage is that Z3 is not overwhelmed with old axioms (in - // BAPA theory) - // restartZ3 } private def restartZ3: Unit = { @@ -56,6 +55,8 @@ class Z3Solver(val reporter: Reporter) extends Solver(reporter) with Z3ModelReco z3 = new Z3Context(z3cfg) // z3.traceToStdout if (useBAPA) bapa = new BAPATheoryType(z3) + if (useInstantiator) instantiator = new Instantiator(this) + counter = 0 prepareSorts prepareFunctions @@ -159,16 +160,29 @@ class Z3Solver(val reporter: Reporter) extends Solver(reporter) with Z3ModelReco // ...and now everything should be in there... } - private var functionDefToDef: Map[FunDef, Z3FuncDecl] = Map.empty + def functionDefToDef(funDef: FunDef) : Z3FuncDecl = { + if(useInstantiator) { + instantiator.functionDefToDef(funDef) + } else { + functionMap.getOrElse(funDef, scala.Predef.error("No Z3 definition found for function symbol " + funDef.id.name + ". This is clearly an error (Instantiator is off).")) + } + } + private var functionMap: Map[FunDef, Z3FuncDecl] = Map.empty def prepareFunctions: Unit = { for (funDef <- program.definedFunctions) { val sortSeq = funDef.args.map(vd => typeToSort(vd.tpe)) - functionDefToDef = functionDefToDef + (funDef -> z3.mkFreshFuncDecl(funDef.id.name, sortSeq, typeToSort(funDef.returnType))) + val returnSort = typeToSort(funDef.returnType) + + if(useInstantiator) { + instantiator.registerFunction(funDef, sortSeq, returnSort) + } else { + functionMap = functionMap + (funDef -> z3.mkFreshFuncDecl(funDef.id.name, sortSeq, returnSort)) + } } // Attempts to universally quantify all functions ! - if (!Settings.noForallAxioms) { + if (!Settings.noForallAxioms && !Settings.useInstantiator) { for (funDef <- program.definedFunctions) if (funDef.hasImplementation /* && program.isRecursive(funDef) */ && funDef.args.size > 0) { // println("Generating forall axioms for " + funDef.id.name) funDef.body.get match { @@ -436,8 +450,7 @@ class Z3Solver(val reporter: Reporter) extends Solver(reporter) with Z3ModelReco val tester = adtTesters(ccd) tester(rec(e)) } - case f@FunctionInvocation(fd, args) if functionDefToDef.isDefinedAt(fd) => { - abstractedFormula = true + case f@FunctionInvocation(fd, args) => { z3.mkApp(functionDefToDef(fd), args.map(rec(_)): _*) } case e@EmptySet(_) => if (useBAPA && e.getType == IntSetType) { diff --git a/src/purescala/z3plugins/instantiator/Instantiator.scala b/src/purescala/z3plugins/instantiator/Instantiator.scala new file mode 100644 index 000000000..a0081cb9d --- /dev/null +++ b/src/purescala/z3plugins/instantiator/Instantiator.scala @@ -0,0 +1,54 @@ +package purescala.z3plugins.instantiator + +import z3.scala._ + +import purescala.Common._ +import purescala.Trees._ +import purescala.TypeTrees._ +import purescala.Definitions._ + +import purescala.Z3Solver + +class Instantiator(val z3Solver: Z3Solver) extends Z3Theory(z3Solver.z3, "Instantiator") { + import z3Solver.{z3,program,typeToSort} + + setCallbacks( + reduceApp = true, +// finalCheck = true, +// push = true, +// pop = true, + newApp = true, + newAssignment = true, + newRelevant = true, +// newEq = true, +// newDiseq = true, +// reset = true, + restart = true + ) + + showCallbacks(true) + + private var functionMap : Map[FunDef,Z3FuncDecl] = Map.empty + + protected[purescala] def registerFunction(funDef: FunDef, sorts: Seq[Z3Sort], returnSort: Z3Sort) : Unit = { + functionMap = functionMap + (funDef -> mkTheoryFuncDecl(z3.mkStringSymbol(funDef.id.uniqueName), sorts, returnSort)) + } + + def functionDefToDef(funDef: FunDef) : Z3FuncDecl = { + functionMap.getOrElse(funDef, scala.Predef.error("No Z3 definition found for function symbol "+ funDef.id.name + " in Instantiator.")) + } + + override def newAssignment(ast: Z3AST, polarity: Boolean) : Unit = { + + } + + override def newApp(ast: Z3AST) : Unit = { + + } + + override def newRelevant(ast: Z3AST) : Unit = { + + } + + override def restart : Unit = { } +} diff --git a/testcases/Test.scala b/testcases/Test.scala index e07f5eb71..b4a5fed82 100644 --- a/testcases/Test.scala +++ b/testcases/Test.scala @@ -1,3 +1,4 @@ +import funcheck.Utils._ object Test { sealed abstract class List @@ -22,5 +23,5 @@ object Test { def sameSorted(list: List) : Boolean = { isSorted(list) == isSorted2(list) - } ensuring(r=>r) + } holds } -- GitLab