【发布时间】:2014-04-27 11:23:55
【问题描述】:
我想知道是否有人可以帮助我回答这个问题。它来自以前的试卷,我可以知道为今年考试准备的答案。
这个问题看起来很简单,以至于我完全迷失了,它到底在问什么? 以下算法找到最大值是否正确?
{P: x≥0 ∧ y≥0 ∧ z≥0 }
if (x > y && x > z)
max = x;
else if (y > x && y > z)
max = y;
else
max = z;
{Q: max≥x ∧ max≥y ∧ max≥z ∧ ( max=x ∨ max=y ∨ max=z )}
答案必须基于算法最弱前提的计算。
您如何验证这一点?看起来很简单。
谢谢。
【问题讨论】:
-
确实,验证程序是霍尔逻辑的直接应用(en.wikipedia.org/wiki/Hoare_logic)。你试过什么?你读过课程文件吗?
-
我做了..我不知道如何开始..
标签: proof formal-methods post-conditions proof-of-correctness hoare-logic