Вообще, как работает проверка инварианта (НАЧ, КОН, УТВ/Assert)? Не так, как описывал Паронджанов для синхронизатора? Т.е. как встречается оператор проверки - управление передаётся среде исполнения (какому-то системному процессу), тот уже проверяет условие - и если выполнено, возвращает управление на адрес начала оператора, следующего за проверочным, а если нет - оставляет управление у себя и делает что-то (ББ, скажем - выдаёт трап-окно и ждёт действий пользователя)?