C++ 如何使用z3c++;美国石油学会

C++ 如何使用z3c++;美国石油学会,c++,api,z3,C++,Api,Z3,例如: 上下文ctx sort type1 = ctx.int_sort(); sort type2 = ctx.bool_sort(); func_decl b1 = function("b1", type1, type2); expr x = ctx.int_const("x"); expr y = ctx.int_const("y"); expr z = ctx.int_const("z"); solver s(ctx); s.add(b1(x)); s.add(b1(y)); s.

例如: 上下文ctx

sort type1 = ctx.int_sort();
sort type2 = ctx.bool_sort();

func_decl b1 = function("b1", type1, type2);

expr x = ctx.int_const("x");
expr y = ctx.int_const("y");
expr z = ctx.int_const("z");

solver s(ctx);
s.add(b1(x));
s.add(b1(y));
s.add(b1(z));
如何声明x、y和z是不同的,而不是使用: s、 加(不是(x==y或x==z或y==z)); ?


谢谢。

Z3支持<代码>区分< /C>函数,C++中可用为“代码>ExpExCP::DeXield:ExpVixValm const和ARGS”< /P>。你能给我一个与我前面的例子相关的用法的例子吗?假设v是一个包含x,y,z的ast_向量,那么expr c=distinct(v);创建一个约束,该约束描述x、y、z必须全部不同。确定。谢谢例如:expr_向量v(ctx);v、 推回(x);v、 向后推(y);expr c=不同的(v);关于我的上一个示例,如果我们希望以交互方式将函数b1给定给某个特殊常量的值(通过读取常量并通过b1搜索其值,例如:std::cin>>constante;std::cout),那么它应该是int,因为b1接受int并返回bool。