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)
。