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₁
Found invariant 1+X₂ ≤ X₁ for location l1
Time-Bound by TWN-Loops:
TWN-Loops: t₀ 2⋅X₀+2⋅X₁+4 {O(n)}
TWN-Loops:
entry: t₁: l0(X₀, X₁, X₂) → l1(X₀, X₁, X₂) :|: X₂+1 ≤ X₁
results in twn-loop: twn:Inv: [1+X₂ ≤ X₁] , (X₀,X₁,X₂) -> (X₀,X₁+1,X₂) :|: X₁+1 ≤ X₀
order: [X₀; X₁; X₂]
closed-form:
X₀: X₀
X₁: X₁ + [[n != 0]] * n^1
X₂: X₂
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 1 ≤ 0 for location l1
Found invariant 1+X₂ ≤ X₁ for location l1
Time-Bound by TWN-Loops:
TWN-Loops: t₂ 12⋅X₁⋅X₁+20⋅X₀⋅X₁+4⋅X₀⋅X₂+4⋅X₁⋅X₂+8⋅X₀⋅X₀+10⋅X₂+50⋅X₀+60⋅X₁+73 {O(n^2)}
relevant size-bounds w.r.t. t₀:
X₁: 2⋅X₀+3⋅X₁+4 {O(n)}
X₂: X₂ {O(n)}
Runtime-bound of t₀: 2⋅X₀+2⋅X₁+4 {O(n)}
Results in: 12⋅X₁⋅X₁+20⋅X₀⋅X₁+4⋅X₀⋅X₂+4⋅X₁⋅X₂+8⋅X₀⋅X₀+50⋅X₀+58⋅X₁+8⋅X₂+68 {O(n^2)}
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₂+5 {O(n)}
12⋅X₁⋅X₁+20⋅X₀⋅X₁+4⋅X₀⋅X₂+4⋅X₁⋅X₂+8⋅X₀⋅X₀+10⋅X₂+50⋅X₀+60⋅X₁+73 {O(n^2)}
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
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
Time-Bound by TWN-Loops:
TWN-Loops: t₅₅ 4⋅X₀+4⋅X₂+8⋅X₁+24 {O(n)}
TWN-Loops:
entry: 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₁
results in twn-loop: twn:Inv: [2+X₂ ≤ X₁ ∧ 2+X₂ ≤ X₀ ∧ X₁ ≤ X₀] , (X₀,X₁,X₂) -> (X₀,X₁+1,X₂) :|: 1+X₂ ≤ X₁ ∧ 2+X₂ ≤ X₁ ∧ 1+X₂ ≤ X₁ ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 1+X₁ ≤ X₀ ∧ 1+X₂ ≤ X₁
order: [X₀; X₁; X₂]
closed-form:
X₀: X₀
X₁: X₁ + [[n != 0]] * n^1
X₂: X₂
Termination: true
Formula:
1 < 0 ∧ 0 < 1
∨ 0 < 1 ∧ 1 < 0 ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 0 < 1 ∧ 1 < 0 ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
∨ 1 < 0 ∧ X₁ < X₀ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 0 < 1
∨ 0 < 1 ∧ 1 < 0 ∧ X₁ < X₀ ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 0 < 1 ∧ 1 < 0 ∧ X₁ < X₀ ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
∨ 1 < 0 ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 < 1
∨ 0 < 1 ∧ 1 < 0 ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 0 < 1 ∧ 1 < 0 ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
∨ 1+X₁ < X₀ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1 < 0 ∧ 0 < 1
∨ 0 < 1 ∧ 1+X₁ < X₀ ∧ 1 < 0 ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 0 < 1 ∧ 1+X₁ < X₀ ∧ 1 < 0 ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
∨ 1+X₁ < X₀ ∧ X₁ < X₀ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 0 < 1
∨ 0 < 1 ∧ 1+X₁ < X₀ ∧ X₁ < X₀ ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 0 < 1 ∧ 1+X₁ < X₀ ∧ X₁ < X₀ ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
∨ 1+X₁ < X₀ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 < 1
∨ 0 < 1 ∧ 1+X₁ < X₀ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 0 < 1 ∧ 1+X₁ < X₀ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
∨ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ 1 < 0 ∧ 0 < 1
∨ 0 < 1 ∧ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ 1 < 0 ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 0 < 1 ∧ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ 1 < 0 ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
∨ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ X₁ < X₀ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 0 < 1
∨ 0 < 1 ∧ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ X₁ < X₀ ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 0 < 1 ∧ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ X₁ < X₀ ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
∨ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 < 1
∨ 0 < 1 ∧ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 0 < 1 ∧ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
∨ 1+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 1 < 0 ∧ 0 < 1
∨ 1+X₂ < X₁ ∧ 1 < 0 ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 1+X₂ < X₁ ∧ 1 < 0 ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
∨ 1+X₂ < X₁ ∧ 1 < 0 ∧ X₁ < X₀ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 0 < 1
∨ 1+X₂ < X₁ ∧ 1 < 0 ∧ X₁ < X₀ ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 1+X₂ < X₁ ∧ 1 < 0 ∧ X₁ < X₀ ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
∨ 1+X₂ < X₁ ∧ 1 < 0 ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 < 1
∨ 1+X₂ < X₁ ∧ 1 < 0 ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 1+X₂ < X₁ ∧ 1 < 0 ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
∨ 1+X₂ < X₁ ∧ 1+X₁ < X₀ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1 < 0 ∧ 0 < 1
∨ 1+X₂ < X₁ ∧ 1+X₁ < X₀ ∧ 1 < 0 ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 1+X₂ < X₁ ∧ 1+X₁ < X₀ ∧ 1 < 0 ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
∨ 1+X₂ < X₁ ∧ 1+X₁ < X₀ ∧ X₁ < X₀ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 0 < 1
∨ 1+X₂ < X₁ ∧ 1+X₁ < X₀ ∧ X₁ < X₀ ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 1+X₂ < X₁ ∧ 1+X₁ < X₀ ∧ X₁ < X₀ ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
∨ 1+X₂ < X₁ ∧ 1+X₁ < X₀ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 < 1
∨ 1+X₂ < X₁ ∧ 1+X₁ < X₀ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 1+X₂ < X₁ ∧ 1+X₁ < X₀ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
∨ 1+X₂ < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ 1 < 0 ∧ 0 < 1
∨ 1+X₂ < X₁ ∧ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ 1 < 0 ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 1+X₂ < X₁ ∧ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ 1 < 0 ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
∨ 1+X₂ < X₁ ∧ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ X₁ < X₀ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 0 < 1
∨ 1+X₂ < X₁ ∧ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ X₁ < X₀ ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 1+X₂ < X₁ ∧ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ X₁ < X₀ ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
∨ 1+X₂ < X₁ ∧ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 < 1
∨ 1+X₂ < X₁ ∧ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 1+X₂ < X₁ ∧ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
∨ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1 < 0 ∧ 0 < 1
∨ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1 < 0 ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1 < 0 ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
∨ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1 < 0 ∧ X₁ < X₀ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 0 < 1
∨ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1 < 0 ∧ X₁ < X₀ ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1 < 0 ∧ X₁ < X₀ ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
∨ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1 < 0 ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 < 1
∨ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1 < 0 ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1 < 0 ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
∨ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1+X₁ < X₀ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1 < 0 ∧ 0 < 1
∨ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1+X₁ < X₀ ∧ 1 < 0 ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1+X₁ < X₀ ∧ 1 < 0 ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
∨ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1+X₁ < X₀ ∧ X₁ < X₀ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 0 < 1
∨ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1+X₁ < X₀ ∧ X₁ < X₀ ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1+X₁ < X₀ ∧ X₁ < X₀ ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
∨ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1+X₁ < X₀ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 < 1
∨ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1+X₁ < X₀ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1+X₁ < X₀ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
∨ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ 1 < 0 ∧ 0 < 1
∨ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ 1 < 0 ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ 1 < 0 ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
∨ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ X₁ < X₀ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 0 < 1
∨ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ X₁ < X₀ ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ X₁ < X₀ ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
∨ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 < 1
∨ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 2+X₂ < X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0
∨ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂ ∧ 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂
Stabilization-Threshold for: 1+X₂ ≤ X₁
alphas_abs: 1+X₁+X₂
M: 0
N: 1
Bound: 2⋅X₁+2⋅X₂+4 {O(n)}
Stabilization-Threshold for: 1+X₁ ≤ X₀
alphas_abs: X₀+X₁
M: 0
N: 1
Bound: 2⋅X₀+2⋅X₁+2 {O(n)}
Stabilization-Threshold for: X₁ ≤ X₀
alphas_abs: X₀+X₁
M: 0
N: 1
Bound: 2⋅X₀+2⋅X₁+2 {O(n)}
Stabilization-Threshold for: 2+X₂ ≤ X₁
alphas_abs: 2+X₁+X₂
M: 0
N: 1
Bound: 2⋅X₁+2⋅X₂+6 {O(n)}
relevant size-bounds w.r.t. t₅₇:
X₀: X₀ {O(n)}
X₁: X₁+1 {O(n)}
X₂: X₂ {O(n)}
Runtime-bound of t₅₇: 1 {O(1)}
Results in: 4⋅X₀+4⋅X₂+8⋅X₁+24 {O(n)}
4⋅X₀+4⋅X₂+8⋅X₁+24 {O(n)}
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₁ ∧ 1+X₂ ≤ X₀ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ for location n_l1___1
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
Time-Bound by TWN-Loops:
TWN-Loops: t₅₃ 16⋅X₀+28⋅X₂+44⋅X₁+136 {O(n)}
TWN-Loops:
entry: 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₀
results in twn-loop: twn:Inv: [1+X₂ ≤ X₁ ∧ X₀ ≤ X₁] , (X₀,X₁,X₂) -> (X₀,X₁,X₂+1) :|: 1+X₂ ≤ X₁ ∧ X₀ ≤ X₁ ∧ 1+X₂ ≤ X₁ ∧ 1+X₂ ≤ X₁ ∧ X₀ ≤ X₁ ∧ 2+X₂ ≤ X₁ ∧ X₀ ≤ X₁
entry: 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₁
results in twn-loop: twn:Inv: [1+X₂ ≤ X₁ ∧ X₀ ≤ X₁] , (X₀,X₁,X₂) -> (X₀,X₁,X₂+1) :|: 1+X₂ ≤ X₁ ∧ X₀ ≤ X₁ ∧ 1+X₂ ≤ X₁ ∧ 1+X₂ ≤ X₁ ∧ X₀ ≤ X₁ ∧ 2+X₂ ≤ X₁ ∧ X₀ ≤ X₁
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₁ ∧ 1 < 0 ∧ 1+X₂ < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1
∨ X₀ < X₁ ∧ 1 < 0 ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂
∨ X₀ < X₁ ∧ 2+X₂ < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1 < 0
∨ X₀ < X₁ ∧ 2+X₂ < X₁ ∧ 1+X₂ < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1
∨ X₀ < X₁ ∧ 2+X₂ < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂
∨ X₀ < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂ ∧ 1 < 0
∨ X₀ < X₁ ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂ ∧ 1+X₂ < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1
∨ X₀ < X₁ ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂
∨ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 1 < 0
∨ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 1 < 0 ∧ 1+X₂ < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1
∨ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 1 < 0 ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂
∨ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 2+X₂ < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1 < 0
∨ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 2+X₂ < X₁ ∧ 1+X₂ < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1
∨ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 2+X₂ < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂
∨ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂ ∧ 1 < 0
∨ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂ ∧ 1+X₂ < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1
∨ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂
Stabilization-Threshold for: 2+X₂ ≤ X₁
alphas_abs: 2+X₁+X₂
M: 0
N: 1
Bound: 2⋅X₁+2⋅X₂+6 {O(n)}
Stabilization-Threshold for: 1+X₂ ≤ X₁
alphas_abs: 1+X₁+X₂
M: 0
N: 1
Bound: 2⋅X₁+2⋅X₂+4 {O(n)}
relevant size-bounds w.r.t. t₅₄:
X₁: 10⋅X₁+4⋅X₀+4⋅X₂+26 {O(n)}
X₂: 2⋅X₂+2 {O(n)}
Runtime-bound of t₅₄: 1 {O(1)}
Results in: 16⋅X₀+24⋅X₂+40⋅X₁+125 {O(n)}
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₁ ∧ 1 < 0 ∧ 1+X₂ < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1
∨ X₀ < X₁ ∧ 1 < 0 ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂
∨ X₀ < X₁ ∧ 2+X₂ < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1 < 0
∨ X₀ < X₁ ∧ 2+X₂ < X₁ ∧ 1+X₂ < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1
∨ X₀ < X₁ ∧ 2+X₂ < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂
∨ X₀ < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂ ∧ 1 < 0
∨ X₀ < X₁ ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂ ∧ 1+X₂ < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1
∨ X₀ < X₁ ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂
∨ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 1 < 0
∨ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 1 < 0 ∧ 1+X₂ < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1
∨ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 1 < 0 ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂
∨ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 2+X₂ < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1 < 0
∨ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 2+X₂ < X₁ ∧ 1+X₂ < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1
∨ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 2+X₂ < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂
∨ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂ ∧ 1 < 0
∨ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂ ∧ 1+X₂ < X₁ ∧ 1 ≤ 0 ∧ 0 ≤ 1
∨ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ 2+X₂ ≤ X₁ ∧ X₁ ≤ 2+X₂ ∧ 1 ≤ 0 ∧ 0 ≤ 1 ∧ 1+X₂ ≤ X₁ ∧ X₁ ≤ 1+X₂
Stabilization-Threshold for: 2+X₂ ≤ X₁
alphas_abs: X₁+X₂
M: 0
N: 1
Bound: 2⋅X₁+2⋅X₂+2 {O(n)}
Stabilization-Threshold for: 1+X₂ ≤ 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₂+1 {O(n)}
Runtime-bound of t₅₆: 1 {O(1)}
Results in: 4⋅X₁+4⋅X₂+11 {O(n)}
16⋅X₀+28⋅X₂+44⋅X₁+136 {O(n)}
CFR: Improvement to new bound with the following program:
new bound:
20⋅X₀+32⋅X₂+52⋅X₁+160 {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:20⋅X₀+32⋅X₂+52⋅X₁+164 {O(n)}
t₁: 1 {O(1)}
t₅₆: 1 {O(1)}
t₅₇: 1 {O(1)}
t₅₃: 16⋅X₀+28⋅X₂+44⋅X₁+136 {O(n)}
t₅₄: 1 {O(1)}
t₅₅: 4⋅X₀+4⋅X₂+8⋅X₁+24 {O(n)}
Costbounds
Overall costbound: 20⋅X₀+32⋅X₂+52⋅X₁+164 {O(n)}
t₁: 1 {O(1)}
t₅₆: 1 {O(1)}
t₅₇: 1 {O(1)}
t₅₃: 16⋅X₀+28⋅X₂+44⋅X₁+136 {O(n)}
t₅₄: 1 {O(1)}
t₅₅: 4⋅X₀+4⋅X₂+8⋅X₁+24 {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₁: 11⋅X₁+4⋅X₀+4⋅X₂+26 {O(n)}
t₅₃, X₂: 16⋅X₀+31⋅X₂+44⋅X₁+139 {O(n)}
t₅₄, X₀: 2⋅X₀ {O(n)}
t₅₄, X₁: 10⋅X₁+4⋅X₀+4⋅X₂+26 {O(n)}
t₅₄, X₂: 2⋅X₂+2 {O(n)}
t₅₅, X₀: X₀ {O(n)}
t₅₅, X₁: 4⋅X₀+4⋅X₂+9⋅X₁+25 {O(n)}
t₅₅, X₂: X₂ {O(n)}