寻找Hoare三元组的循环不变性和部分正确性证明

我想为找到这个Hoare三元组的解决方案提供一些帮助:

(| k > 0 |)最大(|∀ j (0≤ j k ⇒ m a [ j ] |)

其中 k 是整数数组 a 的长度。程序Max看起来像这样:

i = 0;
m = a[0];
while ( i!=k ) {
   if ( a[i]>=m ) {
      m = a[i];
   } else {
      m = m;
   }
   i = i+1;
 }

程序Max应该用来计算数组的最大(最大)元素。任务是通过执行以下操作来证明上述Hoare三元组是部分正确的:

  1. 定义适当的循环不变性。
  2. 将证明作为静态呈现。
  3. 确定所有举证责任,并论证其真实性(争辩为什么一个表达可以从另一表达衍生出来)。 应该使用隐式,分配,部分While等规则来完成此操作。

非常感谢您的帮助!

jiayibeibao 回答:寻找Hoare三元组的循环不变性和部分正确性证明

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2957548.html

大家都在问