z3相关内容
我想在llvm项目(从其示例项目复制的文件目录)中使用Z3.我现在所做的只是简单地包含z3 ++.h,而没有在源文件中添加任何其他代码并希望通过编译.但是我不知道如何处理makefile以使其工作.我尝试了几次,它报告了诸如“禁用异常处理,使用-fexceptions启用"之类的错误以及其他链接错误.有人可以给我提示如何更改Makefile使其起作用吗? 解决方案 我不清楚正在修改哪个ma
..
已经在SO上提出了非常类似的问题,但是我找不到以下问题的答案. 线性最大化问题可以通过使用全部量词轻松地陈述: obj = f(x) AND \forall x . Ax f(x)
..
我在编译z3时遇到以下错误.对于ld来说似乎是错误的.我想知道如何做才能使其编译.这是git中opt分支的问题.我在使用OS X 10.9.2(13C1021)的iMac上 我使用的xcode版本5.1.1(5B1008)的xcode-select工具安装到版本2333.我使用的端口版本是2.2.1,安装了ld. 该问题似乎是一个链接问题.我将链接加载器用作:ld64 @ 136_2 + llvm
..
您能告诉我如何在z3 SMT-LIB 2.0基准测试中命名断言吗?我更喜欢使用SMT-LIB的标准语法,但是由于z3似乎不了解它,我只是在寻找一种使用z3的工具.需要获得带有标签的非饱和核. 这是我测试过的基准测试的一个示例: (set-option enable-cores) (set-logic AUFLIA) (declare-fun x () Int) (declare-fun
..
我在使用Z3 for Java的当前项目中遇到了一些性能问题: 基本上我当前的大多数约束非常简单: 例如:(f(x) = 2&& f(y)
..
我正在使用Z3和Java API。在我的SMT-LIB2文件中,有几个变量: (declare-fun x0()Int) ( declare-fun x1()Bool) ;很多 我想得到所有这些变量,并将它们存储在 Expr的。从z3随附的示例中,我发现API SMTLIBDecls 获取从SMT-LIB1文件解析的声明,但SMT-LIB2没有类似的API。我怎样才能得到声
..
我已经安装了 Z3 API for Java ,我正在尝试使用它,但我找不到任何解释如何使用此API的教程或文档。 到目前为止我找到的唯一资源是源代码和示例程序,所以我想知道是否有人知道 Z3 Java API 的任何其他文档/教程。 解决方案 目前没有单独的Java API文档(API本身的注释除外)。 bovoi表示,这个API的大部分都是从.NET API自动翻译出来的,所以它
..
:变量x定义为int排序 (declare-const x Int) 是否有任何方法可以将x转换为bitvector排序?因为有时x涉及int理论无法处理的位操作,如&,|,^。 我不想在开始时将变量x定义为位向量因为我认为除了位操作之外,int理论支持的操作(例如+, - ,*,/)比bitvectors支持的操作运行得快得多。 所以实际上,我想将int sort转换为bit
..
将列表上的包含操作公正化( on Rise4Fun )as (declare-fun Seq.in((List Int)Int)Bool) (assert(for((int int)) (不(Seq.in nil e)))) (assert(fors((xs(List Int))(e Int)) (iff (not(= xs nil)) (= (Seq.in xs e) (或
..
SMTLib2指令(get-info all-statistics)显示几个数字,例如 NUM。冲突:4 num。传播:0(二进制:0) num。 QA。 inst:23 为了测试不同的公理和编码,我想知道哪些数字适当地声明一个Z3跑步比另一个更好/更有效。 从名称中猜出,我会说 num。 QA。 inst - 量词实例的数量是一个很好的指标(较低=更
..
鉴于使用Z3's reals编码的问题,哪些统计信息 Z3 / smt2 / st 产生可能有助于判断reals引擎是否具有问题/做很多工作“? 在我的情况下,我有两个主要是等价的问题编码,都使用reals。然而,编码中的“小”差异在运行时产生了很大的不同,即编码A需要2:30分钟并编码B 13分钟。 Z3统计数据显示,冲突和量化实例化大部分是等效的,但其他的则不是,例如 grobner ,
..
前一段时间,我问我如何使用Z3来获取有关集合约束的模型(有没有办法使用Z3来获取有关集合的约束的模型?对于这个扩展的数组理论在我的情况下工作得很好。 现在我已经有序列的同样的问题(操作长度,成员资格,(内部)相等切片)和地图。即公理化导致与集相同的问题。我一直在考虑使用扩展阵列理论编码序列和地图,但是我还没有想出一个很好的方式来实现。 有没有人想知道如何编码序列和地图以获得准确的模型?
..
我的示例:方程组 伪代码约束基础 b a = b + c ∧e = a * c ∧a = +2;一些可替换的具体值 ∧c = +18 b = -16 ∧e = -32 我想要的信息 在方程组中,我想得到以下知识: / p> 抽象公式可用于从给定值计算变量值约束基础)。 (像在高中,老师不只是想
..
此问题是对以下问题的跟进。 程序附件在Z3 我有一个谓词(在这种情况下我使用名称”重“)以使用自定义算法进行评估。我写了下面的代码片段来做。但我看到,传递到函数CMTh_reduce_app()的参数不是实际的整数,而是整数类型的常量。我需要的是2个整数,所以我可以评估谓词并返回结果(在函数CMTh_reduce_app()中完成的操作现在是无意义的)。 #include
..
z3 python接口中的Concat()函数允许连接任意位向量。我们的应用程序使用的是C ++接口。有一个简单的方法来获得与C ++接口相同的效果?我试图建立一个输出位向量表达式从子表达式。我可以使用shift和or操作,但我想要更简单,如果它存在。 例如,我想做的事情之一是创建一个4位位向量表示输入8位位向量表达式的奇数位。以下工作: expr getOddBits8to4(co
..
在下面的代码中,我提出了一个明显不能令人满意的Z3声明,然后尝试使用C ++ / C Z3 API来以编程方式解决。 问题是这个代码总是触发检查输出:“SAT ?!”。即在API调用的当前使用中确定明确不可满足的表达式是可满足的。 如何使这种操作按预期工作? #include“z3 ++。h” int main(){ z3 :: context c; std ::
..
在下面的代码中,我提出了一个明显不能令人满意的Z3声明,然后尝试使用C ++ / C Z3 API来以编程方式解决。 问题是这个代码总是触发检查输出:“SAT ?!”。即在API调用的当前使用中确定明确不可满足的表达式是可满足的。 如何使这种操作按预期工作? #include“z3 ++。h” int main(){ z3 :: context c; std ::
..
我使用z3 v 4.1。我使用C ++ API,我想在上下文中添加一些数组约束。 我没有看到C ++ API中的选择和排序功能。我试过混合C和C ++ API。在例如从 Z3_Context (即C API)更改上下文变量的C API中提供的 array_example1() 上下文(即C ++ API)在“创建先行”语句中获得分段错误 void array_example1(){
..
任何人都可以请帮助! 当我试图运行下面的代码,我得到这个错误: “无法加载文件或程序集”微软。 Z3,版本= 4.0.0.0, 区域性=中性公钥= 9c8d792caae602a2'或其 依赖项。试图加载一个不正确的程序 格式为“ 下面是代码: 类计划 { 静态无效的主要(字串[] args)使用 { (上下文CTX =新的上下文()) { RealE
..
我需要评估过的Z3使用各种变量值的表达式的值。 我知道Z3是satisfiabilty检查,但model.Eval(参数)会导致一个表达式的评估在由模型生成的变量的值。 因此,它是可能的。p和q在p和q(p,q是布尔)的所有可能值 例> 因此,在一定意义上使用一些递归或迭代创建真值表出来。 是可以任何方式Z3这样做呢? 帮助与C#的API会更好。 感谢
..