ага, оно. я, как обычно, забыл две важных части. во-первых, традиционный трап, когда все стражи ушли на обед. и во-вторых, то, что в обобщённом случае предполагается недетерминированый порядок выбора веток, как и в цикле Дейкстры; детерминизм же — случай частный, и особенность реализации. плюс удобный предикат `init`. в таком виде оно заодно решает проблему с копипастой перед первой итерацией.

в общем, вижу смысл потом переработать компилятор на категорическое использование только этой штуки, а остальные циклы внутри выражать через неё (для совместимости исходников). собственно, при таких раскладах цикл LOOP вообще можно из ультрапаскаля выкинуть, оставив его лишь в режиме совместимости с CP.

p.s.: шоп я сходу понял доказательства — так нет: как-нибудь потом вникну. пока приму на веру, что Парнас прав.

p.p.s.: опять синтаксис придумывать…