diff --git a/src/main/scala/inox/solvers/princess/AbstractPrincessSolver.scala b/src/main/scala/inox/solvers/princess/AbstractPrincessSolver.scala index 0ea14f242a7f471ccc3edf5f89a71531025194bf..48b4008fcbc1d43053af12b58d8cd345306feeb9 100644 --- a/src/main/scala/inox/solvers/princess/AbstractPrincessSolver.scala +++ b/src/main/scala/inox/solvers/princess/AbstractPrincessSolver.scala @@ -216,6 +216,9 @@ trait AbstractPrincessSolver extends AbstractSolver with ADTManagers { case AsInstanceOf(expr, tpe) => parseTerm(expr) + case BooleanLiteral(true) => i(0) + case BooleanLiteral(false) => i(1) + // @nv: this MUST come at least after having dealt with FunctionInvocation, // Application and ADTSelectors which can return booleans case IsTyped(_, BooleanType) => @@ -252,14 +255,14 @@ trait AbstractPrincessSolver extends AbstractSolver with ADTManagers { case Times(lhs, rhs) => { val pLhs = parseTerm(lhs) val pRhs = parseTerm(rhs) - pLhs * pRhs + p.mult(pLhs, pRhs) } case UMinus(e) => - parseTerm(e) case Division(lhs, rhs) => - p.mulTheory.eDiv(parseTerm(lhs), parseTerm(rhs)) + p.mulTheory.tDiv(parseTerm(lhs), parseTerm(rhs)) case Remainder(lhs, rhs) => val q = parseTerm(Division(lhs, rhs))