Initial Problem

Start: l0
Program_Vars: X₀, X₁, X₂
Temp_Vars:
Locations: l0, l1, l2, l3, l4, l5, l6, l7
Transitions:
t₀: l0(X₀, X₁, X₂) → l6(X₀, X₁, X₂)
t₄: l1(X₀, X₁, X₂) → l2(X₀, X₁, X₂) :|: X₀ ≤ X₂
t₅: l1(X₀, X₁, X₂) → l3(X₀, X₁, X₂) :|: X₂+1 ≤ X₀
t₆: l2(X₀, X₁, X₂) → l1(X₀, X₁, X₂-1)
t₇: l3(X₀, X₁, X₂) → l4(X₀, X₁-1, X₂)
t₂: l4(X₀, X₁, X₂) → l1(X₀, X₁, X₀) :|: 1 ≤ X₁
t₃: l4(X₀, X₁, X₂) → l5(X₀, X₁, X₂) :|: X₁ ≤ 0
t₈: l5(X₀, X₁, X₂) → l7(X₀, X₁, X₂)
t₁: l6(X₀, X₁, X₂) → l4(X₁, X₀, X₂)

Preprocessing

Found invariant X₂ ≤ X₀ ∧ X₀ ≤ X₂ ∧ 1 ≤ X₁ for location l2

Found invariant X₁ ≤ 0 for location l7

Found invariant X₁ ≤ 0 for location l5

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

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

Problem after Preprocessing

Start: l0
Program_Vars: X₀, X₁, X₂
Temp_Vars:
Locations: l0, l1, l2, l3, l4, l5, l6, l7
Transitions:
t₀: l0(X₀, X₁, X₂) → l6(X₀, X₁, X₂)
t₄: l1(X₀, X₁, X₂) → l2(X₀, X₁, X₂) :|: X₀ ≤ X₂ ∧ X₂ ≤ X₀ ∧ X₀ ≤ 1+X₂ ∧ 1 ≤ X₁
t₅: l1(X₀, X₁, X₂) → l3(X₀, X₁, X₂) :|: X₂+1 ≤ X₀ ∧ X₂ ≤ X₀ ∧ X₀ ≤ 1+X₂ ∧ 1 ≤ X₁
t₆: l2(X₀, X₁, X₂) → l1(X₀, X₁, X₂-1) :|: X₂ ≤ X₀ ∧ X₀ ≤ X₂ ∧ 1 ≤ X₁
t₇: l3(X₀, X₁, X₂) → l4(X₀, X₁-1, X₂) :|: 1+X₂ ≤ X₀ ∧ X₀ ≤ 1+X₂ ∧ 1 ≤ X₁
t₂: l4(X₀, X₁, X₂) → l1(X₀, X₁, X₀) :|: 1 ≤ X₁
t₃: l4(X₀, X₁, X₂) → l5(X₀, X₁, X₂) :|: X₁ ≤ 0
t₈: l5(X₀, X₁, X₂) → l7(X₀, X₁, X₂) :|: X₁ ≤ 0
t₁: l6(X₀, X₁, X₂) → l4(X₁, X₀, X₂)

Analysing control-flow refined program

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

Found invariant X₁ ≤ 0 for location l7

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

Found invariant X₁ ≤ 0 for location l5

Found invariant X₂ ≤ X₀ ∧ X₀ ≤ X₂ ∧ 1 ≤ X₁ for location n_l1___5

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

Found invariant X₂ ≤ X₀ ∧ X₀ ≤ X₂ ∧ 1 ≤ X₁ for location n_l2___4

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

Found invariant X₁ ≤ 0 for location l7

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

Found invariant X₁ ≤ 0 for location l5

Found invariant X₂ ≤ X₀ ∧ X₀ ≤ X₂ ∧ 1 ≤ X₁ for location n_l1___5

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

Found invariant X₂ ≤ X₀ ∧ X₀ ≤ X₂ ∧ 1 ≤ X₁ for location n_l2___4

Time-Bound by TWN-Loops:

TWN-Loops: t₁₉₇ 4⋅X₀+12 {O(n)}

TWN-Loops:

