问题标签 [cvc4]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
frama-c - 使用 CVC4 证明器时,frama-c wp 插件语法错误
使用示例 find.c 文件,我可以使用默认的 alt-ergo 证明它没有问题。但是当更改为 cvc4 时,会收到警告消息和语法错误。这里的代码:
运行此命令并获取以下消息:
frama-c -wp -wp-prover CVC4 -wp-out out find.c
如何摆脱警告和语法错误?我的 CVC4 是 1.6 版。
python - 为逻辑谜题建模
我正在尝试从To Mock a Mockingbird建模一个逻辑难题。我正在努力将其翻译成 SMT-LIB。谜题是这样的:
有一个花园,所有的花要么是红色的,要么是黄色的,要么是蓝色的,所有的颜色都被代表了。对于您采摘的任何三朵花,至少一朵是红色的,一朵是黄色的。第三朵花永远是蓝色的吗?
我尝试将花园建模为Array Int Flower
,但这不起作用,我相信因为数组的域固定在所有整数的范围内。Z3 很有帮助地告诉我这是无法满足的,CVC4 只是立即返回未知。
这个谜题的唯一解决方案是一个花园,每种颜色只有一朵花,但我如何让解题者告诉我这个?
这是我失败的尝试:
z3 - smtlib 中的 define-fun 与 define-funs-rec
这似乎是根据SMTLIB 标准define-funs-rec
可以做什么的严格超集。如果是这样,是否有理由不总是使用,也许除了语法简单之外?define-fun
define-funs-rec
z3 - 同一公理的编码差异
我想知道同一个列表公理的这两种编码有什么区别:
和
对于这个基准:
不知何故,z3 能够推断出第二个版本,但不能推断出第一个版本(它似乎只是永远循环)。
编辑:与 cvc4 相同,第一个版本返回未知。
smt - 为什么CVC4产品运营商不适用于套装?
我正在修改 CVC4 对集合和关系的支持,并希望能够使用product
运算符来构建两个集合的笛卡尔积。但是,此运算符仅适用于关系。
这是馈送到 CVC4 的示例输入:
这会导致以下错误消息:
然后我发现 CVC4 期望product
运算符适用于元组集。以下处理成功:
CVC4 可以在这里将集合视为具有该集合元素的 1 元组的集合。
- 是否有任何基本问题阻止它发生这种行为?
z3 - 在 SMT-LIB 2 中像 C 一样截断整数
我将符号执行引擎的符号输出以 SMT-LIB 2 格式传递给 Z3。我需要它来截断整数,就像它们在 C 中一样。所以那(assert (= 1 (/ 3 2)))
将是SAT
.
这些公式也可能有浮点数,因此并非所有除法都应截断。只是整数的划分。
如何做到这一点?
smt - 计算一个 Int Set 的总和
使用 CVC4 的集合论(版本 1.8-prerelease [git master a90b9e2b])我定义了一组具有固定基数的整数
CVC4 然后给了我一个正确的模型
有没有办法求集合 A 中的整数之和?
smt - smt2 中的类型不匹配
下面的 smt2 代码给出了与类型相关的错误。
错误:
为什么它不知道使用返回类型,有没有办法做到这一点?
一种方法是手动将其设置为(nil (as nil (List Ty)) )
解决错误但我不想在程序中的每个 nil 处指定返回类型。还有其他方法吗?或者我需要提到的任何选项 enable ?
file - CVC4 无法打开 SMT2 格式的文件
我正在尝试使用CVC4对函数执行语法引导合成。首先,我正在关注CVC4 Getting Started,我的example.smt2
文件如下所示:
当我cvc4 example.smt2
在目录中的命令行运行时,根据上面链接的教程应该没有问题。但是,我收到此错误:
请注意,此错误与文件不存在时不同。例如,当我运行时cvc4 exampl.doesnotexist
,会出现以下错误:
这是不同的。我到处查找,但找不到答案。有任何想法吗?
z3 - Z3 和 CVC4 中有哪些用于位向量的转换运算符?
我正在编写一个需要将一些转换Int
为BitVec
反之亦然的问题的 BV 编码。
在mathsat
/optimathsat
一个可以使用:
在z3
一个可以使用:
在CVC4
一个可以使用:
问:
- 有签名
z3
的功能吗?(看起来没有。)bv2int
BitVec
CVC4
有什么功能bv2int
吗?(我没有任何线索。)- 是否有记录这些转换功能的地方?(关于逻辑/理论的 SMT-LIB 网页似乎没有任何关于它们的信息。)
注意:我受限于基于文本的 SMT-LIB 接口(没有 API 解决方案)。