Initial Problem

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

Preprocessing

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

Found invariant X₄ ≤ X₃ ∧ X₄ ≤ X₁ ∧ X₂ ≤ X₄ ∧ X₃ ≤ X₁ ∧ X₂ ≤ X₃ ∧ X₀ ≤ X₃ ∧ X₂ ≤ 0 ∧ X₂ ≤ X₁ ∧ X₀ ≤ X₁ for location l4

Found invariant X₃ ≤ X₁ ∧ X₂ ≤ X₃ ∧ X₂ ≤ 0 ∧ X₂ ≤ X₁ ∧ X₀ ≤ X₁ for location l3

Problem after Preprocessing

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

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

Found invariant X₄ ≤ X₃ ∧ X₄ ≤ X₁ ∧ X₂ ≤ X₄ ∧ X₃ ≤ X₁ ∧ X₂ ≤ X₃ ∧ X₀ ≤ X₃ ∧ X₂ ≤ 0 ∧ X₂ ≤ X₁ ∧ X₀ ≤ X₁ for location l4

Found invariant X₃ ≤ X₁ ∧ X₂ ≤ X₃ ∧ X₂ ≤ 0 ∧ X₂ ≤ X₁ ∧ X₀ ≤ X₁ for location l3

Time-Bound by TWN-Loops:

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

TWN-Loops:

entry: t₀: l0(X₀, X₁, X₂, X₃, X₄) → l1(X₀, X₁, X₂, X₃, X₄)
results in twn-loop: twn: (X₀,X₁,X₂,X₃,X₄) -> (X₀,X₁+1,X₂,X₃,X₄) :|: X₁+1 ≤ X₀
order: [X₀; X₁]
closed-form:
X₀: X₀
X₁: X₁ + [[n != 0]] * n^1

Termination: true
Formula:

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

