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