Initial Problem
Start: l0
Program_Vars: X₀, X₁, X₂, X₃
Temp_Vars: E
Locations: l0, l1, l2
Transitions:
t₀: l0(X₀, X₁, X₂, X₃) → l1(X₀, X₁, X₂, X₃)
t₁: l1(X₀, X₁, X₂, X₃) → l1(X₁-1, X₁-1, E, X₃) :|: 1 ≤ X₀ ∧ 1 ≤ X₁ ∧ 1 ≤ E ∧ 1 ≤ X₁+X₀
t₂: l1(X₀, X₁, X₂, X₃) → l1(X₁-1, X₁-1, E, X₃) :|: 1 ≤ X₀ ∧ 1 ≤ X₁ ∧ E+1 ≤ 0 ∧ 1 ≤ X₁+X₀
t₃: l1(X₀, X₁, X₂, X₃) → l1(X₀-1, X₀-2, 0, X₃) :|: 1 ≤ X₀ ∧ 1 ≤ X₁+X₀ ∧ 1 ≤ X₁
t₄: l1(X₀, X₁, X₂, X₃) → l2(X₀, X₁, X₂, E) :|: 1 ≤ X₀ ∧ X₁+X₀ ≤ 0 ∧ 1 ≤ X₁
t₅: l1(X₀, X₁, X₂, X₃) → l2(X₀, X₁, X₂, E) :|: 1 ≤ X₁ ∧ X₀ ≤ 0
t₆: l1(X₀, X₁, X₂, X₃) → l2(X₀, X₁, X₂, E) :|: X₁ ≤ 0
Preprocessing
Cut unsatisfiable transition t₄: l1→l2
Eliminate variables {X₂,X₃} that do not contribute to the problem
Problem after Preprocessing
Start: l0
Program_Vars: X₀, X₁
Temp_Vars: E
Locations: l0, l1, l2
Transitions:
t₂₁: l0(X₀, X₁) → l1(X₀, X₁)
t₂₂: l1(X₀, X₁) → l1(X₁-1, X₁-1) :|: 1 ≤ X₀ ∧ 1 ≤ X₁ ∧ 1 ≤ E ∧ 1 ≤ X₁+X₀
t₂₃: l1(X₀, X₁) → l1(X₁-1, X₁-1) :|: 1 ≤ X₀ ∧ 1 ≤ X₁ ∧ E+1 ≤ 0 ∧ 1 ≤ X₁+X₀
t₂₄: l1(X₀, X₁) → l1(X₀-1, X₀-2) :|: 1 ≤ X₀ ∧ 1 ≤ X₁+X₀ ∧ 1 ≤ X₁
t₂₅: l1(X₀, X₁) → l2(X₀, X₁) :|: 1 ≤ X₁ ∧ X₀ ≤ 0
t₂₆: l1(X₀, X₁) → l2(X₀, X₁) :|: X₁ ≤ 0
Analysing control-flow refined program
Found invariant 1+X₁ ≤ X₀ ∧ 0 ≤ 1+X₁ ∧ 0 ≤ 1+X₀+X₁ ∧ X₀ ≤ 1+X₁ ∧ 0 ≤ X₀ for location n_l1___2
Found invariant X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₀ for location n_l1___3
Found invariant 1+X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 1 ≤ X₀+X₁ ∧ X₀ ≤ 1+X₁ ∧ 1 ≤ X₀ for location n_l1___1
MPRF for transition t₁₂₅: n_l1___1(X₀, X₁) → n_l1___1(X₀-1, X₀-2) :|: 1 ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ 1+X₁ ≤ X₀ ∧ 0 ≤ 1+X₁ ∧ 1 ≤ X₀ ∧ 1 ≤ X₁ ∧ 1+X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 1 ≤ X₀+X₁ ∧ X₀ ≤ 1+X₁ ∧ 1 ≤ X₀ of depth 1:
new bound:
2⋅X₁+X₀ {O(n)}
MPRF:
n_l1___1 [X₀ ]
n_l1___2 [X₀ ]
n_l1___3 [X₀ ]
MPRF for transition t₁₂₆: n_l1___1(X₀, X₁) → n_l1___3(X₁-1, X₁-1) :|: 1 ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ 1+X₁ ≤ X₀ ∧ 0 ≤ 1+X₁ ∧ 1 ≤ X₁ ∧ 1 ≤ X₀ ∧ 1+X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 1 ≤ X₀+X₁ ∧ X₀ ≤ 1+X₁ ∧ 1 ≤ X₀ of depth 1:
new bound:
2⋅X₁+X₀+5 {O(n)}
MPRF:
n_l1___1 [X₀ ]
n_l1___2 [X₀-1 ]
n_l1___3 [X₀-2 ]
MPRF for transition t₁₂₇: n_l1___1(X₀, X₁) → n_l1___3(X₁-1, X₁-1) :|: 1 ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ 1+X₁ ≤ X₀ ∧ 0 ≤ 1+X₁ ∧ 1 ≤ X₁ ∧ 1 ≤ X₀ ∧ 1+X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 1 ≤ X₀+X₁ ∧ X₀ ≤ 1+X₁ ∧ 1 ≤ X₀ of depth 1:
new bound:
2⋅X₁+X₀+5 {O(n)}
MPRF:
n_l1___1 [X₀ ]
n_l1___2 [X₀-1 ]
n_l1___3 [X₀-2 ]
MPRF for transition t₁₂₈: n_l1___2(X₀, X₁) → n_l1___1(X₀-1, X₀-2) :|: X₀ ≤ 1+X₁ ∧ 1+X₁ ≤ X₀ ∧ 0 ≤ 1+X₁ ∧ 1 ≤ X₀ ∧ 1 ≤ X₁ ∧ 1+X₁ ≤ X₀ ∧ 0 ≤ 1+X₁ ∧ 0 ≤ 1+X₀+X₁ ∧ X₀ ≤ 1+X₁ ∧ 0 ≤ X₀ of depth 1:
new bound:
2⋅X₁+X₀+1 {O(n)}
MPRF:
n_l1___1 [X₀-2 ]
n_l1___2 [X₀+1 ]
n_l1___3 [X₀ ]
MPRF for transition t₁₂₉: n_l1___2(X₀, X₁) → n_l1___3(X₁-1, X₁-1) :|: X₀ ≤ 1+X₁ ∧ 1+X₁ ≤ X₀ ∧ 0 ≤ 1+X₁ ∧ 1 ≤ X₁ ∧ 1 ≤ X₀ ∧ 1+X₁ ≤ X₀ ∧ 0 ≤ 1+X₁ ∧ 0 ≤ 1+X₀+X₁ ∧ X₀ ≤ 1+X₁ ∧ 0 ≤ X₀ of depth 1:
new bound:
2⋅X₁+X₀+2 {O(n)}
MPRF:
n_l1___1 [X₀ ]
n_l1___2 [X₁+2 ]
n_l1___3 [X₀ ]
MPRF for transition t₁₃₀: n_l1___2(X₀, X₁) → n_l1___3(X₁-1, X₁-1) :|: X₀ ≤ 1+X₁ ∧ 1+X₁ ≤ X₀ ∧ 0 ≤ 1+X₁ ∧ 1 ≤ X₁ ∧ 1 ≤ X₀ ∧ 1+X₁ ≤ X₀ ∧ 0 ≤ 1+X₁ ∧ 0 ≤ 1+X₀+X₁ ∧ X₀ ≤ 1+X₁ ∧ 0 ≤ X₀ of depth 1:
new bound:
2⋅X₁+X₀+2 {O(n)}
MPRF:
n_l1___1 [X₀ ]
n_l1___2 [X₁+2 ]
n_l1___3 [X₀ ]
MPRF for transition t₁₃₁: n_l1___3(X₀, X₁) → n_l1___2(X₀-1, X₀-2) :|: X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 1 ≤ X₀ ∧ 1 ≤ X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₀ of depth 1:
new bound:
2⋅X₁+X₀+2 {O(n)}
MPRF:
n_l1___1 [X₀-1 ]
n_l1___2 [X₁ ]
n_l1___3 [X₀+1 ]
MPRF for transition t₁₃₂: n_l1___3(X₀, X₁) → n_l1___3(X₁-1, X₁-1) :|: X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 1 ≤ X₁ ∧ 1 ≤ X₀ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₀ of depth 1:
new bound:
2⋅X₁+X₀+2 {O(n)}
MPRF:
n_l1___1 [X₀ ]
n_l1___2 [X₀ ]
n_l1___3 [X₁+1 ]
MPRF for transition t₁₃₃: n_l1___3(X₀, X₁) → n_l1___3(X₁-1, X₁-1) :|: X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 1 ≤ X₁ ∧ 1 ≤ X₀ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₀ of depth 1:
new bound:
2⋅X₁+X₀+2 {O(n)}
MPRF:
n_l1___1 [X₀ ]
n_l1___2 [X₀ ]
n_l1___3 [X₁+1 ]
CFR: Improvement to new bound with the following program:
new bound:
18⋅X₁+9⋅X₀+21 {O(n)}
cfr-program:
Start: l0
Program_Vars: X₀, X₁
Temp_Vars:
Locations: l0, l1, l2, n_l1___1, n_l1___2, n_l1___3
Transitions:
t₂₁: l0(X₀, X₁) → l1(X₀, X₁)
t₂₅: l1(X₀, X₁) → l2(X₀, X₁) :|: 1 ≤ X₁ ∧ X₀ ≤ 0
t₂₆: l1(X₀, X₁) → l2(X₀, X₁) :|: X₁ ≤ 0
t₁₃₄: l1(X₀, X₁) → n_l1___2(X₀-1, X₀-2) :|: 1 ≤ X₀ ∧ 1 ≤ X₁
t₁₃₅: l1(X₀, X₁) → n_l1___3(X₁-1, X₁-1) :|: 1 ≤ X₁ ∧ 1 ≤ X₀
t₁₃₆: l1(X₀, X₁) → n_l1___3(X₁-1, X₁-1) :|: 1 ≤ X₁ ∧ 1 ≤ X₀
t₁₅₂: n_l1___1(X₀, X₁) → l2(X₀, X₁) :|: X₁ ≤ 0 ∧ 1+X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 1 ≤ X₀+X₁ ∧ X₀ ≤ 1+X₁ ∧ 1 ≤ X₀
t₁₂₅: n_l1___1(X₀, X₁) → n_l1___1(X₀-1, X₀-2) :|: 1 ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ 1+X₁ ≤ X₀ ∧ 0 ≤ 1+X₁ ∧ 1 ≤ X₀ ∧ 1 ≤ X₁ ∧ 1+X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 1 ≤ X₀+X₁ ∧ X₀ ≤ 1+X₁ ∧ 1 ≤ X₀
t₁₂₆: n_l1___1(X₀, X₁) → n_l1___3(X₁-1, X₁-1) :|: 1 ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ 1+X₁ ≤ X₀ ∧ 0 ≤ 1+X₁ ∧ 1 ≤ X₁ ∧ 1 ≤ X₀ ∧ 1+X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 1 ≤ X₀+X₁ ∧ X₀ ≤ 1+X₁ ∧ 1 ≤ X₀
t₁₂₇: n_l1___1(X₀, X₁) → n_l1___3(X₁-1, X₁-1) :|: 1 ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ 1+X₁ ≤ X₀ ∧ 0 ≤ 1+X₁ ∧ 1 ≤ X₁ ∧ 1 ≤ X₀ ∧ 1+X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 1 ≤ X₀+X₁ ∧ X₀ ≤ 1+X₁ ∧ 1 ≤ X₀
t₁₅₃: n_l1___2(X₀, X₁) → l2(X₀, X₁) :|: X₁ ≤ 0 ∧ 1+X₁ ≤ X₀ ∧ 0 ≤ 1+X₁ ∧ 0 ≤ 1+X₀+X₁ ∧ X₀ ≤ 1+X₁ ∧ 0 ≤ X₀
t₁₂₈: n_l1___2(X₀, X₁) → n_l1___1(X₀-1, X₀-2) :|: X₀ ≤ 1+X₁ ∧ 1+X₁ ≤ X₀ ∧ 0 ≤ 1+X₁ ∧ 1 ≤ X₀ ∧ 1 ≤ X₁ ∧ 1+X₁ ≤ X₀ ∧ 0 ≤ 1+X₁ ∧ 0 ≤ 1+X₀+X₁ ∧ X₀ ≤ 1+X₁ ∧ 0 ≤ X₀
t₁₂₉: n_l1___2(X₀, X₁) → n_l1___3(X₁-1, X₁-1) :|: X₀ ≤ 1+X₁ ∧ 1+X₁ ≤ X₀ ∧ 0 ≤ 1+X₁ ∧ 1 ≤ X₁ ∧ 1 ≤ X₀ ∧ 1+X₁ ≤ X₀ ∧ 0 ≤ 1+X₁ ∧ 0 ≤ 1+X₀+X₁ ∧ X₀ ≤ 1+X₁ ∧ 0 ≤ X₀
t₁₃₀: n_l1___2(X₀, X₁) → n_l1___3(X₁-1, X₁-1) :|: X₀ ≤ 1+X₁ ∧ 1+X₁ ≤ X₀ ∧ 0 ≤ 1+X₁ ∧ 1 ≤ X₁ ∧ 1 ≤ X₀ ∧ 1+X₁ ≤ X₀ ∧ 0 ≤ 1+X₁ ∧ 0 ≤ 1+X₀+X₁ ∧ X₀ ≤ 1+X₁ ∧ 0 ≤ X₀
t₁₅₄: n_l1___3(X₀, X₁) → l2(X₀, X₁) :|: X₁ ≤ 0 ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₀
t₁₃₁: n_l1___3(X₀, X₁) → n_l1___2(X₀-1, X₀-2) :|: X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 1 ≤ X₀ ∧ 1 ≤ X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₀
t₁₃₂: n_l1___3(X₀, X₁) → n_l1___3(X₁-1, X₁-1) :|: X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 1 ≤ X₁ ∧ 1 ≤ X₀ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₀
t₁₃₃: n_l1___3(X₀, X₁) → n_l1___3(X₁-1, X₁-1) :|: X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 1 ≤ X₁ ∧ 1 ≤ X₀ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₀
All Bounds
Timebounds
Overall timebound:18⋅X₁+9⋅X₀+30 {O(n)}
t₂₁: 1 {O(1)}
t₂₅: 1 {O(1)}
t₂₆: 1 {O(1)}
t₁₃₄: 1 {O(1)}
t₁₃₅: 1 {O(1)}
t₁₃₆: 1 {O(1)}
t₁₂₅: 2⋅X₁+X₀ {O(n)}
t₁₂₆: 2⋅X₁+X₀+5 {O(n)}
t₁₂₇: 2⋅X₁+X₀+5 {O(n)}
t₁₅₂: 1 {O(1)}
t₁₂₈: 2⋅X₁+X₀+1 {O(n)}
t₁₂₉: 2⋅X₁+X₀+2 {O(n)}
t₁₃₀: 2⋅X₁+X₀+2 {O(n)}
t₁₅₃: 1 {O(1)}
t₁₃₁: 2⋅X₁+X₀+2 {O(n)}
t₁₃₂: 2⋅X₁+X₀+2 {O(n)}
t₁₃₃: 2⋅X₁+X₀+2 {O(n)}
t₁₅₄: 1 {O(1)}
Costbounds
Overall costbound: 18⋅X₁+9⋅X₀+30 {O(n)}
t₂₁: 1 {O(1)}
t₂₅: 1 {O(1)}
t₂₆: 1 {O(1)}
t₁₃₄: 1 {O(1)}
t₁₃₅: 1 {O(1)}
t₁₃₆: 1 {O(1)}
t₁₂₅: 2⋅X₁+X₀ {O(n)}
t₁₂₆: 2⋅X₁+X₀+5 {O(n)}
t₁₂₇: 2⋅X₁+X₀+5 {O(n)}
t₁₅₂: 1 {O(1)}
t₁₂₈: 2⋅X₁+X₀+1 {O(n)}
t₁₂₉: 2⋅X₁+X₀+2 {O(n)}
t₁₃₀: 2⋅X₁+X₀+2 {O(n)}
t₁₅₃: 1 {O(1)}
t₁₃₁: 2⋅X₁+X₀+2 {O(n)}
t₁₃₂: 2⋅X₁+X₀+2 {O(n)}
t₁₃₃: 2⋅X₁+X₀+2 {O(n)}
t₁₅₄: 1 {O(1)}
Sizebounds
t₂₁, X₀: X₀ {O(n)}
t₂₁, X₁: X₁ {O(n)}
t₂₅, X₀: X₀ {O(n)}
t₂₅, X₁: X₁ {O(n)}
t₂₆, X₀: X₀ {O(n)}
t₂₆, X₁: X₁ {O(n)}
t₁₃₄, X₀: X₀ {O(n)}
t₁₃₄, X₁: X₀ {O(n)}
t₁₃₅, X₀: X₁ {O(n)}
t₁₃₅, X₁: X₁ {O(n)}
t₁₃₆, X₀: X₁ {O(n)}
t₁₃₆, X₁: X₁ {O(n)}
t₁₂₅, X₀: 3⋅X₀+6⋅X₁ {O(n)}
t₁₂₅, X₁: 12⋅X₁+6⋅X₀ {O(n)}
t₁₂₆, X₀: 3⋅X₀+6⋅X₁ {O(n)}
t₁₂₆, X₁: 10⋅X₀+18⋅X₁ {O(n)}
t₁₂₇, X₀: 3⋅X₀+6⋅X₁ {O(n)}
t₁₂₇, X₁: 10⋅X₀+18⋅X₁ {O(n)}
t₁₅₂, X₀: 1 {O(1)}
t₁₅₂, X₁: 0 {O(1)}
t₁₂₈, X₀: 3⋅X₀+6⋅X₁ {O(n)}
t₁₂₈, X₁: 4⋅X₀+6⋅X₁ {O(n)}
t₁₂₉, X₀: 3⋅X₀+6⋅X₁ {O(n)}
t₁₂₉, X₁: 19⋅X₀+38⋅X₁ {O(n)}
t₁₃₀, X₀: 3⋅X₀+6⋅X₁ {O(n)}
t₁₃₀, X₁: 19⋅X₀+38⋅X₁ {O(n)}
t₁₅₃, X₀: 1 {O(1)}
t₁₅₃, X₁: 1 {O(1)}
t₁₃₁, X₀: 3⋅X₀+6⋅X₁ {O(n)}
t₁₃₁, X₁: 18⋅X₀+38⋅X₁ {O(n)}
t₁₃₂, X₀: 3⋅X₀+6⋅X₁ {O(n)}
t₁₃₂, X₁: 116⋅X₀+228⋅X₁ {O(n)}
t₁₃₃, X₀: 3⋅X₀+6⋅X₁ {O(n)}
t₁₃₃, X₁: 116⋅X₀+228⋅X₁ {O(n)}
t₁₅₄, X₀: 0 {O(1)}
t₁₅₄, X₁: 0 {O(1)}