Initial Problem

Start: l0
Program_Vars: X₀, X₁, X₂
Temp_Vars:
Locations: l0, l1
Transitions:
t₁: l0(X₀, X₁, X₂) → l1(X₀, X₁, X₂) :|: X₂+1 ≤ X₁
t₀: l1(X₀, X₁, X₂) → l1(X₀, X₁+1, X₂) :|: X₁+1 ≤ X₀
t₂: l1(X₀, X₁, X₂) → l1(X₀, X₁, X₂+1) :|: X₂+2 ≤ X₁ ∧ X₀ ≤ X₁

Preprocessing

Found invariant 1+X₂ ≤ X₁ for location l1

Problem after Preprocessing

Start: l0
Program_Vars: X₀, X₁, X₂
Temp_Vars:
Locations: l0, l1
Transitions:
t₁: l0(X₀, X₁, X₂) → l1(X₀, X₁, X₂) :|: X₂+1 ≤ X₁
t₀: l1(X₀, X₁, X₂) → l1(X₀, X₁+1, X₂) :|: X₁+1 ≤ X₀ ∧ 1+X₂ ≤ X₁
t₂: l1(X₀, X₁, X₂) → l1(X₀, X₁, X₂+1) :|: X₂+2 ≤ X₁ ∧ X₀ ≤ X₁ ∧ 1+X₂ ≤ X₁

MPRF for transition t₀: l1(X₀, X₁, X₂) → l1(X₀, X₁+1, X₂) :|: X₁+1 ≤ X₀ ∧ 1+X₂ ≤ X₁ of depth 1:

new bound:

X₀+X₁ {O(n)}

MPRF:

l1 [X₀-X₁ ]

MPRF for transition t₂: l1(X₀, X₁, X₂) → l1(X₀, X₁, X₂+1) :|: X₂+2 ≤ X₁ ∧ X₀ ≤ X₁ ∧ 1+X₂ ≤ X₁ of depth 1:

new bound:

2⋅X₁⋅X₁+3⋅X₀⋅X₁+X₀⋅X₀+X₀⋅X₂+X₁⋅X₂+X₁+X₂ {O(n^2)}

MPRF:

l1 [X₁-X₂ ]

Analysing control-flow refined program

Found invariant 2+X₂ ≤ X₁ ∧ 2+X₂ ≤ X₀ ∧ X₁ ≤ X₀ for location n_l1___2

Found invariant 1+X₂ ≤ X₁ for location l1

Found invariant 1+X₂ ≤ X₁ ∧ X₀ ≤ X₁ for location n_l1___1

MPRF for transition t₄₁: n_l1___2(X₀, X₁, X₂) → n_l1___2(X₀, X₁+1, X₂) :|: 1+X₂ ≤ X₁ ∧ 2+X₂ ≤ X₁ ∧ 1+X₂ ≤ X₁ ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 1+X₁ ≤ X₀ ∧ 1+X₂ ≤ X₁ ∧ 2+X₂ ≤ X₁ ∧ 2+X₂ ≤ X₀ ∧ X₁ ≤ X₀ of depth 1:

new bound:

X₀+X₁+2 {O(n)}

MPRF:

n_l1___2 [X₀+1-X₁ ]

MPRF for transition t₃₉: n_l1___1(X₀, X₁, X₂) → n_l1___1(X₀, X₁, X₂+1) :|: 1+X₂ ≤ X₁ ∧ X₀ ≤ X₁ ∧ 1+X₂ ≤ X₁ ∧ 1+X₂ ≤ X₁ ∧ X₀ ≤ X₁ ∧ 2+X₂ ≤ X₁ ∧ X₀ ≤ X₁ ∧ 1+X₂ ≤ X₁ ∧ X₀ ≤ X₁ of depth 1:

new bound:

3⋅X₂+4⋅X₁+X₀+7 {O(n)}

MPRF:

n_l1___1 [X₁-X₂ ]

CFR: Improvement to new bound with the following program:

new bound:

2⋅X₀+3⋅X₂+5⋅X₁+9 {O(n)}

cfr-program:

