Initial Problem

Start: l0
Program_Vars: X₀, X₁, X₂
Temp_Vars:
Locations: l0, l1, l2
Transitions:
t₀: l0(X₀, X₁, X₂) → l1(X₀, X₁, X₂)
t₁: l1(X₀, X₁, X₂) → l1(X₀-1, X₁+(X₂)³, X₂+1) :|: 0 < X₀
t₂: l1(X₀, X₁, X₂) → l2(X₀, X₁, X₂) :|: X₀ ≤ 0
t₃: l2(X₀, X₁, X₂) → l2(X₀, X₁-1, X₂) :|: 0 < X₁

Preprocessing

Found invariant X₀ ≤ 0 for location l2

Problem after Preprocessing

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

TWN. Size Bound: t₁: l1→l1 for X₁

cycle: [t₁: l1→l1]
loop: (0 < X₀,(X₁,X₂) -> (X₁+(X₂)³,X₂+1)
closed-form: X₁ + [[n != 0]] * (X₂)³ * n^1 + [[n != 0, n != 1]] * 1/4 * n^4 + [[n != 0, n != 1]] * X₂-1/2 * n^3 + [[n != 0, n != 1]] * (1/4+3/2⋅(X₂)²-3/2⋅X₂) * n^2 + [[n != 0, n != 1]] * (1/2⋅X₂-3/2⋅(X₂)²) * n^1
runtime bound: X₀+1 {O(n)}

TWN Size Bound - Lifting for t₁: l1→l1 and X₁: 2⋅X₀⋅X₀⋅X₂⋅X₂+X₀⋅X₀⋅X₀⋅X₀+X₀⋅X₀⋅X₀⋅X₂+X₀⋅X₂⋅X₂⋅X₂+5⋅X₀⋅X₀⋅X₀+5⋅X₀⋅X₀⋅X₂+6⋅X₀⋅X₂⋅X₂+X₂⋅X₂⋅X₂+10⋅X₀⋅X₀+4⋅X₂⋅X₂+8⋅X₀⋅X₂+4⋅X₂+9⋅X₀+X₁+3 {O(n^4)}

MPRF for transition t₁: l1(X₀, X₁, X₂) → l1(X₀-1, X₁+Temp_Int₈₆, X₂+1) :|: 0 < X₀ of depth 1:

new bound:

X₀ {O(n)}

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

new bound:

2⋅X₀⋅X₀⋅X₂⋅X₂+X₀⋅X₀⋅X₀⋅X₀+X₀⋅X₀⋅X₀⋅X₂+X₀⋅X₂⋅X₂⋅X₂+5⋅X₀⋅X₀⋅X₀+5⋅X₀⋅X₀⋅X₂+6⋅X₀⋅X₂⋅X₂+X₂⋅X₂⋅X₂+10⋅X₀⋅X₀+4⋅X₂⋅X₂+8⋅X₀⋅X₂+2⋅X₁+4⋅X₂+9⋅X₀+3 {O(n^4)}

Analysing control-flow refined program

Found invariant X₀ ≤ 0 for location l2

MPRF for transition t₄₂: l2(X₀, X₁, X₂) → l2(X₀, X₁-1, X₂) :|: 0 < X₁ ∧ X₀ ≤ 0 ∧ X₀ ≤ 0 ∧ X₀ ≤ 0 ∧ X₀ ≤ 0 of depth 1:

new bound:

2⋅X₀⋅X₀⋅X₂⋅X₂+X₀⋅X₀⋅X₀⋅X₀+X₀⋅X₀⋅X₀⋅X₂+X₀⋅X₂⋅X₂⋅X₂+5⋅X₀⋅X₀⋅X₀+5⋅X₀⋅X₀⋅X₂+6⋅X₀⋅X₂⋅X₂+X₂⋅X₂⋅X₂+10⋅X₀⋅X₀+4⋅X₂⋅X₂+8⋅X₀⋅X₂+2⋅X₁+4⋅X₂+9⋅X₀+3 {O(n^4)}

CFR did not improve the program. Rolling back

CFR did not improve the program. Rolling back

All Bounds

Timebounds

Overall timebound:2⋅X₀⋅X₀⋅X₂⋅X₂+X₀⋅X₀⋅X₀⋅X₀+X₀⋅X₀⋅X₀⋅X₂+X₀⋅X₂⋅X₂⋅X₂+5⋅X₀⋅X₀⋅X₀+5⋅X₀⋅X₀⋅X₂+6⋅X₀⋅X₂⋅X₂+X₂⋅X₂⋅X₂+10⋅X₀⋅X₀+4⋅X₂⋅X₂+8⋅X₀⋅X₂+10⋅X₀+2⋅X₁+4⋅X₂+5 {O(n^4)}
t₀: 1 {O(1)}
t₁: X₀ {O(n)}
t₂: 1 {O(1)}
t₃: 2⋅X₀⋅X₀⋅X₂⋅X₂+X₀⋅X₀⋅X₀⋅X₀+X₀⋅X₀⋅X₀⋅X₂+X₀⋅X₂⋅X₂⋅X₂+5⋅X₀⋅X₀⋅X₀+5⋅X₀⋅X₀⋅X₂+6⋅X₀⋅X₂⋅X₂+X₂⋅X₂⋅X₂+10⋅X₀⋅X₀+4⋅X₂⋅X₂+8⋅X₀⋅X₂+2⋅X₁+4⋅X₂+9⋅X₀+3 {O(n^4)}

Costbounds

Overall costbound: 2⋅X₀⋅X₀⋅X₂⋅X₂+X₀⋅X₀⋅X₀⋅X₀+X₀⋅X₀⋅X₀⋅X₂+X₀⋅X₂⋅X₂⋅X₂+5⋅X₀⋅X₀⋅X₀+5⋅X₀⋅X₀⋅X₂+6⋅X₀⋅X₂⋅X₂+X₂⋅X₂⋅X₂+10⋅X₀⋅X₀+4⋅X₂⋅X₂+8⋅X₀⋅X₂+10⋅X₀+2⋅X₁+4⋅X₂+5 {O(n^4)}
t₀: 1 {O(1)}
t₁: X₀ {O(n)}
t₂: 1 {O(1)}
t₃: 2⋅X₀⋅X₀⋅X₂⋅X₂+X₀⋅X₀⋅X₀⋅X₀+X₀⋅X₀⋅X₀⋅X₂+X₀⋅X₂⋅X₂⋅X₂+5⋅X₀⋅X₀⋅X₀+5⋅X₀⋅X₀⋅X₂+6⋅X₀⋅X₂⋅X₂+X₂⋅X₂⋅X₂+10⋅X₀⋅X₀+4⋅X₂⋅X₂+8⋅X₀⋅X₂+2⋅X₁+4⋅X₂+9⋅X₀+3 {O(n^4)}

Sizebounds

t₀, X₀: X₀ {O(n)}
t₀, X₁: X₁ {O(n)}
t₀, X₂: X₂ {O(n)}
t₁, X₀: X₀ {O(n)}
t₁, X₁: 2⋅X₀⋅X₀⋅X₂⋅X₂+X₀⋅X₀⋅X₀⋅X₀+X₀⋅X₀⋅X₀⋅X₂+X₀⋅X₂⋅X₂⋅X₂+5⋅X₀⋅X₀⋅X₀+5⋅X₀⋅X₀⋅X₂+6⋅X₀⋅X₂⋅X₂+X₂⋅X₂⋅X₂+10⋅X₀⋅X₀+4⋅X₂⋅X₂+8⋅X₀⋅X₂+4⋅X₂+9⋅X₀+X₁+3 {O(n^4)}
t₁, X₂: X₀+X₂ {O(n)}
t₂, X₀: 2⋅X₀ {O(n)}
t₂, X₁: 2⋅X₀⋅X₀⋅X₂⋅X₂+X₀⋅X₀⋅X₀⋅X₀+X₀⋅X₀⋅X₀⋅X₂+X₀⋅X₂⋅X₂⋅X₂+5⋅X₀⋅X₀⋅X₀+5⋅X₀⋅X₀⋅X₂+6⋅X₀⋅X₂⋅X₂+X₂⋅X₂⋅X₂+10⋅X₀⋅X₀+4⋅X₂⋅X₂+8⋅X₀⋅X₂+2⋅X₁+4⋅X₂+9⋅X₀+3 {O(n^4)}
t₂, X₂: 2⋅X₂+X₀ {O(n)}
t₃, X₀: 2⋅X₀ {O(n)}
t₃, X₁: 2⋅X₀⋅X₀⋅X₂⋅X₂+X₀⋅X₀⋅X₀⋅X₀+X₀⋅X₀⋅X₀⋅X₂+X₀⋅X₂⋅X₂⋅X₂+5⋅X₀⋅X₀⋅X₀+5⋅X₀⋅X₀⋅X₂+6⋅X₀⋅X₂⋅X₂+X₂⋅X₂⋅X₂+10⋅X₀⋅X₀+4⋅X₂⋅X₂+8⋅X₀⋅X₂+2⋅X₁+4⋅X₂+9⋅X₀+3 {O(n^4)}
t₃, X₂: 2⋅X₂+X₀ {O(n)}