Initial Problem
Start: l0
Program_Vars: X₀, X₁, X₂, X₃, X₄, X₅
Temp_Vars:
Locations: l0, l1, l2
Transitions:
t₀: l0(X₀, X₁, X₂, X₃, X₄, X₅) → l1(X₃, X₄, X₂, X₃, X₄, X₅) :|: 0 < X₅
t₁: l1(X₀, X₁, X₂, X₃, X₄, X₅) → l1(X₀+X₂, X₁, X₂-1, X₃, X₄, X₅) :|: 0 < X₂
t₂: l1(X₀, X₁, X₂, X₃, X₄, X₅) → l2(X₀, X₁, X₂, X₂, X₄, X₅) :|: X₂ ≤ 0
t₄: l2(X₀, X₁, X₂, X₃, X₄, X₅) → l1(X₃, X₄, X₅, X₃, X₄, X₅-1) :|: 0 < X₅
t₃: l2(X₀, X₁, X₂, X₃, X₄, X₅) → l2(5⋅X₀+(X₂)², 2⋅X₁, X₂, X₃, X₄, X₅) :|: X₀ < (X₁)² ∧ 0 < X₀
Preprocessing
Found invariant 0 ≤ X₅ ∧ X₃ ≤ X₅ ∧ X₂ ≤ X₅ ∧ X₃ ≤ 0 ∧ X₃ ≤ X₂ ∧ X₂+X₃ ≤ 0 ∧ X₂ ≤ X₃ ∧ X₂ ≤ 0 for location l2
Found invariant 0 ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₄ ∧ X₃ ≤ X₀ for location l1
Problem after Preprocessing
Start: l0
Program_Vars: X₀, X₁, X₂, X₃, X₄, X₅
Temp_Vars:
Locations: l0, l1, l2
Transitions:
t₀: l0(X₀, X₁, X₂, X₃, X₄, X₅) → l1(X₃, X₄, X₂, X₃, X₄, X₅) :|: 0 < X₅
t₁: l1(X₀, X₁, X₂, X₃, X₄, X₅) → l1(X₀+X₂, X₁, X₂-1, X₃, X₄, X₅) :|: 0 < X₂ ∧ 0 ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₄ ∧ X₃ ≤ X₀
t₂: l1(X₀, X₁, X₂, X₃, X₄, X₅) → l2(X₀, X₁, X₂, X₂, X₄, X₅) :|: X₂ ≤ 0 ∧ 0 ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₄ ∧ X₃ ≤ X₀
t₄: l2(X₀, X₁, X₂, X₃, X₄, X₅) → l1(X₃, X₄, X₅, X₃, X₄, X₅-1) :|: 0 < X₅ ∧ 0 ≤ X₅ ∧ X₃ ≤ X₅ ∧ X₂ ≤ X₅ ∧ X₃ ≤ 0 ∧ X₃ ≤ X₂ ∧ X₂+X₃ ≤ 0 ∧ X₂ ≤ X₃ ∧ X₂ ≤ 0
t₃: l2(X₀, X₁, X₂, X₃, X₄, X₅) → l2(5⋅X₀+(X₂)², 2⋅X₁, X₂, X₃, X₄, X₅) :|: X₀ < (X₁)² ∧ 0 < X₀ ∧ 0 ≤ X₅ ∧ X₃ ≤ X₅ ∧ X₂ ≤ X₅ ∧ X₃ ≤ 0 ∧ X₃ ≤ X₂ ∧ X₂+X₃ ≤ 0 ∧ X₂ ≤ X₃ ∧ X₂ ≤ 0
MPRF for transition t₂: l1(X₀, X₁, X₂, X₃, X₄, X₅) → l2(X₀, X₁, X₂, X₂, X₄, X₅) :|: X₂ ≤ 0 ∧ 0 ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₄ ∧ X₃ ≤ X₀ of depth 1:
new bound:
X₅+1 {O(n)}
MPRF:
l2 [X₅ ]
l1 [X₅+1 ]
MPRF for transition t₄: l2(X₀, X₁, X₂, X₃, X₄, X₅) → l1(X₃, X₄, X₅, X₃, X₄, X₅-1) :|: 0 < X₅ ∧ 0 ≤ X₅ ∧ X₃ ≤ X₅ ∧ X₂ ≤ X₅ ∧ X₃ ≤ 0 ∧ X₃ ≤ X₂ ∧ X₂+X₃ ≤ 0 ∧ X₂ ≤ X₃ ∧ X₂ ≤ 0 of depth 1:
new bound:
X₅+1 {O(n)}
MPRF:
l2 [X₅+1 ]
l1 [X₅+1 ]
MPRF for transition t₁: l1(X₀, X₁, X₂, X₃, X₄, X₅) → l1(X₀+X₂, X₁, X₂-1, X₃, X₄, X₅) :|: 0 < X₂ ∧ 0 ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₄ ∧ X₃ ≤ X₀ of depth 1:
new bound:
4⋅X₅⋅X₅+4⋅X₅+X₂ {O(n^2)}
MPRF:
l1 [X₂ ]
l2 [X₂ ]
Analysing control-flow refined program
Found invariant 0 ≤ X₅ ∧ X₃ ≤ X₅ ∧ X₂ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₄ ∧ X₃ ≤ 0 ∧ X₃ ≤ X₂ ∧ X₂+X₃ ≤ 0 ∧ X₂ ≤ X₃ ∧ X₂ ≤ 0 for location l2
Found invariant 0 ≤ X₅ ∧ X₃ ≤ X₅ ∧ X₂ ≤ X₅ ∧ X₃ ≤ 0 ∧ X₃ ≤ X₂ ∧ X₂+X₃ ≤ 0 ∧ X₂ ≤ X₃ ∧ X₂ ≤ 0 for location n_l2___1
Found invariant 0 ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₄ ∧ X₃ ≤ X₀ for location l1
knowledge_propagation leads to new time bound X₅+1 {O(n)} for transition t₆₁: l2(X₀, X₁, X₂, X₃, X₄, X₅) → n_l2___1(NoDet0, 2⋅X₁, X₂, X₂, X₄, Arg5_P) :|: X₂ ≤ 0 ∧ 0 ≤ X₅ ∧ X₂ ≤ X₃ ∧ X₃ ≤ X₂ ∧ X₂ ≤ X₃ ∧ X₃ ≤ X₂ ∧ X₁ ≤ X₄ ∧ X₄ ≤ X₁ ∧ 0 ≤ X₅ ∧ X₂ ≤ 0 ∧ X₂ ≤ X₃ ∧ X₃ ≤ X₂ ∧ 0 ≤ X₅ ∧ X₃ ≤ 0 ∧ X₂ ≤ 0 ∧ 0 ≤ Arg5_P ∧ 0 < X₀ ∧ X₂ ≤ X₃ ∧ X₃ ≤ X₂ ∧ X₅ ≤ Arg5_P ∧ Arg5_P ≤ X₅ ∧ 0 ≤ X₅ ∧ X₃ ≤ X₅ ∧ X₂ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₄ ∧ X₃ ≤ 0 ∧ X₃ ≤ X₂ ∧ X₂+X₃ ≤ 0 ∧ X₂ ≤ X₃ ∧ X₂ ≤ 0
MPRF for transition t₅₁: l1(X₀, X₁, X₂, X₃, X₄, X₅) → l1(X₀+X₂, X₁, X₂-1, X₃, X₁, X₅) :|: 0 < X₂ ∧ X₃ ≤ X₀ ∧ X₁ ≤ X₄ ∧ X₄ ≤ X₁ ∧ 0 < X₂ ∧ 0 ≤ X₅ ∧ X₃ ≤ X₀ ∧ X₁ ≤ X₄ ∧ X₄ ≤ X₁ ∧ 0 ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₄ ∧ X₃ ≤ X₀ of depth 1:
new bound:
6⋅X₅⋅X₅+6⋅X₅+X₂ {O(n^2)}
MPRF:
l2 [X₂ ]
n_l2___1 [X₅ ]
l1 [X₂ ]
MPRF for transition t₅₂: l1(X₀, X₁, X₂, X₃, X₄, X₅) → l1(X₀+X₂, X₁, X₂-1, X₃, X₁, X₅) :|: X₃ ≤ X₀ ∧ 0 ≤ X₅ ∧ X₁ ≤ X₄ ∧ X₄ ≤ X₁ ∧ 0 < X₂ ∧ 0 ≤ X₅ ∧ X₃ ≤ X₀ ∧ X₁ ≤ X₄ ∧ X₄ ≤ X₁ ∧ 0 ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₄ ∧ X₃ ≤ X₀ of depth 1:
new bound:
6⋅X₅⋅X₅+6⋅X₅+X₂ {O(n^2)}
MPRF:
l2 [X₃ ]
n_l2___1 [X₅ ]
l1 [X₂ ]
MPRF for transition t₆₄: n_l2___1(X₀, X₁, X₂, X₃, X₄, X₅) → l1(X₃, X₄, X₅, X₃, X₄, X₅-1) :|: 0 < X₅ ∧ 0 ≤ X₅ ∧ X₃ ≤ X₅ ∧ X₂ ≤ X₅ ∧ X₃ ≤ 0 ∧ X₃ ≤ X₂ ∧ X₂+X₃ ≤ 0 ∧ X₂ ≤ X₃ ∧ X₂ ≤ 0 ∧ 0 ≤ X₅ ∧ X₃ ≤ X₅ ∧ X₂ ≤ X₅ ∧ X₃ ≤ 0 ∧ X₃ ≤ X₂ ∧ X₂+X₃ ≤ 0 ∧ X₂ ≤ X₃ ∧ X₂ ≤ 0 of depth 1:
new bound:
X₅+1 {O(n)}
MPRF:
l2 [X₅+1 ]
n_l2___1 [X₅+1 ]
l1 [X₅+1 ]
CFR did not improve the program. Rolling back
All Bounds
Timebounds
Overall timebound:inf {Infinity}
t₀: 1 {O(1)}
t₁: 4⋅X₅⋅X₅+4⋅X₅+X₂ {O(n^2)}
t₂: X₅+1 {O(n)}
t₃: inf {Infinity}
t₄: X₅+1 {O(n)}
Costbounds
Overall costbound: inf {Infinity}
t₀: 1 {O(1)}
t₁: 4⋅X₅⋅X₅+4⋅X₅+X₂ {O(n^2)}
t₂: X₅+1 {O(n)}
t₃: inf {Infinity}
t₄: X₅+1 {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₀: 32⋅X₅⋅X₅⋅X₅+8⋅X₂⋅X₅⋅X₅+16⋅X₂⋅X₅+2⋅X₂⋅X₂+32⋅X₅⋅X₅+16⋅X₅+6⋅X₂+X₃ {O(n^3)}
t₁, X₁: 5⋅X₄ {O(n)}
t₁, X₂: 4⋅X₅+X₂ {O(n)}
t₁, X₃: 4⋅X₂+8⋅X₅+X₃ {O(n)}
t₁, X₄: 2⋅X₄ {O(n)}
t₁, X₅: 2⋅X₅ {O(n)}
t₂, X₀: 32⋅X₅⋅X₅⋅X₅+8⋅X₂⋅X₅⋅X₅+16⋅X₂⋅X₅+2⋅X₂⋅X₂+32⋅X₅⋅X₅+16⋅X₅+2⋅X₃+6⋅X₂ {O(n^3)}
t₂, X₁: 6⋅X₄ {O(n)}
t₂, X₂: 2⋅X₂+4⋅X₅ {O(n)}
t₂, X₃: 2⋅X₂+4⋅X₅ {O(n)}
t₂, X₄: 2⋅X₄ {O(n)}
t₂, X₅: 2⋅X₅ {O(n)}
t₃, X₂: 2⋅X₂+4⋅X₅ {O(n)}
t₃, X₃: 2⋅X₂+4⋅X₅ {O(n)}
t₃, X₄: 2⋅X₄ {O(n)}
t₃, X₅: 2⋅X₅ {O(n)}
t₄, X₀: 4⋅X₂+8⋅X₅ {O(n)}
t₄, X₁: 4⋅X₄ {O(n)}
t₄, X₂: 4⋅X₅ {O(n)}
t₄, X₃: 4⋅X₂+8⋅X₅ {O(n)}
t₄, X₄: 2⋅X₄ {O(n)}
t₄, X₅: 2⋅X₅ {O(n)}