标签: infinite-loop post-conditions hoare-logic
我的老师告诉我以下陈述是有效的: {x> 3}而真(x:= 3){x = 3}
为什么此陈述有效? 是因为后置条件永远不会被检查,还是后置条件现在算作不变检查?
简而言之:存在无限循环时,后置条件可以是任何东西吗?
这将是有效的:{x> 3}而为真(x:= 3){x = 0}
答案 0 :(得分:0)
无限循环根本可以具有任何后置条件(包括完全愚蠢的东西,例如1 = 0),这将是空虚的。实际上,永远为假的后置条件是强制循环永不退出的一种方式。