在后置条件下具有未知变量的Hoare三元组

时间:2013-09-17 10:43:41

标签: correctness hoare-logic

我在推理Hoare Logic的练习。

我应该找到所有布尔表达式B以及满足三S的所有程序P{true} if B then S; if B then P; {a >= 0},假设评估B无法修改商店,但执行S可能会对其进行修改并更改B的值。

特别是,我不知道我可以对a说些什么,因为它只存在于后置条件中,我从来没有找到过像这样的例子。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

(我之前的回答是错误的。)

这个问题有点开放,因为有无数个表达式(B)和程序(SP)满足三元组。此外,三元组很复杂,足以防止将任务简化为简单的一般答案。

基本上你可以把它分解如下:

  • 对于B为假的所有州,a >= 0必须保留(否则整个三联不能保留)
  • 对于Btrue的州,计划S; if B then P必须确保a >= 0
  • 这适用于所有SBP,以便......
    • S使B为false,a >= 0
    • 或,S使B成为真,并且......,