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)
:それはのような単純なものをチェックするようにする方法がある場合はしかし、私は好奇心旺盛です。