Expected Cost | +- [f] | 0 | +- [Program] | 0:While(x ≥ 1 ∧ y ≥ 1 + x) | Choice | 1/2: x :~ {1 : 1 + x} | 1/2: x :~ {1 : -2 + x} | Tick(1) | +- While.step | | | +- [Problem] | | 0:While(x ≥ 1 ∧ y ≥ 1 + x) | | Choice | | 1/2: x :~ {1 : 1 + x} | | 1/2: x :~ {1 : -2 + x} | | Tick(1) | | | +- [f] | | 0 | | | +- Expected Cost Body | | | | | `- [1 | ⊤] | | | +- shift-avg-template | | | | | `- 1 + [1 + x | 1 + x ≥ 0] + [-x + y | -x + y ≥ 0] | | | +- [Norms] | | [[1 | ⊤],[1 + x | 1 + x ≥ 0],[-x + y | -x + y ≥ 0]] | | | +- [Invariant] | | x ≥ 1 ∧ y ≥ 1 + x ==> [1 | ⊤] + h([1 | ⊤],1/2·[2 + x | 2 + x ≥ 0] + 1/2·[-1 + x | -1 + x ≥ 0],1/2·[-1 + -x + y | -1 + -x + y ≥ 0] + 1/2·[2 + -x + y | 2 + -x + y ≥ 0]) ≼ h([1 | ⊤],[1 + x | 1 + x ≥ 0],[-x + y | -x + y ≥ 0]) | | 1 ≥ 1 + x ∨ 1 + x ≥ 1 + y ==> 0 ≼ h([1 | ⊤],[1 + x | 1 + x ≥ 0],[-x + y | -x + y ≥ 0]) | | | `- 2·[1 + x | 1 + x ≥ 0] | `- 2·[1 + x | 1 + x ≥ 0]