diff --git a/src/main/scala/leon/solvers/smtlib/SMTLIBTarget.scala b/src/main/scala/leon/solvers/smtlib/SMTLIBTarget.scala index 43e1dd91c0a35bd027d65194863dae2ed5455307..42c7af929ec57d654640b502820fdb6ac659ccf1 100644 --- a/src/main/scala/leon/solvers/smtlib/SMTLIBTarget.scala +++ b/src/main/scala/leon/solvers/smtlib/SMTLIBTarget.scala @@ -4,7 +4,7 @@ package smtlib import purescala._ import Common._ -import Expressions.{Assert => _, _} +import Expressions._ import Extractors._ import ExprOps._ import Types._ @@ -14,7 +14,7 @@ import utils.IncrementalBijection import _root_.smtlib.common._ import _root_.smtlib.printer.{RecursivePrinter => SMTPrinter} -import _root_.smtlib.parser.Commands.{Constructor => SMTConstructor, FunDef => _, _} +import _root_.smtlib.parser.Commands.{Constructor => SMTConstructor, FunDef => _, Assert => SMTAssert, _} import _root_.smtlib.parser.Terms.{Identifier => SMTIdentifier, Let => SMTLet, _} import _root_.smtlib.parser.CommandsResponses.{Error => ErrorResponse, _} import _root_.smtlib.theories._ @@ -490,6 +490,7 @@ trait SMTLIBTarget { case e @ BinaryOperator(a, b, _) => e match { + case (_: Assert) => toSMT(IfExpr(a, b, Error(b.getType, "assertion failed"))) case (_: Equals) => Core.Equals(toSMT(a), toSMT(b)) case (_: Implies) => Core.Implies(toSMT(a), toSMT(b)) case (_: Plus) => Ints.Add(toSMT(a), toSMT(b)) @@ -655,7 +656,7 @@ trait SMTLIBTarget { override def assertCnstr(expr: Expr): Unit = { variablesOf(expr).foreach(declareVariable) val term = toSMT(expr)(Map()) - sendCommand(Assert(term)) + sendCommand(SMTAssert(term)) } override def check: Option[Boolean] = sendCommand(CheckSat()) match {