Stabilization-Threshold for: X₁+1 ≤ X₀
alphas_abs: X₁+X₀
M: 0
N: 1
Bound: 2⋅X₀+2⋅X₁+2 {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₀+2⋅X₁+4 {O(n)}

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

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

Found invariant X₄ ≤ X₃ ∧ X₄ ≤ X₁ ∧ X₂ ≤ X₄ ∧ X₃ ≤ X₁ ∧ X₂ ≤ X₃ ∧ X₀ ≤ X₃ ∧ X₂ ≤ 0 ∧ X₂ ≤ X₁ ∧ X₀ ≤ X₁ for location l4

Found invariant X₃ ≤ X₁ ∧ X₂ ≤ X₃ ∧ X₂ ≤ 0 ∧ X₂ ≤ X₁ ∧ X₀ ≤ X₁ for location l3

Time-Bound by TWN-Loops:

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

TWN-Loops:

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

Termination: true
Formula:

1 < 0
∨ 1 < X₂ ∧ 1 ≤ 0 ∧ 0 ≤ 1
∨ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1 ≤ X₂ ∧ X₂ ≤ 1

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

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

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

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

Found invariant X₄ ≤ X₃ ∧ X₄ ≤ X₁ ∧ X₂ ≤ X₄ ∧ X₃ ≤ X₁ ∧ X₂ ≤ X₃ ∧ X₀ ≤ X₃ ∧ X₂ ≤ 0 ∧ X₂ ≤ X₁ ∧ X₀ ≤ X₁ for location l4

Found invariant X₃ ≤ X₁ ∧ X₂ ≤ X₃ ∧ X₂ ≤ 0 ∧ X₂ ≤ X₁ ∧ X₀ ≤ X₁ for location l3

Time-Bound by TWN-Loops:

TWN-Loops: t₅ 16⋅X₀+16⋅X₁+20 {O(n)}

TWN-Loops:

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

Termination: true
Formula:

1 < 0
∨ X₃+1 < X₀ ∧ 1 ≤ 0 ∧ 0 ≤ 1
∨ 1 ≤ 0 ∧ 0 ≤ 1 ∧ X₃+1 ≤ X₀ ∧ X₀ ≤ X₃+1

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

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

16⋅X₀+16⋅X₁+20 {O(n)}

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

Found invariant X₄ ≤ X₃ ∧ X₄ ≤ X₁ ∧ X₂ ≤ X₄ ∧ X₃ ≤ X₁ ∧ X₂ ≤ X₃ ∧ X₀ ≤ X₃ ∧ X₂ ≤ 0 ∧ X₂ ≤ X₁ ∧ X₀ ≤ X₁ for location l4

Found invariant X₃ ≤ X₁ ∧ X₂ ≤ X₃ ∧ X₂ ≤ 0 ∧ X₂ ≤ X₁ ∧ X₀ ≤ X₁ for location l3

Time-Bound by TWN-Loops:

TWN-Loops: t₇ 48⋅X₀+64⋅X₁+76 {O(n)}

TWN-Loops:

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

Termination: true
Formula:

1 < 0
∨ 1 < X₄ ∧ 1 ≤ 0 ∧ 0 ≤ 1
∨ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1 ≤ X₄ ∧ X₄ ≤ 1

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

relevant size-bounds w.r.t. t₆:
X₄: 24⋅X₀+32⋅X₁+36 {O(n)}
Runtime-bound of t₆: 1 {O(1)}
Results in: 48⋅X₀+64⋅X₁+76 {O(n)}

48⋅X₀+64⋅X₁+76 {O(n)}

All Bounds

Timebounds

Overall timebound:70⋅X₀+90⋅X₁+116 {O(n)}
t₀: 1 {O(1)}
t₁: 2⋅X₀+2⋅X₁+4 {O(n)}
t₂: 1 {O(1)}
t₃: 4⋅X₀+8⋅X₁+12 {O(n)}
t₄: 1 {O(1)}
t₅: 16⋅X₀+16⋅X₁+20 {O(n)}
t₆: 1 {O(1)}
t₇: 48⋅X₀+64⋅X₁+76 {O(n)}

Costbounds

Overall costbound: 70⋅X₀+90⋅X₁+116 {O(n)}
t₀: 1 {O(1)}
t₁: 2⋅X₀+2⋅X₁+4 {O(n)}
t₂: 1 {O(1)}
t₃: 4⋅X₀+8⋅X₁+12 {O(n)}
t₄: 1 {O(1)}
t₅: 16⋅X₀+16⋅X₁+20 {O(n)}
t₆: 1 {O(1)}
t₇: 48⋅X₀+64⋅X₁+76 {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₀ {O(n)}
t₁, X₁: 2⋅X₀+3⋅X₁+4 {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₁: 2⋅X₀+4⋅X₁+4 {O(n)}
t₂, X₂: 2⋅X₀+4⋅X₁+4 {O(n)}
t₂, X₃: 2⋅X₃ {O(n)}
t₂, X₄: 2⋅X₄ {O(n)}
t₃, X₀: 2⋅X₀ {O(n)}
t₃, X₁: 2⋅X₀+4⋅X₁+4 {O(n)}
t₃, X₂: 2⋅X₀+4⋅X₁+4 {O(n)}
t₃, X₃: 2⋅X₃ {O(n)}
t₃, X₄: 2⋅X₄ {O(n)}
t₄, X₀: 4⋅X₀ {O(n)}
t₄, X₁: 4⋅X₀+8⋅X₁+8 {O(n)}
t₄, X₂: 4⋅X₀+8⋅X₁+8 {O(n)}
t₄, X₃: 4⋅X₀+8⋅X₁+8 {O(n)}
t₄, X₄: 4⋅X₄ {O(n)}
t₅, X₀: 4⋅X₀ {O(n)}
t₅, X₁: 4⋅X₀+8⋅X₁+8 {O(n)}
t₅, X₂: 4⋅X₀+8⋅X₁+8 {O(n)}
t₅, X₃: 20⋅X₀+24⋅X₁+28 {O(n)}
t₅, X₄: 4⋅X₄ {O(n)}
t₆, X₀: 8⋅X₀ {O(n)}
t₆, X₁: 16⋅X₁+8⋅X₀+16 {O(n)}
t₆, X₂: 16⋅X₁+8⋅X₀+16 {O(n)}
t₆, X₃: 24⋅X₀+32⋅X₁+36 {O(n)}
t₆, X₄: 24⋅X₀+32⋅X₁+36 {O(n)}
t₇, X₀: 8⋅X₀ {O(n)}
t₇, X₁: 16⋅X₁+8⋅X₀+16 {O(n)}
t₇, X₂: 16⋅X₁+8⋅X₀+16 {O(n)}
t₇, X₃: 24⋅X₀+32⋅X₁+36 {O(n)}
t₇, X₄: 24⋅X₀+32⋅X₁+36 {O(n)}