如何定义JML中的“减少”?

时间:2015-03-05 12:42:30

标签: jml

decreases之后的语句必须在每个循环中严格地变小,并且始终为非零。但是它必须达到0吗?是否必须缩小一个?

1 个答案:

答案 0 :(得分:2)

the JML documentation中所述,减少(您也可以写减少)意味着具有该说明符的int或long表达式“必须不小于循环执行时为0,每次循环时必须减少至少一(1)。“

所以它可能会或可能不会达到0,但不能小于0。此外,它必须至少变小,但不一定是一个。请注意文档中的示例以获得更精确的解释。