标签: logic verification variant hoare-logic
我有以下问题: 前置条件为真
int n = askUser(); int i = 0; while(i<n){ ... i++; }
我想到的变体是:n-i。 但是,我认为没有任何东西会阻止用户提供负值,在这种情况下,变体将是负数(这与其定义相矛盾)。
n-i
是否可以将不变量指定为| n | - i,或者n> = 0必须作为前提条件包括在内吗?
非常感谢任何帮助或建议。