抱歉,这是一个基本问题,我是 z3 的新手。 我写了一个程序来找到某个方程的实解。 因为它应该为每个方程生成,所以我不能事先将方程简化太多。 但是这个程序真的很慢。 这是一个很长的方程,但我只有 4 个未知变量,所以我不希望它花费这么长时间(类似的方程(但更短)的运行时间要短得多,并且以毫秒为单位完 ...
抱歉,这是一个基本问题,我是 z3 的新手。 我写了一个程序来找到某个方程的实解。 因为它应该为每个方程生成,所以我不能事先将方程简化太多。 但是这个程序真的很慢。 这是一个很长的方程,但我只有 4 个未知变量,所以我不希望它花费这么长时间(类似的方程(但更短)的运行时间要短得多,并且以毫秒为单位完 ...
继发表在 Z3(Py) 中 arrays 的表现力如何? 举个例子,我在 Z3Py 中表达了如下公式: Exists i::Integer st (0<=i<|arr|) & (avg(arr)+t<arr[i]) 这意味着:是否存在position i::0<i&l ...
亲爱的我有一个代码连接到 Oracle DB,以 Daraframe 的形式获取查询并将 email 发送到列中存在的接收器当我测试时,当我将 test_reciver 参数设置为 email 地址 test_reciver Email 收到但当我将(电子邮件接收者)设置为数据帧列时,没有收到 Em ...
考虑证明以下 while 循环的正确性,即我想证明给定循环条件一开始就成立,它最终将终止并导致最终断言为真。 在不使用循环展开的情况下,正确转换为 SMT-LIB 以检查正确性是什么? ...
I'm using the Z3_parse_smtlib2_string function from the Z3 C API (via Haskell's Z3 lib ) to parse an SMTLIB file and apply some tactics to simplify i ...
一旦遇到约束问题,我想看看它是否可满足。 基于返回的 model(坐下时),我想添加断言,然后再次运行求解器。 但是,我似乎误解了返回的 model 中包含的某些类型/值。考虑以下示例: 我希望在循环之后我基本上有两个约束n >= 42和n == 42 ,当然假设 z3 在第一次调用中产生 ...
新的 SMT-LIB 标准允许 function 形式的定义命令: 规范阐明这在语义上等同于 目前,我将使用 Python z3 API 定义一个 function,如下所示: 这是做这件事的规范方式还是有更直接或更有效的处理方式? ...
我知道有一种方法可以在 SMTLIB 中声明参数数据类型。 有没有办法定义一个接受这种类型的函数? 例如标准文档有: 现在我如何声明一个接受参数Pair类型的函数? ...
例如, 还行吧。 但是,我想通过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 符号已经存在于当前签名中,该命令将报告错 ...
假设我有以下问题(为了简化我的问题,我已经把它变得微不足道了) 如果第一次 sat 检查是 unsat/sat,我想做的是跳过第二次 sat 检查。 是否有可能做到这一点? 我相信如果我将 Z3 与 python 一起使用(运行 sat 检查,得到结果,并在结果上使用 python if 语句来确 ...
我目前正在为 Python 的一小部分构建一个符号执行引擎。 该子集支持的最复杂的数据结构是任意嵌套的元组,即,您可以编写类似x = (1, 2, (3, 4), 5) 。 在我的 SE 引擎中,所有值都表示为 z3 对象。 昨天,我很难在 z3 中对这些嵌套元组进行建模。 我试过的: 数组 ...
我试图找出一个正则表达式,它可以匹配以 smtlib 格式输出的程序的结果。 基本上,我的数据采用以下形式: 是否可以编写匹配的表达式: 我目前的方法是使用\(define-fun[\w\s]+\)查找单个出现,然后对于每个出现,删除(define-fun , Int , ()和) ,然后读取数据作 ...
我很确定应该可以使用 SMT-lib 语法来描述元组,尤其是对于 Z3 求解器。 但是,我真的找不到这样做的方法。 我唯一找到的是这个文档页面,但我不知道如何在z3 -in中使用它。 到目前为止我的挣扎:(declare-const t (Prod Int Bool)) (error "line ...
我有一些使用 PySMT API 编码的问题。 PySMT 的 GitHub 页面显示了有关将任何符合 SMTLib 的求解器与 PySMT 一起使用的示例。 它说 PySMT 会将问题交给标准输入中的求解器。 但我找不到任何直接将其打印到标准输出或文件的方法。 ...
我知道我可以用 simple (not (= ab))断言不等式,但我想知道是否有直接执行此操作的运算符。 我已经尝试了所有想到的东西,包括!= 、 <> 、 \= (这不会解析)、 /= 、 =/= 、 neq ,但它们都不起作用。 是否有专用的 function 或者我需要用否定组 ...