Initial Problem

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

Preprocessing

Cut unsatisfiable transition t₆: l1→l2

Cut unsatisfiable transition t₇: l1→l2

Cut unsatisfiable transition t₁₀: l1→l4

Cut unsatisfiable transition t₁₁: l1→l4

Cut unsatisfiable transition t₁₃: l1→l2

Cut unsatisfiable transition t₁₄: l1→l2

Cut unsatisfiable transition t₁₅: l1→l4

Cut unsatisfiable transition t₁₆: l1→l4

Cut unsatisfiable transition t₁₇: l1→l2

Cut unsatisfiable transition t₁₈: l1→l2

Cut unsatisfiable transition t₁₉: l1→l4

Cut unsatisfiable transition t₂₀: l1→l4

Cut unsatisfiable transition t₂₁: l1→l4

Cut unsatisfiable transition t₂₂: l1→l4

Found invariant X₃ ≤ 10001 ∧ X₃ ≤ 10001+X₂ ∧ 0 ≤ X₃ ∧ 0 ≤ X₂+X₃ ∧ 0 ≤ X₂ for location l2

Found invariant 0 ≤ X₃ ∧ 0 ≤ X₂+X₃ ∧ 0 ≤ X₂ for location l6

Found invariant 0 ≤ X₃ ∧ 0 ≤ X₂+X₃ ∧ 0 ≤ X₂ for location l1

Found invariant 0 ≤ X₃ ∧ 0 ≤ X₂+X₃ ∧ 0 ≤ X₂ for location l4

Found invariant 0 ≤ X₃ ∧ 0 ≤ X₂+X₃ ∧ 0 ≤ X₂ for location l3

Problem after Preprocessing

Start: l0
Program_Vars: X₀, X₁, X₂, X₃
Temp_Vars: nondef.0
Locations: l0, l1, l2, l3, l4, l5, l6
Transitions:
t₀: l0(X₀, X₁, X₂, X₃) → l5(X₀, X₁, X₂, X₃)
t₅: l1(X₀, X₁, X₂, X₃) → l2(X₀, X₁, X₂+1, 1) :|: X₀ < 0 ∧ X₀ < 0 ∧ X₂+1 < X₁ ∧ 0 ≤ X₃ ∧ 0 ≤ X₂+X₃ ∧ 0 ≤ X₂
t₈: l1(X₀, X₁, X₂, X₃) → l2(X₀, X₁, X₂+1, 1) :|: 0 < X₀ ∧ 0 < X₀ ∧ X₂+1 < X₁ ∧ 0 ≤ X₃ ∧ 0 ≤ X₂+X₃ ∧ 0 ≤ X₂
t₂₃: l1(X₀, X₁, X₂, X₃) → l2(X₀, X₁, X₂, X₃+1) :|: X₀ ≤ 0 ∧ 0 ≤ X₀ ∧ X₀ ≤ 0 ∧ 0 ≤ X₀ ∧ X₃ ≤ 10000 ∧ X₂ < X₁ ∧ 0 ≤ X₃ ∧ 0 ≤ X₂+X₃ ∧ 0 ≤ X₂
t₉: l1(X₀, X₁, X₂, X₃) → l4(X₀, X₁, X₂, X₃) :|: X₀ < 0 ∧ X₀ < 0 ∧ X₁ ≤ X₂+1 ∧ 0 ≤ X₃ ∧ 0 ≤ X₂+X₃ ∧ 0 ≤ X₂
t₁₂: l1(X₀, X₁, X₂, X₃) → l4(X₀, X₁, X₂, X₃) :|: 0 < X₀ ∧ 0 < X₀ ∧ X₁ ≤ X₂+1 ∧ 0 ≤ X₃ ∧ 0 ≤ X₂+X₃ ∧ 0 ≤ X₂
t₂₄: l1(X₀, X₁, X₂, X₃) → l4(X₀, X₁, X₂, X₃) :|: X₀ ≤ 0 ∧ 0 ≤ X₀ ∧ X₀ ≤ 0 ∧ 0 ≤ X₀ ∧ 10000 < X₃ ∧ 0 ≤ X₃ ∧ 0 ≤ X₂+X₃ ∧ 0 ≤ X₂
t₂₅: l1(X₀, X₁, X₂, X₃) → l4(X₀, X₁, X₂, X₃) :|: X₀ ≤ 0 ∧ 0 ≤ X₀ ∧ X₀ ≤ 0 ∧ 0 ≤ X₀ ∧ X₁ ≤ X₂ ∧ 0 ≤ X₃ ∧ 0 ≤ X₂+X₃ ∧ 0 ≤ X₂
t₂: l2(X₀, X₁, X₂, X₃) → l3(X₀, X₁, X₂, X₃) :|: X₃ ≤ 10001 ∧ X₃ ≤ 10001+X₂ ∧ 0 ≤ X₃ ∧ 0 ≤ X₂+X₃ ∧ 0 ≤ X₂
t₄: l3(X₀, X₁, X₂, X₃) → l1(nondef.0, X₁, X₂, X₃) :|: 0 ≤ X₃ ∧ 0 ≤ X₂+X₃ ∧ 0 ≤ X₂
t₂₆: l4(X₀, X₁, X₂, X₃) → l6(X₀, X₁, X₂, X₃) :|: 0 ≤ X₃ ∧ 0 ≤ X₂+X₃ ∧ 0 ≤ X₂
t₁: l5(X₀, X₁, X₂, X₃) → l2(X₀, X₁, 0, 0)

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

