Если мы говорим о логике Хоара для доказательства (частичной) правильности программ, то вы используете предусловие и постусловие, декомпозируете программу и используете правила системы логического вывода Хоара для создания и доказательства индуктивной формулы.
В вашем примере вы хотите разложить программу, используя правило
{p} while b do S {p^not(b)} <=> {p^b} S {p}
В вашем случае
- p: i ≥ 0
- b: i> 0
- S: i: = i − 1.
Итак, на следующем шаге мы сделаем вывод {i ≥ 0 ^ i > 0} i := i−1 {i ≥ 0}
.Это может быть в дальнейшем выведено и доказано довольно легко.Надеюсь, это поможет.