2
我知道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)
。