Start: l0
Program_Vars: X₀, X₁, X₂
Temp_Vars:
Locations: l0, l1, n_l1___1, n_l1___2
Transitions:
t₁: l0(X₀, X₁, X₂) → l1(X₀, X₁, X₂) :|: X₂+1 ≤ X₁
t₄₂: l1(X₀, X₁, X₂) → n_l1___1(X₀, X₁, X₂+1) :|: 1+X₂ ≤ X₁ ∧ 1+X₂ ≤ X₁ ∧ 2+X₂ ≤ X₁ ∧ X₀ ≤ X₁ ∧ 1+X₂ ≤ X₁
t₄₃: l1(X₀, X₁, X₂) → n_l1___2(X₀, X₁+1, X₂) :|: 1+X₂ ≤ X₁ ∧ 1+X₂ ≤ X₁ ∧ 1+X₁ ≤ X₀ ∧ 1+X₂ ≤ X₁ ∧ 1+X₂ ≤ X₁
t₃₉: n_l1___1(X₀, X₁, X₂) → n_l1___1(X₀, X₁, X₂+1) :|: 1+X₂ ≤ X₁ ∧ X₀ ≤ X₁ ∧ 1+X₂ ≤ X₁ ∧ 1+X₂ ≤ X₁ ∧ X₀ ≤ X₁ ∧ 2+X₂ ≤ X₁ ∧ X₀ ≤ X₁ ∧ 1+X₂ ≤ X₁ ∧ X₀ ≤ X₁
t₄₀: n_l1___2(X₀, X₁, X₂) → n_l1___1(X₀, X₁, X₂+1) :|: 1+X₂ ≤ X₁ ∧ 2+X₂ ≤ X₁ ∧ 1+X₂ ≤ X₁ ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 2+X₂ ≤ X₁ ∧ X₀ ≤ X₁ ∧ 2+X₂ ≤ X₁ ∧ 2+X₂ ≤ X₀ ∧ X₁ ≤ X₀
t₄₁: n_l1___2(X₀, X₁, X₂) → n_l1___2(X₀, X₁+1, X₂) :|: 1+X₂ ≤ X₁ ∧ 2+X₂ ≤ X₁ ∧ 1+X₂ ≤ X₁ ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 1+X₁ ≤ X₀ ∧ 1+X₂ ≤ X₁ ∧ 2+X₂ ≤ X₁ ∧ 2+X₂ ≤ X₀ ∧ X₁ ≤ X₀

All Bounds

Timebounds

Overall timebound:2⋅X₀+3⋅X₂+5⋅X₁+13 {O(n)}
t₁: 1 {O(1)}
t₄₂: 1 {O(1)}
t₄₃: 1 {O(1)}
t₃₉: 3⋅X₂+4⋅X₁+X₀+7 {O(n)}
t₄₀: 1 {O(1)}
t₄₁: X₀+X₁+2 {O(n)}

Costbounds

Overall costbound: 2⋅X₀+3⋅X₂+5⋅X₁+13 {O(n)}
t₁: 1 {O(1)}
t₄₂: 1 {O(1)}
t₄₃: 1 {O(1)}
t₃₉: 3⋅X₂+4⋅X₁+X₀+7 {O(n)}
t₄₀: 1 {O(1)}
t₄₁: X₀+X₁+2 {O(n)}

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₂+1 {O(n)}
t₄₃, X₀: X₀ {O(n)}
t₄₃, X₁: X₁+1 {O(n)}
t₄₃, X₂: X₂ {O(n)}
t₃₉, X₀: 3⋅X₀ {O(n)}
t₃₉, X₁: 4⋅X₁+X₀+4 {O(n)}
t₃₉, X₂: 4⋅X₁+6⋅X₂+X₀+10 {O(n)}
t₄₀, X₀: 2⋅X₀ {O(n)}
t₄₀, X₁: 3⋅X₁+X₀+4 {O(n)}
t₄₀, X₂: 2⋅X₂+2 {O(n)}
t₄₁, X₀: X₀ {O(n)}
t₄₁, X₁: 2⋅X₁+X₀+3 {O(n)}
t₄₁, X₂: X₂ {O(n)}