Initial Problem

Start: l0
Program_Vars: X₀, X₁, X₂
Temp_Vars: D
Locations: l0, l1, l2
Transitions:
t₄: l0(X₀, X₁, X₂) → l1(X₀, X₁, X₂)
t₀: l1(X₀, X₁, X₂) → l1(X₀-99, 0, X₂) :|: X₀+1 ≤ 0 ∧ X₁+1 ≤ 0 ∧ 0 ≤ 1+X₁
t₁: l1(X₀, X₁, X₂) → l1(1+X₀, 1+X₁, X₂) :|: X₀+1 ≤ 0 ∧ 0 ≤ X₁
t₂: l1(X₀, X₁, X₂) → l1(1+X₀, 1+X₁, X₂) :|: X₀+1 ≤ 0 ∧ 2+X₁ ≤ 0
t₃: l1(X₀, X₁, X₂) → l2(X₀, X₁, D) :|: 0 ≤ X₀

Preprocessing

Eliminate variables {D,X₂} that do not contribute to the problem

Found invariant 0 ≤ X₀ for location l2

Problem after Preprocessing

Start: l0
Program_Vars: X₀, X₁
Temp_Vars:
Locations: l0, l1, l2
Transitions:
t₁₄: l0(X₀, X₁) → l1(X₀, X₁)
t₁₅: l1(X₀, X₁) → l1(X₀-99, 0) :|: X₀+1 ≤ 0 ∧ X₁+1 ≤ 0 ∧ 0 ≤ 1+X₁
t₁₆: l1(X₀, X₁) → l1(1+X₀, 1+X₁) :|: X₀+1 ≤ 0 ∧ 0 ≤ X₁
t₁₇: l1(X₀, X₁) → l1(1+X₀, 1+X₁) :|: X₀+1 ≤ 0 ∧ 2+X₁ ≤ 0
t₁₈: l1(X₀, X₁) → l2(X₀, X₁) :|: 0 ≤ X₀

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

new bound:

X₁ {O(n)}

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

new bound:

X₁ {O(n)}

TWN: t₁₆: l1→l1

