【发布时间】:2017-01-10 19:13:23
【问题描述】:
假设有一个方法接受两个参数 balance 和 price,它只执行以下操作:
if(price < balance) {
balance = balance - price;
}
我觉得有两种可能的方式来写这个三重奏:
(| price=p0 ^ balance = b0 |) buy (| ((p0 < balance) => balance = b0 - p0) v ((p0 >= balance) => balance = b0) |)
或
(| price=p0 ^ balance = b0 |) buy (| ((p0 < balance) ^ (balance = b0-p0)) v ((p0 >= balance) ^ (balance = b0))
( => 是暗示) 我想知道哪个是正确的?还是两者都正确?
【问题讨论】:
标签: logic hoare-logic