我想展示一个简单的车辆配置问题的可满足性,其中任何车辆都必须有一个轮子。 这是编码: 我用CVC4 online运行它,得到了这个: 我希望它是可满足的,一辆车有一组 1 个轮子。 它是否因为类型是开放的而失败? 我尝试使用枚举类型但没有成功。 尝试使用CVC5 在线结果: ...
我想展示一个简单的车辆配置问题的可满足性,其中任何车辆都必须有一个轮子。 这是编码: 我用CVC4 online运行它,得到了这个: 我希望它是可满足的,一辆车有一组 1 个轮子。 它是否因为类型是开放的而失败? 我尝试使用枚举类型但没有成功。 尝试使用CVC5 在线结果: ...
我正在尝试使用 Z3 来探索两个谓词之间的区别,但该模型包含exist -expressions,我希望它是布尔常量。 我在 smtlib 中有以下程序: 当问题可满足时,我试图找到t1和t2的值。 Z3 回应 t1和t2的模型没有给我布尔常量,而是表达式。 我怎样才能说服 Z3 给我这些表达式 ...
我正在https://github.com/cvc5/cvc5/blob/main/examples/api/python/pythonic/linear_arith.py玩 CVC5 示例。 它按预期工作。 但是,每当我尝试打印公式的内容(即print(slv) )时,它都会引发以下错误: Ca ...
我在 Python 中有一个使用定理证明的实现。 我想知道是否有可能加快SMT求解部分,目前正在使用Z3。 我正在尝试发现不同的求解器,并发现 cvc4/cvc5 和 Yices 作为多理论(算术、相等、位向量...)求解器。 我还发现了 dReal 和 MetiTarski(这个似乎已经过时了) ...
我正在摆弄CVC4 SMT 求解器在线版本(使用 lang = cvc4)。 我使用的不是标准的SMT-LIB 格式,而是CVC4 实现的本机语言,因为它要简单得多。 但是,我无法证明非常直接和明显的陈述。 例如,第一个 CHECKSAT 给我sat (satisfiable),这是正确的,但第二 ...
目前,我对 SMT 求解器的工作原理(E-matching、MBQI 和 CVC4/5 的归纳推理等算法的基础知识)的理解有些肤浅。 但是,通过反复试验进行调试非常令人沮丧。 是否有关于如何调试大量使用量词的 SMT 脚本的指导? 一个写得不好的脚本经常进入无限循环,但我不知道这是我的错误, ...
例如, 还行吧。 但是,我想通过as来限定它? 我应该填写什么??? ? 它必须是一种类型,但我应该使用哪种类型? 我试过((Int Real) Int)或(-> (Int Real) Int)或(_ (Int Real) Int) ,但都不正确。 是否可以在 smtlib 中声明 fun ...
我对 smtlib 中的declare-const有疑问。 例如, 在z3/cvc4中,以下程序不报错: 在 smt-lib-reference 中,它说 (declare-fun f (s1... sn) s)... 如果名称为 f 的 function 符号已经存在于当前签名中,该命令将报告错 ...
我可以为如下查询获取多个模型吗? 而不仅仅是 我想得到 0, 1, -1, 2, ... ...
我被困在如何在 SMTLIB2 中创建一个声明类似 该属性将检查一个 function 递归地将所有小于 100 的数字加 1: 我通读了关于量词和模式的 Z3 教程,但这似乎并没有让我在任何地方获得太多帮助。 ...
我正在尝试使用 SMTLIB 格式来表达 Z3 中的集合成员资格: 函数emptyset和member似乎在 CVC4 中按预期解析,但在 Z3 中却没有。 From checking the API (eg, here: https://z3prover.github.io/api/html/ ...
所以我刚开始学cvc4我花了一段时间的学习后boolector 。 有了它,可以只使用boolector_print_model打印模型。 不幸的是,目前cvc4的文档页面已关闭,我无法理解如何在 Java 中对cvc4执行相同的cvc4 。 任何人都可以帮忙做吗? 例如,您可以帮助我查看此示例 ...
我想从 CVC4 生成的 sygus 文件中改变约束的内部表示。 例如 (constraint (and (<= x (fxy)) (<= y (fxy)))) 是来自 small.sl 的约束,我将其提供给 cvc4 qas 输入以合成程序。 我知道 cvc4 使用类 Expr 创 ...
我在以下 SMT 输入上执行了 z3 和 CVC4。 两者都返回未知。 他们无法决定可满足性是否有任何根本原因? 哪些选项或其他求解器适合解决此类问题? ...
我正在尝试使用 Java API 在 CVC4 中定义参数化数据类型option 。 我的问题是我不知道如何调用None构造函数。 我尝试了以下代码: 这会导致以下错误: 当我删除类型归属行时,它不会推断出正确的类型,所以我认为类型归属是必要的。 这是我在没有类型说明的情况下得到的错误: 如何使用 ...
我有一个可以动态生成 SMT-LIB 格式的表达式的程序,我正在尝试将这些表达式连接到 CVC4 以测试可满足性并获取模型。 我想知道是否有一种方便的方法可以通过 CVC4 C++ API 解析这些字符串,或者最好将生成的 SMT-LIB 代码存储在文件中并将输入重定向到 cvc4 可执行文件。 ...
我正在编写一个问题的 BV 编码,该问题需要将一些Int转换为BitVec ,反之亦然。 在mathsat / optimathsat中可以使用: 在z3中可以使用: 在CVC4中可以使用: 问: z3是否有用于 Signed BitVec 的bv2int BitVec ? (看起来没有。) ...
我正在尝试使用CVC4对函数执行语法引导合成。 首先,我正在关注CVC4 入门,我的example.smt2文件如下所示: 当我在目录中的命令行中运行cvc4 example.smt2 ,根据上面链接的教程,应该没有问题。 但是,我收到此错误: 请注意,此错误与文件不存在不同。 例如,当我运 ...
下面的 smt2 代码给出了与类型相关的错误。 错误: 为什么它不知道使用返回类型,有没有办法做到这一点? 一种方法是手动将其设置为(nil (as nil (List Ty)) )以解决错误但我不想在程序中的每个 nil 处指定返回类型。 还有其他方法吗? 或者我需要提到的任何选项启用? ...
使用 CVC4 的集合论(版本 1.8-prerelease [git master a90b9e2b])我定义了一组具有固定基数的整数 CVC4 然后给了我一个正确的 model 有没有办法求集合 A 中的整数之和? ...