cycle: [t₁₆: l1→l1; t₁₇: l1→l1]
loop: (X₀+1 ≤ 0 ∧ 0 ≤ X₁ ∨ X₀+1 ≤ 0 ∧ 2+X₁ ≤ 0,(X₀,X₁) -> (1+X₀,1+X₁)
order: [X₀; X₁]
closed-form:
X₀: X₀ + [[n != 0]] * n^1
X₁: X₁ + [[n != 0]] * n^1

Termination: true
Formula:

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

Stabilization-Threshold for: 2+X₁ ≤ 0
alphas_abs: 2+X₁
M: 0
N: 1
Bound: 2⋅X₁+6 {O(n)}
Stabilization-Threshold for: X₀+1 ≤ 0
alphas_abs: X₀+1
M: 0
N: 1
Bound: 2⋅X₀+4 {O(n)}
Stabilization-Threshold for: 0 ≤ X₁
alphas_abs: X₁
M: 0
N: 1
Bound: 2⋅X₁+2 {O(n)}
loop: (X₀+1 ≤ 0 ∧ 0 ≤ X₁ ∨ X₀+1 ≤ 0 ∧ 2+X₁ ≤ 0,(X₀,X₁) -> (1+X₀,1+X₁)
order: [X₀; X₁]
closed-form:
X₀: X₀ + [[n != 0]] * n^1
X₁: X₁ + [[n != 0]] * n^1

Termination: true
Formula:

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

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

TWN - Lifting for t₁₆: l1→l1 of 2⋅X₀+4⋅X₁+14 {O(n)}

relevant size-bounds w.r.t. t₁₅:
X₀: 2⋅X₀+198 {O(n)}
X₁: 0 {O(1)}
Runtime-bound of t₁₅: X₁ {O(n)}
Results in: 4⋅X₀⋅X₁+410⋅X₁ {O(n^2)}

TWN - Lifting for t₁₆: l1→l1 of 2⋅X₀+4⋅X₁+14 {O(n)}

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

Analysing control-flow refined program

Cut unsatisfiable transition t₁₀₆: n_l1___1→l2

Cut unsatisfiable transition t₁₀₉: n_l1___4→l2

Found invariant 0 ≤ X₀ for location l2

Found invariant X₁ ≤ 0 ∧ 100+X₀+X₁ ≤ 0 ∧ 0 ≤ X₁ ∧ 100+X₀ ≤ X₁ ∧ 100+X₀ ≤ 0 for location n_l1___4

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

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

Found invariant X₁ ≤ 1 ∧ 98+X₀+X₁ ≤ 0 ∧ 1 ≤ X₁ ∧ 100+X₀ ≤ X₁ ∧ 99+X₀ ≤ 0 for location n_l1___1

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

new bound:

X₀+1 {O(n)}

MPRF for transition t₈₉: n_l1___3(X₀, X₁) → n_l1___3(X₀+1, X₁+1) :|: 0 ≤ X₁ ∧ 1 ≤ X₁ ∧ X₀ ≤ 0 ∧ 0 ≤ X₁ ∧ 1+X₀ ≤ 0 ∧ 1 ≤ X₁ ∧ 1+X₀ ≤ X₁ ∧ X₀ ≤ 0 of depth 1:

new bound:

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

CFR did not improve the program. Rolling back

CFR: Improvement to new bound with the following program:

new bound:

5⋅X₀+300 {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, n_l1___4
Transitions:
t₁₄: l0(X₀, X₁) → l1(X₀, X₁)
t₁₈: l1(X₀, X₁) → l2(X₀, X₁) :|: 0 ≤ X₀
t₉₁: l1(X₀, X₁) → n_l1___2(X₀+1, X₁+1) :|: 2+X₁ ≤ 0 ∧ 1+X₀ ≤ 0
t₉₂: l1(X₀, X₁) → n_l1___3(X₀+1, X₁+1) :|: 0 ≤ X₁ ∧ 1+X₀ ≤ 0
t₉₃: l1(X₀, X₁) → n_l1___4(X₀-99, 0) :|: 1+X₀ ≤ 0 ∧ X₁+1 ≤ 0 ∧ 0 ≤ 1+X₁
t₈₆: n_l1___1(X₀, X₁) → n_l1___3(X₀+1, X₁+1) :|: 1+X₀ ≤ 0 ∧ 0 ≤ X₁ ∧ 0 ≤ X₁ ∧ 1+X₀ ≤ 0 ∧ 1 ≤ X₁ ∧ X₀ ≤ 0 ∧ 0 ≤ X₁ ∧ 1+X₀ ≤ 0 ∧ X₁ ≤ 1 ∧ 98+X₀+X₁ ≤ 0 ∧ 1 ≤ X₁ ∧ 100+X₀ ≤ X₁ ∧ 99+X₀ ≤ 0
t₁₀₇: n_l1___2(X₀, X₁) → l2(X₀, X₁) :|: 0 ≤ X₀ ∧ 1+X₁ ≤ 0 ∧ 1+X₀+X₁ ≤ 0 ∧ X₀ ≤ 0
t₈₇: n_l1___2(X₀, X₁) → n_l1___2(X₀+1, X₁+1) :|: 1+X₁ ≤ 0 ∧ X₀ ≤ 0 ∧ 2+X₁ ≤ 0 ∧ 1+X₀ ≤ 0 ∧ 1+X₁ ≤ 0 ∧ 1+X₀+X₁ ≤ 0 ∧ X₀ ≤ 0
t₈₈: n_l1___2(X₀, X₁) → n_l1___4(X₀-99, 0) :|: 1+X₁ ≤ 0 ∧ X₀ ≤ 0 ∧ 1+X₀ ≤ 0 ∧ X₁+1 ≤ 0 ∧ 0 ≤ 1+X₁ ∧ 1+X₁ ≤ 0 ∧ 1+X₀+X₁ ≤ 0 ∧ X₀ ≤ 0
t₁₀₈: n_l1___3(X₀, X₁) → l2(X₀, X₁) :|: 0 ≤ X₀ ∧ 1 ≤ X₁ ∧ 1+X₀ ≤ X₁ ∧ X₀ ≤ 0
t₈₉: n_l1___3(X₀, X₁) → n_l1___3(X₀+1, X₁+1) :|: 0 ≤ X₁ ∧ 1 ≤ X₁ ∧ X₀ ≤ 0 ∧ 0 ≤ X₁ ∧ 1+X₀ ≤ 0 ∧ 1 ≤ X₁ ∧ 1+X₀ ≤ X₁ ∧ X₀ ≤ 0
t₉₀: n_l1___4(X₀, X₁) → n_l1___1(X₀+1, X₁+1) :|: 1+X₀ ≤ 0 ∧ 0 ≤ X₁ ∧ X₁ ≤ 0 ∧ 0 ≤ X₁ ∧ 100+X₀ ≤ 0 ∧ 0 ≤ X₁ ∧ 1+X₀ ≤ 0 ∧ 0 ≤ X₁ ∧ 1+X₀ ≤ 0 ∧ X₁ ≤ 0 ∧ 100+X₀+X₁ ≤ 0 ∧ 0 ≤ X₁ ∧ 100+X₀ ≤ X₁ ∧ 100+X₀ ≤ 0

All Bounds

Timebounds

Overall timebound:5⋅X₀+310 {O(n)}
t₁₄: 1 {O(1)}
t₁₈: 1 {O(1)}
t₈₆: 1 {O(1)}
t₈₇: X₀+1 {O(n)}
t₈₈: 1 {O(1)}
t₈₉: 4⋅X₀+299 {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)}

Costbounds

Overall costbound: 5⋅X₀+310 {O(n)}
t₁₄: 1 {O(1)}
t₁₈: 1 {O(1)}
t₈₆: 1 {O(1)}
t₈₇: X₀+1 {O(n)}
t₈₈: 1 {O(1)}
t₈₉: 4⋅X₀+299 {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)}

Sizebounds

t₁₄, X₀: X₀ {O(n)}
t₁₄, X₁: X₁ {O(n)}
t₁₈, X₀: X₀ {O(n)}
t₁₈, X₁: X₁ {O(n)}
t₈₆, X₀: 3⋅X₀+297 {O(n)}
t₈₆, X₁: 2 {O(1)}
t₈₇, X₀: X₀ {O(n)}
t₈₇, X₁: X₁ {O(n)}
t₈₈, X₀: 2⋅X₀+198 {O(n)}
t₈₈, X₁: 0 {O(1)}
t₈₉, X₀: 4⋅X₀+297 {O(n)}
t₈₉, X₁: 4⋅X₀+X₁+302 {O(n)}
t₉₀, X₀: 3⋅X₀+297 {O(n)}
t₉₀, X₁: 1 {O(1)}
t₉₁, X₀: X₀ {O(n)}
t₉₁, X₁: X₁ {O(n)}
t₉₂, X₀: X₀ {O(n)}
t₉₂, X₁: X₁+1 {O(n)}
t₉₃, X₀: X₀+99 {O(n)}
t₉₃, X₁: 0 {O(1)}
t₁₀₇, X₀: 0 {O(1)}
t₁₀₇, X₁: 2⋅X₁ {O(n)}
t₁₀₈, X₀: 0 {O(1)}
t₁₀₈, X₁: 2⋅X₁+4⋅X₀+303 {O(n)}