下面的模块声明了一组 10 到 99 范围内的数字,它们只能被 2 整除一次并调用它NumbersThatDivideBy2Once
。最后它声明了一个定理,即常数input
是 的子集NumbersThatDivideBy2Once
。
--------------------------- MODULE TestModule ---------------------------
EXTENDS Naturals
CONSTANT input
Numbers == { n \in Nat : n > 9 /\ n < 100 }
DividesBy2(n) == (n % 2) = 0
DividesBy2Once(n) == DividesBy2(n) /\ ~DividesBy2(n \div 2)
NumbersThatDivideBy2Once == { n \in Numbers: DividesBy2Once(n) }
THEOREM input \subseteq NumbersThatDivideBy2Once
=======================
我如何检查这个定理是否适用于给定的输入?如果我使用提供的一组数字作为 运行模型检查input
,即使其中一些数字不属于NumbersThatDivideBy2Once
我仍然没有错误。