相关疑难解决方法(0)

z3 支持证明归纳事实吗?

据我所知,z3 一般无法验证归纳证明。但我很好奇是否有一种方法可以让它检查一些简单的事情,例如:

; returns the same input list after iterating through each element
(declare-fun iterate ((List Int)) (List Int))

(declare-const l (List Int))

(assert (forall ((l (List Int)))
  (ite (= l nil)
    (= (iterate l) nil)
    (= (iterate l) (insert (head l) (iterate (tail l))))
  )
))

(assert (not (= l (iterate l))))
(check-sat)
Run Code Online (Sandbox Code Playgroud)

现在它只是在我的机器上永远循环。

z3

3
推荐指数
1
解决办法
293
查看次数

标签 统计

z3 ×1