我在推理Hoare Logic的练习。
我应该找到所有布尔表达式B
以及满足三S
的所有程序P
和{true} if B then S; if B then P; {a >= 0}
,假设评估B
无法修改商店,但执行S
可能会对其进行修改并更改B
的值。
特别是,我不知道我可以对a
说些什么,因为它只存在于后置条件中,我从来没有找到过像这样的例子。
感谢您的帮助!
答案 0 :(得分:0)
(我之前的回答是错误的。)
这个问题有点开放,因为有无数个表达式(B
)和程序(S
和P
)满足三元组。此外,三元组很复杂,足以防止将任务简化为简单的一般答案。
基本上你可以把它分解如下:
B
为假的所有州,a >= 0
必须保留(否则整个三联不能保留)B
为true
的州,计划S; if B then P
必须确保a >= 0
S
,B
和P
,以便......
S
使B
为false,a >= 0
S
使B
成为真,并且......,等