- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
也许我错过了一些东西,但是使用 z3 C++ API 构造 if-then-else 表达式的方法是什么?
我可以为此使用 C API,但我想知道为什么 C++ API 中没有这样的函数。
问候,
于连
最佳答案
我们可以混合使用 C 和 C++ API。文件 examples/c++/example.cpp
包含一个使用 C API 创建 if-then-else 表达式的示例。函数to_expr
本质上是包装一个 Z3_ast
使用 C++“智能指针”expr
它会自动为我们管理引用计数器。
void ite_example() {
std::cout << "if-then-else example\n";
context c;
expr f = c.bool_val(false);
expr one = c.int_val(1);
expr zero = c.int_val(0);
expr ite = to_expr(c, Z3_mk_ite(c, f, one, zero));
std::cout << "term: " << ite << "\n";
}
ite
function to the C++ API .它将在下一个版本 (v4.3.2) 中可用。如果你愿意,你可以添加到
z3++.h
文件在您的系统中。包含在函数
implies
之后的好地方:
/**
\brief Create the if-then-else expression <tt>ite(c, t, e)</tt>
\pre c.is_bool()
*/
friend expr ite(expr const & c, expr const & t, expr const & e) {
check_context(c, t); check_context(c, e);
assert(c.is_bool());
Z3_ast r = Z3_mk_ite(c.ctx(), c, t, e);
c.check_error();
return expr(c.ctx(), r);
}
void ite_example2() {
std::cout << "if-then-else example2\n";
context c;
expr b = c.bool_const("b");
expr x = c.int_const("x");
expr y = c.int_const("y");
std::cout << (ite(b, x, y) > 0) << "\n";
}
关于z3 C++ API & ite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14160468/
与 table CREATE TABLE recipeingredients(recipeid int, ingredientid int); CREATE TABLE ingredients(ing
也许我错过了一些东西,但是使用 z3 C++ API 构造 if-then-else 表达式的方法是什么? 我可以为此使用 C API,但我想知道为什么 C++ API 中没有这样的函数。 问候, 于
为什么以下无效,我在这里茫然? 'CREATE TABLE IF NOT EXISTS Mons(id int PRIMARY KEY NOT NULL AUTO_INCREMENT, keyword
我正在研究Delphi ITE(Integrated Translation Environment)以在我的应用程序中添加多语言支持。我担心由ITE生成的资源DLL的有效性问题。换句话说,如果可以安
我有很多项目,在 SVN 存储库中包含一些通用库。该存储库有一些用于生产版本的分支。 出于这个原因(在一台计算机上检查多个版本,并最大限度地减少交换时间),我尝试使用存储库中的相对路径尽可能地配置所有
我有一个 sql 数据库,其中包含基因组、染色体和“有趣”区域(BED 格式)。基因组(例如 4GB)由 +/- 20 条染色体组成,因此每个字符串大约有 200MB 大。例如,基因组中的染色体由字符
我有两个具有多对一关系的表,它们代表拍卖系统中的批次和出价。每个批次可以有零个或多个与之相关的出价。每个出价都与一个批次相关联。 我的表结构(删除了不相关的字段)看起来像这样: 对于一种类型的拍卖,获
游戏数据库包含比赛配对的列,例如A国对阵B国,C国对阵D国,还有B国对阵A国。我需要简单地计算两个国家之间的比赛次数。我可以按国家A,国家B 进行分组,结果例如这个: A B 12 A C 24 F
我是一名优秀的程序员,十分优秀!