我正在用Dafny编写HeapInsert,但是我无法证明代码的正确性。
我尝试使用此算法编写它: 我正在使用此算法:
heap_size++;
int i = heap_size - 1;
harr[i] = k;
while (i != 0 && harr[parent(i)] <= harr[i])
{
swap(&harr[i], &harr[parent(i)]);
i = parent(i);
}
但是我不知道循环的不变性是什么,很难证明这一点。
我需要用dafny编写带有说明和证明的HeapInsert。