entry: t₂₀₂: l4(X₀, X₁, X₂) → n_l1___5(X₀, X₁, X₀) :|: 1 ≤ X₁
results in twn-loop: twn:Inv: [X₂ ≤ X₀ ∧ X₀ ≤ X₂ ∧ 1 ≤ X₁ ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 1 ≤ X₁ ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 1 ≤ X₁ ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 1 ≤ X₁ ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 1 ≤ X₁] , (X₀,X₁,X₂) -> (X₀,X₁-1,X₀) :|: 1 ≤ X₁ ∧ X₀ ≤ X₂ ∧ X₂ ≤ X₀ ∧ X₀ ≤ X₂ ∧ X₂ ≤ X₀ ∧ 1 ≤ X₁ ∧ X₀ ≤ X₂ ∧ X₂ ≤ X₀ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁ ∧ X₀ ≤ X₂ ∧ X₂ ≤ X₀ ∧ 1 ≤ X₁ ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 1 ≤ X₁ ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 1 ≤ X₁ ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 1 ≤ X₁ ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 1 ≤ X₁ ∧ 1 ≤ X₁ ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 1 ≤ X₁ ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 1 ≤ X₁ ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 1 ≤ X₁ ∧ 2 ≤ X₁
order: [X₀; X₁; X₂]
closed-form:
X₀: X₀
X₁: X₁ + [[n != 0]] * -1 * n^1
X₂: [[n == 0]] * X₂ + [[n != 0]] * X₀

Termination: true
Formula:

1 < 0
∨ 1 < 0 ∧ 1 < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1
∨ 1 < 0 ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1 ≤ X₁ ∧ X₁ ≤ 1
∨ 2 < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1 < 0
∨ 2 < X₁ ∧ 1 < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1
∨ 2 < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1 ≤ X₁ ∧ X₁ ≤ 1
∨ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 2 ≤ X₁ ∧ X₁ ≤ 2 ∧ 1 < 0
∨ 2 ≤ X₁ ∧ X₁ ≤ 2 ∧ 1 < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1
∨ 2 ≤ X₁ ∧ X₁ ≤ 2 ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1 ≤ X₁ ∧ X₁ ≤ 1

Stabilization-Threshold for: 2 ≤ X₁
alphas_abs: 2+X₁
M: 0
N: 1
Bound: 2⋅X₁+6 {O(n)}
Stabilization-Threshold for: 1 ≤ X₁
alphas_abs: 1+X₁
M: 0
N: 1
Bound: 2⋅X₁+4 {O(n)}

relevant size-bounds w.r.t. t₂₀₂:
X₁: X₀ {O(n)}
Runtime-bound of t₂₀₂: 1 {O(1)}
Results in: 4⋅X₀+12 {O(n)}

4⋅X₀+12 {O(n)}

Time-Bound by TWN-Loops:

TWN-Loops: t₁₉₈ 4⋅X₀+12 {O(n)}

relevant size-bounds w.r.t. t₂₀₂:
X₁: X₀ {O(n)}
Runtime-bound of t₂₀₂: 1 {O(1)}
Results in: 4⋅X₀+12 {O(n)}

4⋅X₀+12 {O(n)}

Time-Bound by TWN-Loops:

TWN-Loops: t₁₉₉ 4⋅X₀+12 {O(n)}

relevant size-bounds w.r.t. t₂₀₂:
X₁: X₀ {O(n)}
Runtime-bound of t₂₀₂: 1 {O(1)}
Results in: 4⋅X₀+12 {O(n)}

4⋅X₀+12 {O(n)}

Time-Bound by TWN-Loops:

TWN-Loops: t₂₀₀ 4⋅X₀+12 {O(n)}

relevant size-bounds w.r.t. t₂₀₂:
X₁: X₀ {O(n)}
Runtime-bound of t₂₀₂: 1 {O(1)}
Results in: 4⋅X₀+12 {O(n)}

4⋅X₀+12 {O(n)}

Time-Bound by TWN-Loops:

TWN-Loops: t₂₀₁ 4⋅X₀+12 {O(n)}

relevant size-bounds w.r.t. t₂₀₂:
X₁: X₀ {O(n)}
Runtime-bound of t₂₀₂: 1 {O(1)}
Results in: 4⋅X₀+12 {O(n)}

4⋅X₀+12 {O(n)}

CFR: Improvement to new bound with the following program:

new bound:

20⋅X₀+60 {O(n)}

cfr-program:

