【发布时间】:2017-08-29 19:46:03
【问题描述】:
我了解 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)
现在它只是在我的机器上永远循环。
【问题讨论】:
标签: z3