use of org.evosuite.symbolic.solver.smt.SmtExpr in project evosuite by EvoSuite.
the class RegExpToCVC4Visitor method visitRepeatMinMax.
@Override
public SmtExpr visitRepeatMinMax(RegExp e, int min, int max) {
SmtExpr regExpr = this.visitRegExp(e);
if (regExpr == null) {
return null;
}
SmtIntConstant minExpr = SmtExprBuilder.mkIntConstant(min);
SmtIntConstant maxExpr = SmtExprBuilder.mkIntConstant(max);
SmtExpr loopExpr = SmtExprBuilder.mkLoop(regExpr, minExpr, maxExpr);
return loopExpr;
}
use of org.evosuite.symbolic.solver.smt.SmtExpr in project evosuite by EvoSuite.
the class CVC4QueryPrinter method print.
public String print(SmtCheckSatQuery smtQuery) {
StringBuffer buff = new StringBuffer();
buff.append("\n");
buff.append("(set-logic " + CVC4_LOGIC + ")");
buff.append("\n");
buff.append("(set-option :produce-models true)");
buff.append("\n");
buff.append("(set-option :strings-exp true)");
buff.append("\n");
for (SmtFunctionDeclaration functionDeclaration : smtQuery.getFunctionDeclarations()) {
String str = String.format("(declare-fun %s () %s)", functionDeclaration.getFunctionName(), functionDeclaration.getFunctionSort());
buff.append(str);
buff.append("\n");
}
for (SmtFunctionDefinition functionDeclaration : smtQuery.getFunctionDefinitions()) {
String str = String.format("(define-fun %s)", functionDeclaration.getFunctionDefinition());
buff.append(str);
buff.append("\n");
}
SmtExprPrinter printer = new SmtExprPrinter();
for (SmtAssertion smtAssertion : smtQuery.getAssertions()) {
SmtExpr smtExpr = smtAssertion.getFormula();
String smtExprStr = smtExpr.accept(printer, null);
String str = String.format("(assert %s)", smtExprStr);
buff.append(str);
buff.append("\n");
}
buff.append("(check-sat)");
buff.append("\n");
buff.append("(get-model)");
buff.append("\n");
buff.append("(exit)");
buff.append("\n");
return buff.toString();
}
use of org.evosuite.symbolic.solver.smt.SmtExpr in project evosuite by EvoSuite.
the class ConstraintToZ3Visitor method visit.
@Override
public SmtExpr visit(StringConstraint c, Void arg) {
ExprToZ3Visitor v = new ExprToZ3Visitor();
StringComparison stringComparison = (StringComparison) c.getLeftOperand();
IntegerConstant integerConstant = (IntegerConstant) c.getRightOperand();
SmtExpr left = stringComparison.accept(v, null);
SmtExpr right = integerConstant.accept(v, null);
if (left == null || right == null) {
return null;
}
Comparator cmp = c.getComparator();
return mkComparison(left, cmp, right);
}
use of org.evosuite.symbolic.solver.smt.SmtExpr in project evosuite by EvoSuite.
the class ConstraintToZ3Visitor method visit.
@Override
public SmtExpr visit(RealConstraint c, Void arg) {
ExprToZ3Visitor v = new ExprToZ3Visitor();
SmtExpr left = c.getLeftOperand().accept(v, null);
SmtExpr right = c.getRightOperand().accept(v, null);
if (left == null || right == null) {
return null;
}
Comparator cmp = c.getComparator();
SmtExpr boolExpr = mkComparison(left, cmp, right);
return boolExpr;
}
use of org.evosuite.symbolic.solver.smt.SmtExpr in project evosuite by EvoSuite.
the class ExprToZ3Visitor method visit.
@Override
public SmtExpr visit(RealToIntegerCast e, Void v) {
SmtExpr realExpr = e.getArgument().accept(this, null);
if (realExpr == null) {
return null;
}
if (!realExpr.isSymbolic()) {
long longValue = e.getConcreteValue();
return SmtExprBuilder.mkIntConstant(longValue);
}
SmtExpr intExpr = SmtExprBuilder.mkReal2Int(realExpr);
return intExpr;
}
Aggregations