Я пытаюсь понять, как инварианты цикла взаимодействуют с разрывами. CLRS 3e (pg19) описывает инвариант цикла как требующий, чтобы
Если оно истинно до итерации цикла, оно остается истинным и до следующей итерации.
Итак, учитывая следующий тривиальный цикл
for i = 1 to 5
if i == 3 then break
Будет ли справедливо сказать, что i ‹ 4 является инвариантным свойством цикла? Аргумент заключается в том, что, поскольку цикл завершается оператором break, после нарушения этого свойства итерация не выполняется.