Expected Cost | +- [f] | 0 | +- [Program] | va :~ {1 : n} | vb :~ {1 : 0} | 0:While(va ≥ 1) | Tick(1) | 1:If(m ≥ 1 + vb) Then | vb :~ {1 : 1 + vb} | va :~ {1 : -1 + va} | Else | vb :~ {1 : 0} | +- While.step | | | +- [Problem] | | 0:While(va ≥ 1) | | Tick(1) | | 1:If(m ≥ 1 + vb) Then | | vb :~ {1 : 1 + vb} | | va :~ {1 : -1 + va} | | Else | | vb :~ {1 : 0} | | | +- [f] | | 0 | | | +- Expected Cost Body | | | | | `- [1 | ⊤] | | | +- conditions-template | | | | | `- 1 + [1 + -m + vb | 1 + -m + vb ≥ 0] + [m | m ≥ 0] + [m + -vb | m + -vb ≥ 0] + [va | va ≥ 0] | | | +- [Norms] | | [[1 | ⊤],[1 + -m + vb | 1 + -m + vb ≥ 0],[m | m ≥ 0],[m + -vb | m + -vb ≥ 0],[va | va ≥ 0]] | | | +- [Invariant] | | m ≥ 1 ∧ va ≥ 1 ==> [1 | ⊤] + h([1 | ⊤],ite(m ≥ 1 + vb,[2 + -m + vb | 2 + -m + vb ≥ 0],[1 + -m | 1 + -m ≥ 0]),[m | m ≥ 0],ite(m ≥ 1 + vb,[-1 + m + -vb | -1 + m + -vb ≥ 0],[m | m ≥ 0]),ite(m ≥ 1 + vb,[-1 + va | -1 + va ≥ 0],[va | va ≥ 0])) ≼ h([1 | ⊤],[1 + -m + vb | 1 + -m + vb ≥ 0],[m | m ≥ 0],[m + -vb | m + -vb ≥ 0],[va | va ≥ 0]) | | 1 ≥ 1 + va ∧ m ≥ 1 ==> 0 ≼ h([1 | ⊤],[1 + -m + vb | 1 + -m + vb ≥ 0],[m | m ≥ 0],[m + -vb | m + -vb ≥ 0],[va | va ≥ 0]) | | | `- [m ≥ 1] · ([1 + -m + vb | 1 + -m + vb ≥ 0] + 2·[va | va ≥ 0]) | `- [m ≥ 1] · ([1 + -m | 1 + -m ≥ 0] + 2·[n | n ≥ 0])