new bound:

X₁+1 {O(n)}

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

new bound:

X₁+1 {O(n)}

TWN: t₂: l2→l3

cycle: [t₂: l2→l3; t₄: l3→l1; t₂₃: l1→l2]
loop: (X₃ ≤ 10000 ∧ X₂ < X₁,(X₁,X₂,X₃) -> (X₁,X₂,X₃+1)
order: [X₁; X₂; X₃]
closed-form:
X₁: X₁
X₂: X₂
X₃: X₃ + [[n != 0]] * n^1

Termination: true
Formula:

X₂ < X₁ ∧ 1 < 0
∨ X₂ < X₁ ∧ X₃ < 10000 ∧ 1 ≤ 0 ∧ 0 ≤ 1
∨ X₂ < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ X₃ ≤ 10000 ∧ 10000 ≤ X₃

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

Termination: true
Formula:

X₂ < X₁ ∧ 1 < 0
∨ X₂ < X₁ ∧ X₃ < 10000 ∧ 1 ≤ 0 ∧ 0 ≤ 1
∨ X₂ < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ X₃ ≤ 10000 ∧ 10000 ≤ X₃

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

Termination: true
Formula:

X₂ < X₁ ∧ 1 < 0
∨ X₂ < X₁ ∧ X₃ < 10000 ∧ 1 ≤ 0 ∧ 0 ≤ 1
∨ X₂ < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ X₃ ≤ 10000 ∧ 10000 ≤ X₃

Stabilization-Threshold for: X₃ ≤ 10000
alphas_abs: X₃+10000
M: 0
N: 1
Bound: 2⋅X₃+20002 {O(n)}

TWN - Lifting for t₂: l2→l3 of 2⋅X₃+20005 {O(n)}

relevant size-bounds w.r.t. t₁:
X₃: 0 {O(1)}
Runtime-bound of t₁: 1 {O(1)}
Results in: 20005 {O(1)}

TWN - Lifting for t₂: l2→l3 of 2⋅X₃+20005 {O(n)}

relevant size-bounds w.r.t. t₈:
X₃: 1 {O(1)}
Runtime-bound of t₈: X₁+1 {O(n)}
Results in: 20007⋅X₁+20007 {O(n)}

TWN - Lifting for t₂: l2→l3 of 2⋅X₃+20005 {O(n)}

relevant size-bounds w.r.t. t₅:
X₃: 1 {O(1)}
Runtime-bound of t₅: X₁+1 {O(n)}
Results in: 20007⋅X₁+20007 {O(n)}

TWN: t₄: l3→l1

TWN - Lifting for t₄: l3→l1 of 2⋅X₃+20005 {O(n)}

relevant size-bounds w.r.t. t₁:
X₃: 0 {O(1)}
Runtime-bound of t₁: 1 {O(1)}
Results in: 20005 {O(1)}

TWN - Lifting for t₄: l3→l1 of 2⋅X₃+20005 {O(n)}

relevant size-bounds w.r.t. t₈:
X₃: 1 {O(1)}
Runtime-bound of t₈: X₁+1 {O(n)}
Results in: 20007⋅X₁+20007 {O(n)}

TWN - Lifting for t₄: l3→l1 of 2⋅X₃+20005 {O(n)}

relevant size-bounds w.r.t. t₅:
X₃: 1 {O(1)}
Runtime-bound of t₅: X₁+1 {O(n)}
Results in: 20007⋅X₁+20007 {O(n)}

TWN: t₂₃: l1→l2

TWN - Lifting for t₂₃: l1→l2 of 2⋅X₃+20005 {O(n)}

relevant size-bounds w.r.t. t₁:
X₃: 0 {O(1)}
Runtime-bound of t₁: 1 {O(1)}
Results in: 20005 {O(1)}

TWN - Lifting for t₂₃: l1→l2 of 2⋅X₃+20005 {O(n)}

relevant size-bounds w.r.t. t₈:
X₃: 1 {O(1)}
Runtime-bound of t₈: X₁+1 {O(n)}
Results in: 20007⋅X₁+20007 {O(n)}

TWN - Lifting for t₂₃: l1→l2 of 2⋅X₃+20005 {O(n)}

relevant size-bounds w.r.t. t₅:
X₃: 1 {O(1)}
Runtime-bound of t₅: X₁+1 {O(n)}
Results in: 20007⋅X₁+20007 {O(n)}

All Bounds

Timebounds

Overall timebound:120044⋅X₁+180066 {O(n)}
t₀: 1 {O(1)}
t₁: 1 {O(1)}
t₂: 40014⋅X₁+60019 {O(n)}
t₄: 40014⋅X₁+60019 {O(n)}
t₅: X₁+1 {O(n)}
t₈: X₁+1 {O(n)}
t₉: 1 {O(1)}
t₁₂: 1 {O(1)}
t₂₃: 40014⋅X₁+60019 {O(n)}
t₂₄: 1 {O(1)}
t₂₅: 1 {O(1)}
t₂₆: 1 {O(1)}

Costbounds

Overall costbound: 120044⋅X₁+180066 {O(n)}
t₀: 1 {O(1)}
t₁: 1 {O(1)}
t₂: 40014⋅X₁+60019 {O(n)}
t₄: 40014⋅X₁+60019 {O(n)}
t₅: X₁+1 {O(n)}
t₈: X₁+1 {O(n)}
t₉: 1 {O(1)}
t₁₂: 1 {O(1)}
t₂₃: 40014⋅X₁+60019 {O(n)}
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₀: X₀ {O(n)}
t₁, X₁: X₁ {O(n)}
t₁, X₂: 0 {O(1)}
t₁, X₃: 0 {O(1)}
t₂, X₁: X₁ {O(n)}
t₂, X₂: 2⋅X₁+2 {O(n)}
t₂, X₃: 40014⋅X₁+60021 {O(n)}
t₄, X₁: X₁ {O(n)}
t₄, X₂: 2⋅X₁+2 {O(n)}
t₄, X₃: 40014⋅X₁+60021 {O(n)}
t₅, X₁: X₁ {O(n)}
t₅, X₂: 2⋅X₁+2 {O(n)}
t₅, X₃: 1 {O(1)}
t₈, X₁: X₁ {O(n)}
t₈, X₂: 2⋅X₁+2 {O(n)}
t₈, X₃: 1 {O(1)}
t₉, X₁: X₁ {O(n)}
t₉, X₂: 2⋅X₁+2 {O(n)}
t₉, X₃: 40014⋅X₁+60021 {O(n)}
t₁₂, X₁: X₁ {O(n)}
t₁₂, X₂: 2⋅X₁+2 {O(n)}
t₁₂, X₃: 40014⋅X₁+60021 {O(n)}
t₂₃, X₀: 0 {O(1)}
t₂₃, X₁: X₁ {O(n)}
t₂₃, X₂: 2⋅X₁+2 {O(n)}
t₂₃, X₃: 40014⋅X₁+60021 {O(n)}
t₂₄, X₀: 0 {O(1)}
t₂₄, X₁: X₁ {O(n)}
t₂₄, X₂: 2⋅X₁+2 {O(n)}
t₂₄, X₃: 40014⋅X₁+60021 {O(n)}
t₂₅, X₀: 0 {O(1)}
t₂₅, X₁: X₁ {O(n)}
t₂₅, X₂: 2⋅X₁+2 {O(n)}
t₂₅, X₃: 40014⋅X₁+60021 {O(n)}
t₂₆, X₁: 4⋅X₁ {O(n)}
t₂₆, X₂: 8⋅X₁+8 {O(n)}
t₂₆, X₃: 160056⋅X₁+240084 {O(n)}