Loops 找出“a”的正确性;“while循环”;使用霍尔逻辑
我目前正在努力弄清楚,如何证明一个包含循环的程序是正确的。我在wp、vc和pc的基础上工作 有问题的循环是:Loops 找出“a”的正确性;“while循环”;使用霍尔逻辑,loops,while-loop,formal-verification,loop-invariant,hoare-logic,Loops,While Loop,Formal Verification,Loop Invariant,Hoare Logic,我目前正在努力弄清楚,如何证明一个包含循环的程序是正确的。我在wp、vc和pc的基础上工作 有问题的循环是: wp(while(i<n) i = i+1; | i >= n) wp(while(true) x=4; |x=4) wp(while(i=n) wp(而(真)x=4;|x=4) 其中“;”之前的所有内容都是程序,而“|”之后的所有内容都是后置条件 在我的讲座中,我听说你必须找到不变量以及程序的终止函数,但我目前还不知道如何直观地做到这一点。我听说,你需要训练这个,但我
wp(while(i<n) i = i+1; | i >= n)
wp(while(true) x=4; |x=4)
wp(while(i=n)
wp(而(真)x=4;|x=4)
其中“;”之前的所有内容都是程序,而“|”之后的所有内容都是后置条件
在我的讲座中,我听说你必须找到不变量以及程序的终止函数,但我目前还不知道如何直观地做到这一点。我听说,你需要训练这个,但我还没有看到关于这个的例子,大部分只是理论。如果有人能帮我解释循环的验证,那将是b我真的很好
我非常感谢您的帮助。维基百科有一个很好的介绍:这是一个建立良好的研究领域,有很多在线资源。这里有一个例子可以让您开始:
wp
是一个函数,结果是一个表达式。这里不需要证明某些东西是正确的。(您没有霍尔三元组。)这两个wp
表达式的计算结果都是true
,因为在这两种情况下,无论初始状态如何,post条件都是满足的。Wikipedia有一个很好的介绍:这是一个成熟的研究领域,有很多在线资源。下面是一个示例,可以帮助您开始:wp
是一个函数离子,结果是一个表达式。这里不需要证明某些东西是正确的。(你没有霍尔三元组。)两个wp
表达式的计算结果都是true
,因为在这两种情况下,无论初始状态如何,post条件都是满足的。