Реализация вставки кучи через Dafny (со спецификациями)

Я пишу HeapInsert на Dafny, но не могу доказать правильность кода.

Я попытался написать это с помощью этого алгоритма: я использую этот алгоритм:

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); 
} 

но я понятия не имею, что такое инвариант цикла, и это довольно сложно доказать.

Мне нужно написать HeapInsert в dafny со спецификациями и доказательствами.

0 ответов

Другие вопросы по тегам