Start: l0
Program_Vars: X₀, X₁, X₂
Temp_Vars:
Locations: l0, l4, l5, l6, l7, n_l1___3, n_l1___5, n_l2___4, n_l3___2, n_l4___1
Transitions:
t₀: l0(X₀, X₁, X₂) → l6(X₀, X₁, X₂)
t₃: l4(X₀, X₁, X₂) → l5(X₀, X₁, X₂) :|: X₁ ≤ 0
t₂₀₂: l4(X₀, X₁, X₂) → n_l1___5(X₀, X₁, X₀) :|: 1 ≤ X₁
t₈: l5(X₀, X₁, X₂) → l7(X₀, X₁, X₂) :|: X₁ ≤ 0 ∧ X₁ ≤ 0
t₁: l6(X₀, X₁, X₂) → l4(X₁, X₀, X₂)
t₁₉₇: n_l1___3(X₀, X₁, X₂) → n_l3___2(X₀, X₁, X₀-1) :|: 1 ≤ X₁ ∧ X₀ ≤ X₂+1 ∧ 1+X₂ ≤ X₀ ∧ X₀ ≤ 1+X₂ ∧ 1+X₂ ≤ X₀ ∧ 1 ≤ X₁ ∧ X₀ ≤ 1+X₂ ∧ 1+X₂ ≤ X₀ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁ ∧ X₀ ≤ X₂+1 ∧ 1+X₂ ≤ X₀ ∧ 1+X₂ ≤ X₀ ∧ X₀ ≤ 1+X₂ ∧ 1 ≤ X₁
t₁₉₈: n_l1___5(X₀, X₁, X₂) → n_l2___4(X₀, X₁, X₀) :|: 1 ≤ X₁ ∧ X₀ ≤ X₂ ∧ X₂ ≤ X₀ ∧ X₀ ≤ X₂ ∧ X₂ ≤ X₀ ∧ 1 ≤ X₁ ∧ X₀ ≤ X₂ ∧ X₂ ≤ X₀ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁ ∧ X₀ ≤ X₂ ∧ X₂ ≤ X₀ ∧ X₂ ≤ X₀ ∧ X₀ ≤ X₂ ∧ 1 ≤ X₁
t₁₉₉: n_l2___4(X₀, X₁, X₂) → n_l1___3(X₀, X₁, X₀-1) :|: 1 ≤ X₁ ∧ X₀ ≤ X₂ ∧ X₂ ≤ X₀ ∧ 1 ≤ X₁ ∧ X₀ ≤ X₂ ∧ X₂ ≤ X₀ ∧ X₂ ≤ X₀ ∧ X₀ ≤ X₂ ∧ 1 ≤ X₁
t₂₀₀: n_l3___2(X₀, X₁, X₂) → n_l4___1(X₀, X₁-1, X₀-1) :|: 1 ≤ X₁ ∧ X₀ ≤ X₂+1 ∧ 1+X₂ ≤ X₀ ∧ 1 ≤ X₁ ∧ X₀ ≤ X₂+1 ∧ 1+X₂ ≤ X₀ ∧ 1+X₂ ≤ X₀ ∧ X₀ ≤ 1+X₂ ∧ 1 ≤ X₁
t₂₁₁: n_l4___1(X₀, X₁, X₂) → l5(X₀, X₁, X₂) :|: X₁ ≤ 0 ∧ 1+X₂ ≤ X₀ ∧ X₀ ≤ 1+X₂ ∧ 0 ≤ X₁
t₂₀₁: n_l4___1(X₀, X₁, X₂) → n_l1___5(X₀, X₁, X₀) :|: X₀ ≤ 1+X₂ ∧ 1+X₂ ≤ X₀ ∧ 0 ≤ X₁ ∧ 1 ≤ X₁ ∧ 1+X₂ ≤ X₀ ∧ X₀ ≤ 1+X₂ ∧ 0 ≤ X₁

All Bounds

Timebounds

Overall timebound:20⋅X₀+66 {O(n)}
t₀: 1 {O(1)}
t₃: 1 {O(1)}
t₂₀₂: 1 {O(1)}
t₈: 1 {O(1)}
t₁: 1 {O(1)}
t₁₉₇: 4⋅X₀+12 {O(n)}
t₁₉₈: 4⋅X₀+12 {O(n)}
t₁₉₉: 4⋅X₀+12 {O(n)}
t₂₀₀: 4⋅X₀+12 {O(n)}
t₂₀₁: 4⋅X₀+12 {O(n)}
t₂₁₁: 1 {O(1)}

Costbounds

Overall costbound: 20⋅X₀+66 {O(n)}
t₀: 1 {O(1)}
t₃: 1 {O(1)}
t₂₀₂: 1 {O(1)}
t₈: 1 {O(1)}
t₁: 1 {O(1)}
t₁₉₇: 4⋅X₀+12 {O(n)}
t₁₉₈: 4⋅X₀+12 {O(n)}
t₁₉₉: 4⋅X₀+12 {O(n)}
t₂₀₀: 4⋅X₀+12 {O(n)}
t₂₀₁: 4⋅X₀+12 {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₀: 2⋅X₁ {O(n)}
t₈, X₁: X₀ {O(n)}
t₈, X₂: X₁+X₂+1 {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₁+1 {O(n)}
t₁₉₈, X₀: X₁ {O(n)}
t₁₉₈, X₁: X₀ {O(n)}
t₁₉₈, X₂: 2⋅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₀ {O(n)}
t₂₀₀, X₂: X₁+1 {O(n)}
t₂₀₁, X₀: X₁ {O(n)}
t₂₀₁, X₁: X₀ {O(n)}
t₂₀₁, X₂: X₁ {O(n)}
t₂₁₁, X₀: X₁ {O(n)}
t₂₁₁, X₁: 0 {O(1)}
t₂₁₁, X₂: X₁+1 {O(n)}