m = ГҐ A [k- 1, i + k-1] or sum = ГҐ A [k-1, i + k-1] or sum = 0 = 1 k = 1-i
Обмежуюча функція t: mij-1 and nj
Інваріант і що обмежує функція для зовнішнього циклу:
P: " j, i:-n +1 ВЈ i ВЈ j ВЈ m-ij
$ max: (max Ві ГҐ A [k-1, i + k-1] or max Ві span> ГҐ A [k-1, i + k-1]) = 1 k = 1-ij (max = ГҐ A [k-1, i + k-1] or max = ГҐ A [k-1, i + k-1]) = 1 k = 1-i
Обмежуюча функція t: 0-i - для негативної частини or mi - для невід'ємне частини
Доказ часткової та повної правильності програми.
Доведемо правильність роботи внутрішнього циклу.
X
n +1 ВЈ y
ВЈ r ВЈ mi
" j, i:-n +1 ВЈ i ВЈ j ВЈ m-ij
$ sum: sum = ГҐ A [k- 1, i + k-1] or sum = ГҐ A [k-1, i + k-1] or sum = 0 (*) = 1 k = 1-i
При першому попаданні в точку Х твердження (*) виконується, так як sum = 0.
Нехай при p - попаданні в точку Х твердження (*) виконується. Доведемо, що твердження (*) виконується при p +1 - попаданні в точку Х.
Для p: j
$ sum: sum = ГҐ A [k- 1, i + k-1] or sum = ГҐ ...