我在 SMT-LIB 中使用 Int 定义时间步长,这迫使我断言事情以确保在否定中没有任何事情发生:
(declare-sort Pkg) ; A package
(define-sort Time () Int) ; The installation step
; ...
(assert (forall ((t Time) (p Pkg)) (=> (< t 0) (not (installed p t)))))
我看到在 Z3 中我们可以Nat
用通常的样式定义 inductive s。使用归纳定义会更好,Nat
还是有更好的方法来做我上面想做的事情?