如何使用Z3 java-api生成String const?

时间:2019-07-08 23:19:16

标签: z3

我正在尝试使用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);

我应该更改什么代码?还是应该使用哪种方式生成字符串?

谢谢!

0 个答案:

没有答案