Возможно, имелся в виду алгоритм доказательства корректности фрагмента алгоритма с помощью инварианта. scienceforum.ru tpmtp.babichev.org
Алгоритм включает следующие шаги: scienceforum.ru
- Выбор предиката (или группы предикатов), значение которого истинно до начала исполнения фрагмента. scienceforum.ru tpmtp.babichev.org
- Исполнение фрагмента, при этом наблюдают за поведением предиката. scienceforum.ru tpmtp.babichev.org
- Проверка: если после исполнения предикат остался истинным при любых путях прохождения фрагмента, то алгоритм корректен относительно значения этого предиката. scienceforum.ru tpmtp.babichev.org
Инвариант здесь — это предикат, который сохраняет своё значение после исполнения заданных шагов алгоритма. scienceforum.ru
Для доказательства инварианта часто используют метод математической индукции: stepik.org
- Доказывают базу индукции: инвариант выполняется в самом начале, то есть при определённом значении (например, n = 0). stepik.org
- Доказывают переход индукции: показывают, что из выполнения инварианта после n операций следует его выполнение после n + 1 операции, то есть что допустимые операции не влияют на инвариант. stepik.org
- Делают вывод: благодаря индукции можно показать, что инвариант будет выполняться после любых n операций для любого целого значения n. stepik.org