【发布时间】:2013-04-21 22:44:54
【问题描述】:
我想在 Z3 中使用 C++ API 定义成员关系。我想通过以下方式做到这一点:
z3::context C;
z3::sort I = C.int_sort();
z3::sort B = C.bool_sort();
z3::func_decl InSet = C.function("f", I, B);
z3::expr e1 = InSet(C.int_val(2)) == C.bool_val(true);
z3::expr e2 = InSet(C.int_val(3)) == C.bool_val(true);
z3::expr ite = to_expr(C, Z3_mk_ite(C, e1, C.bool_val(true),
Z3_mk_ite(C,e2,C.bool_val(true),C.bool_val(false))));
errs() << Z3_ast_to_string(C,ite);
在这个例子中,集合由整数 2 和 3 组成。我确信有更好的方法来定义关系,特别是集合成员关系,但我真的是 Z3 菜鸟。有谁知道最好的吗?
【问题讨论】: