Z3是Microsoft Research开发的高性能定理证明器。
我有一个未解释的排序A sortA = DeclareSort('A')和一个函数foo:foo = Function('foo',sortA,sortA,BoolSort())现在,我想定义一个排序为A的常量列表。我的尝试是:X = [...
我想捕获事实事实断言。 int f(x){if(x == 1)返回1; else {assert(x> 0);返回2; }} int g(x){assert(x> 5); ...
我正在使用z3py,并且我有一个大小为3的IntVector。我需要将IntVector中的每个数字解析为一个整数。意思是,如果我有一个IntVector,它具有这样的约束:myIntVector = ...
我正在尝试使用z3中的Array类型解决问题。因为我需要使用BitVec类型,所以我将数组声明为:numbers = [BitVec(chr(i),8)for range(0,4)中的i]然后:s = Solver()s ....
我想检查a,b,c的值,如果值'a'等于1,则'x'加1。我们继续执行值“ b”和“ c”的过程。因此,如果a = 1,b = 1,c = 1,则x的结果应为3。如果a = 1,b = 1,c = 0,...
我正在创建带有某些节点的树。每个节点都有与其相关的某些属性,例如成本。想法是找到成本最低的路径。叶节点已经为其声明了成本。 ...
我有7个杯子,里面装有一些水。我需要对这些杯子进行编程,以容纳不同量的水。完成此操作后,我需要测量水量最高的杯子,然后...
Z3中是否有一种方法可以将函数应用于集合的每个元素以获得新集合?在通常的编程语言中,此类函数如下所示:map ::(a-> b)-> Set a-> ...
如果仅执行(检查星期六),则标记为不坐。但是,如果您尝试(get-model),它不会标记,并且错误会立即出现。有什么办法可以标记我而不会出错?
如果一个公式具有多个模型,是否有某种方法可以打印它们?我有一个问题,我知道有很多解决方案。但是,如果我使用以下命令(check-sat)(get-model)(...
我写这封信询问Z3优化功能背后的理论/算法,特别是对于它的最大值和最小值功能。这似乎很神奇的给我。它是莫名其妙的二进制搜索或这样的吗?怎么样 ...
我写在Haskell调用Z3求解器来解决约束一些复杂公式的应用程序。由于哈斯克尔我可以快速切换,我处理的数据类型。当使用SBV的AlgReal ...
我开始使用Z3,我给它一个玩具问题。我们的想法是为所有分配(A,B,C),中的至少一个(FA(B,C)==一个,FB(A,C)== B,FC(A,B)== c)中必须是真实的。该模型报告[FC = ...
我试图尽量减少使用Z3值。我设置冗长为0,并且观察到,Z3找到一个上限,并开始从那里工作以最小化的值。例如:(优化:检查-SAT)(优化:...
这将是有人在其怪癖Z3或利益的更深层次的理解正确的问题。还有嗨,我运行下面的测试来了解GADTs在Z3蟒蛇是如何工作的。它似乎 ...
目的:我的目标是在理论上,我有机会获得,并且可以推理整数,也有一个已知函数酒吧上班。我希望能够进行求解这样的:巴(巴(X))== ...
问题我在Z3下面的数据类型定义的工作。我的目标是基本上是“超载”的加法运算。我试着用了的ForAll以下伎俩,但Z3似乎认为它...