Логика Хора | Какое постусловие выполняется при наличии бесконечного цикла?

Мой учитель сказал мне, что следующее утверждение верно: {x > 3}, тогда как верно (x := 3) {x = 3}

Почему это утверждение справедливо? Это потому, что пост-условие никогда не проверяется, или пост-условие теперь будет считаться инвариантной проверкой?

Короче говоря, может ли постусловие быть чем угодно, если есть бесконечный цикл?

Тогда это будет действительным: {x > 3}, а true (x := 3) {x = 0}


person ToTheMax    schedule 03.11.2018    source источник


Ответы (1)


Бесконечный цикл может иметь любое постусловие (в том числе что-то совершенно глупое, например, 1=0), и оно будет абсолютно истинным. На самом деле всегда ложное постусловие — это способ обеспечить невозможность выхода из цикла.

person Joseph Sible-Reinstate Monica    schedule 03.11.2018