我正在尝试使用Z3生成一个const,然后向字符串添加一些约束。
如果是数字,我可以使用类似的代码
z-index
生成const,然后使用类似的代码
ctx.mkRealconst()
ctx.mkIntconst()
添加约束。喜欢
ctx.mkEq()
但是当将其更改为Strings时,使用ctx.mkString()似乎只能生成真实的字符串。
例如
RealExpr a = ctx.mkRealConst("a");
RealExpr b = ctx.mkRealConst("b");
BoolExpr equation = ctx.mkEq(a, b);
s.add(equation);
只能是字符串“ a”,不能是常量。
此外,我尝试使用ctx.getStringSort()创建字符串,
SeqExpr a = ctx.mkString(“a”);
但是当我尝试使用它与约束条件进行比较时,
Sort string = ctx.getStringSort();
Expr a1 = ctx.mkConst("a1", string);
Expr a2 = ctx.mkConst("a2", string);
它显示Sort无法与正则表达式进行比较。
SeqExpr s1 = ctx.mkString("a");
SeqExpr s2 = ctx.mkString("z");
ReExpr cc = ctx.mkRange(s1, s2);
ReExpr str = ctx.mkPlus(cc);
我应该更改什么代码?还是应该使用哪种方式生成字符串?
谢谢!