Initial Problem

Start: f1
Program_Vars: X₀, X₁
Temp_Vars:
Locations: f1, f3
Transitions:
t₀: f1(X₀, X₁) → f3(X₀, X₀) :|: 1 ≤ X₀
t₁: f3(X₀, X₁) → f3(X₀, X₁-1) :|: 1 ≤ X₁
t₂: f3(X₀, X₁) → f3(X₀-1, X₀-1) :|: 2 ≤ X₀ ∧ X₁ ≤ 0

Preprocessing

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

Problem after Preprocessing

Start: f1
Program_Vars: X₀, X₁
Temp_Vars:
Locations: f1, f3
Transitions:
t₀: f1(X₀, X₁) → f3(X₀, X₀) :|: 1 ≤ X₀
t₁: f3(X₀, X₁) → f3(X₀, X₁-1) :|: 1 ≤ X₁ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁
t₂: f3(X₀, X₁) → f3(X₀-1, X₀-1) :|: 2 ≤ X₀ ∧ X₁ ≤ 0 ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁

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

new bound:

X₀ {O(n)}

MPRF:

• f3: [X₀]

TWN: t₁: f3→f3

cycle: [t₁: f3→f3]
original loop: (1 ≤ X₁ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁,(X₀,X₁) -> (X₀,X₁-1))
transformed loop: (1 ≤ X₁ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁,(X₀,X₁) -> (X₀,X₁-1))
loop: (1 ≤ X₁ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁,(X₀,X₁) -> (X₀,X₁-1))
order: [X₁; X₀]
closed-form:
X₁: X₁ + [[n != 0]]⋅-1⋅n^1
X₀: X₀

Termination: true
Formula:

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

Stabilization-Threshold for: 0 ≤ X₁
alphas_abs: 1+X₁
M: 0
N: 1
Bound: 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: 1 ≤ X₁
alphas_abs: X₁
M: 0
N: 1
Bound: 2⋅X₁+2 {O(n)}
original loop: (1 ≤ X₁ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁,(X₀,X₁) -> (X₀,X₁-1))
transformed loop: (1 ≤ X₁ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁,(X₀,X₁) -> (X₀,X₁-1))
loop: (1 ≤ X₁ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁,(X₀,X₁) -> (X₀,X₁-1))
order: [X₁; X₀]
closed-form:
X₁: X₁ + [[n != 0]]⋅-1⋅n^1
X₀: X₀

Termination: true
Formula:

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

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

TWN - Lifting for [1: f3->f3] of 2⋅X₀+6⋅X₁+10 {O(n)}

relevant size-bounds w.r.t. t₀: f1→f3:
X₀: X₀ {O(n)}
X₁: X₀ {O(n)}
Runtime-bound of t₀: 1 {O(1)}
Results in: 8⋅X₀+10 {O(n)}

TWN - Lifting for [1: f3->f3] of 2⋅X₀+6⋅X₁+10 {O(n)}

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

Cut unsatisfiable transition [t₁₈: f3→f3_v1]

Found invariant 2+X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ 2 ≤ X₀ for location f3_v3

Found invariant X₁ ≤ X₀ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 1 ≤ X₀ for location f3_v1

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

Found invariant X₁ ≤ X₀ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 1 ≤ X₀ for location f3

Cut unsatisfiable transition [t₂₀: f3_v2→f3_v1]

All Bounds

Timebounds

Overall timebound:8⋅X₀⋅X₀+19⋅X₀+11 {O(n^2)}
t₀: 1 {O(1)}
t₁: 8⋅X₀⋅X₀+18⋅X₀+10 {O(n^2)}
t₂: X₀ {O(n)}

Costbounds

Overall costbound: 8⋅X₀⋅X₀+19⋅X₀+11 {O(n^2)}
t₀: 1 {O(1)}
t₁: 8⋅X₀⋅X₀+18⋅X₀+10 {O(n^2)}
t₂: X₀ {O(n)}

Sizebounds

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₀ {O(n)}