Я пишу оболочку для ввода общего выражения (в общем виде, x + y> 20 (не в формате SMT2LIB)) в Z3 SAT Solver. В настоящее время я борюсь с типом строки в BoolExpr. Как в приведенном примере,
String tr = "ctx.mkLt(ctx.mkIntConst(\"x\"),ctx.mkInt(100))";
Я хочу преобразовать приведенную выше строку в BoolExpr, а затем добавить ее в решатель, как:
final Context ctx = new Context();
final Solver solver = ctx.mkSimpleSolver();
BoolExpr t2 = ctx.mkBoolConst(tr);
solver.add(t2);
solver.check()
Я получаю ошибку при типизации String в BoolExpr. Я попытался использовать BoolExpr t2 = ctx.mkBoolConst(tr);
, а затем добавить его в решатель, но это приводит к func-декларации.
Есть ли способ преобразовать строку в BoolExpr с использованием Z3 JAVA API , чтобы выражение можно было добавить и затем оценить с помощью Z3 Solver?
Пожалуйста, помогите и предложите.