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₄) → l2(X₀, X₀, X₄, X₃, X₄) :|: 0 ≤ 5+X₃ ∧ X₃ ≤ 5
t₁: l1(X₀, X₁, X₂, X₃, X₄) → l3(X₀, X₀, X₄, X₃, X₄) :|: 0 < X₀ ∧ 0 < X₃
t₃: l2(X₀, X₁, X₂, X₃, X₄) → l3(X₀, X₀, X₄, X₃, X₄) :|: 0 < X₀
t₇: l3(X₀, X₁, X₂, X₃, X₄) → l1(X₀-1, X₁, X₂, X₃, X₄)
t₄: l3(X₀, X₁, X₂, X₃, X₄) → l4(X₀, -2⋅X₁, X₂, X₃, X₄) :|: (X₁)²+(X₃)⁵ < X₂ ∧ X₁ < 0
t₅: l3(X₀, X₁, X₂, X₃, X₄) → l4(X₀, -2⋅X₁, X₂, X₃, X₄) :|: (X₁)²+(X₃)⁵ < X₂ ∧ 0 < X₁
t₆: l4(X₀, X₁, X₂, X₃, X₄) → l3(X₀, X₁, 3⋅X₂-2⋅(X₃)³, X₃, X₄)
Preprocessing
Found invariant X₄ ≤ X₂ ∧ X₂ ≤ X₄ ∧ X₃ ≤ 5 ∧ 0 ≤ 5+X₃ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ for location l2
Found invariant 0 ≤ 5+X₃ ∧ 0 ≤ 4+X₀+X₃ ∧ 1 ≤ X₀ for location l4
Found invariant 0 ≤ 5+X₃ ∧ 0 ≤ 4+X₀+X₃ ∧ 1 ≤ 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₄) → l2(X₀, X₀, X₄, X₃, X₄) :|: 0 ≤ 5+X₃ ∧ X₃ ≤ 5
t₁: l1(X₀, X₁, X₂, X₃, X₄) → l3(X₀, X₀, X₄, X₃, X₄) :|: 0 < X₀ ∧ 0 < X₃
t₃: l2(X₀, X₁, X₂, X₃, X₄) → l3(X₀, X₀, X₄, X₃, X₄) :|: 0 < X₀ ∧ X₄ ≤ X₂ ∧ X₂ ≤ X₄ ∧ X₃ ≤ 5 ∧ 0 ≤ 5+X₃ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁
t₇: l3(X₀, X₁, X₂, X₃, X₄) → l1(X₀-1, X₁, X₂, X₃, X₄) :|: 0 ≤ 5+X₃ ∧ 0 ≤ 4+X₀+X₃ ∧ 1 ≤ X₀
t₄: l3(X₀, X₁, X₂, X₃, X₄) → l4(X₀, -2⋅X₁, X₂, X₃, X₄) :|: (X₁)²+(X₃)⁵ < X₂ ∧ X₁ < 0 ∧ 0 ≤ 5+X₃ ∧ 0 ≤ 4+X₀+X₃ ∧ 1 ≤ X₀
t₅: l3(X₀, X₁, X₂, X₃, X₄) → l4(X₀, -2⋅X₁, X₂, X₃, X₄) :|: (X₁)²+(X₃)⁵ < X₂ ∧ 0 < X₁ ∧ 0 ≤ 5+X₃ ∧ 0 ≤ 4+X₀+X₃ ∧ 1 ≤ X₀
t₆: l4(X₀, X₁, X₂, X₃, X₄) → l3(X₀, X₁, 3⋅X₂-2⋅(X₃)³, X₃, X₄) :|: 0 ≤ 5+X₃ ∧ 0 ≤ 4+X₀+X₃ ∧ 1 ≤ X₀
MPRF for transition t₁: l1(X₀, X₁, X₂, X₃, X₄) → l3(X₀, X₀, X₄, X₃, X₄) :|: 0 < X₀ ∧ 0 < X₃ of depth 1:
new bound:
X₀ {O(n)}
MPRF:
l2 [X₀ ]
l1 [X₀ ]
l4 [X₀-1 ]
l3 [X₀-1 ]
MPRF for transition t₃: l2(X₀, X₁, X₂, X₃, X₄) → l3(X₀, X₀, X₄, X₃, X₄) :|: 0 < X₀ ∧ X₄ ≤ X₂ ∧ X₂ ≤ X₄ ∧ X₃ ≤ 5 ∧ 0 ≤ 5+X₃ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ of depth 1:
new bound:
X₀ {O(n)}
MPRF:
l2 [X₁ ]
l1 [X₀ ]
l4 [X₀-1 ]
l3 [X₀-1 ]
MPRF for transition t₇: l3(X₀, X₁, X₂, X₃, X₄) → l1(X₀-1, X₁, X₂, X₃, X₄) :|: 0 ≤ 5+X₃ ∧ 0 ≤ 4+X₀+X₃ ∧ 1 ≤ X₀ of depth 1:
new bound:
X₀ {O(n)}
MPRF:
l2 [X₁ ]
l1 [X₀ ]
l4 [X₀ ]
l3 [X₀ ]
knowledge_propagation leads to new time bound X₀+1 {O(n)} for transition t₂: l1(X₀, X₁, X₂, X₃, X₄) → l2(X₀, X₀, X₄, X₃, X₄) :|: 0 ≤ 5+X₃ ∧ X₃ ≤ 5
Analysing control-flow refined program
Found invariant X₄ ≤ X₂ ∧ X₂ ≤ X₄ ∧ X₃ ≤ 5 ∧ 0 ≤ 5+X₃ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ for location l2
Found invariant 0 ≤ 5+X₃ ∧ 0 ≤ 1+X₁+X₃ ∧ 0 ≤ 4+X₀+X₃ ∧ 4 ≤ X₁ ∧ 5 ≤ X₀+X₁ ∧ 3+X₀ ≤ X₁ ∧ 1 ≤ X₀ for location n_l4___2
Found invariant 0 ≤ 5+X₃ ∧ X₁ ≤ 3+X₃ ∧ 0 ≤ 4+X₀+X₃ ∧ 2+X₁ ≤ 0 ∧ 3+X₁ ≤ X₀ ∧ 1+X₀+X₁ ≤ 0 ∧ 1 ≤ X₀ for location n_l4___4
Found invariant 0 ≤ 5+X₃ ∧ X₁ ≤ 3+X₃ ∧ 0 ≤ 4+X₀+X₃ ∧ 2+X₁ ≤ 0 ∧ 3+X₁ ≤ X₀ ∧ 1+X₀+X₁ ≤ 0 ∧ 1 ≤ X₀ for location n_l3___3
Found invariant 0 ≤ 5+X₃ ∧ 0 ≤ 1+X₁+X₃ ∧ 0 ≤ 4+X₀+X₃ ∧ 4 ≤ X₁ ∧ 5 ≤ X₀+X₁ ∧ 3+X₀ ≤ X₁ ∧ 1 ≤ X₀ for location n_l3___1
Found invariant X₄ ≤ X₂ ∧ X₂ ≤ X₄ ∧ 0 ≤ 5+X₃ ∧ 0 ≤ 4+X₁+X₃ ∧ 0 ≤ 4+X₀+X₃ ∧ X₁ ≤ X₀ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 1 ≤ X₀ for location l3
knowledge_propagation leads to new time bound 2⋅X₀ {O(n)} for transition t₇₅: l3(X₀, X₁, X₂, X₃, X₄) → n_l4___4(X₀, -2⋅X₁, X₂, X₃, X₄) :|: 0 ≤ 5+X₃ ∧ 0 < X₁ ∧ 0 ≤ 5+X₃ ∧ 0 < X₁ ∧ 1 ≤ X₀ ∧ X₄ ≤ X₂ ∧ X₂ ≤ X₄ ∧ 0 ≤ 5+X₃ ∧ 0 ≤ 4+X₁+X₃ ∧ 0 ≤ 4+X₀+X₃ ∧ X₁ ≤ X₀ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 1 ≤ X₀
MPRF for transition t₈₃: n_l3___1(X₀, X₁, X₂, X₃, X₄) → l1(X₀-1, X₁, X₂, X₃, X₄) :|: 0 ≤ 5+X₃ ∧ 0 ≤ 4+X₀+X₃ ∧ 1 ≤ X₀ ∧ 0 ≤ 5+X₃ ∧ 0 ≤ 1+X₁+X₃ ∧ 0 ≤ 4+X₀+X₃ ∧ 4 ≤ X₁ ∧ 5 ≤ X₀+X₁ ∧ 3+X₀ ≤ X₁ ∧ 1 ≤ X₀ of depth 1:
new bound:
X₀ {O(n)}
MPRF:
l2 [X₀ ]
l3 [X₀ ]
l1 [X₀ ]
n_l4___2 [X₀ ]
n_l3___1 [X₀ ]
n_l4___4 [X₀ ]
n_l3___3 [X₀ ]
MPRF for transition t₈₄: n_l3___3(X₀, X₁, X₂, X₃, X₄) → l1(X₀-1, X₁, X₂, X₃, X₄) :|: 0 ≤ 5+X₃ ∧ 0 ≤ 4+X₀+X₃ ∧ 1 ≤ X₀ ∧ 0 ≤ 5+X₃ ∧ X₁ ≤ 3+X₃ ∧ 0 ≤ 4+X₀+X₃ ∧ 2+X₁ ≤ 0 ∧ 3+X₁ ≤ X₀ ∧ 1+X₀+X₁ ≤ 0 ∧ 1 ≤ X₀ of depth 1:
new bound:
X₀ {O(n)}
MPRF:
l2 [X₁ ]
l3 [X₁ ]
l1 [X₀ ]
n_l4___2 [X₀ ]
n_l3___1 [X₀ ]
n_l4___4 [X₀ ]
n_l3___3 [X₀ ]
CFR did not improve the program. Rolling back
All Bounds
Timebounds
Overall timebound:inf {Infinity}
t₀: 1 {O(1)}
t₁: X₀ {O(n)}
t₂: X₀+1 {O(n)}
t₃: X₀ {O(n)}
t₄: inf {Infinity}
t₅: inf {Infinity}
t₇: X₀ {O(n)}
t₆: inf {Infinity}
Costbounds
Overall costbound: inf {Infinity}
t₀: 1 {O(1)}
t₁: X₀ {O(n)}
t₂: X₀+1 {O(n)}
t₃: X₀ {O(n)}
t₄: inf {Infinity}
t₅: inf {Infinity}
t₇: X₀ {O(n)}
t₆: inf {Infinity}
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₀: 2⋅X₀ {O(n)}
t₁, X₁: 3⋅X₀ {O(n)}
t₁, X₂: 3⋅X₄ {O(n)}
t₁, X₃: X₃+10 {O(n)}
t₁, X₄: 2⋅X₄ {O(n)}
t₂, X₀: 2⋅X₀ {O(n)}
t₂, X₁: 3⋅X₀ {O(n)}
t₂, X₂: 3⋅X₄ {O(n)}
t₂, X₃: 5 {O(1)}
t₂, X₄: 2⋅X₄ {O(n)}
t₃, X₀: 2⋅X₀ {O(n)}
t₃, X₁: 2⋅X₀ {O(n)}
t₃, X₂: 3⋅X₄ {O(n)}
t₃, X₃: 5 {O(1)}
t₃, X₄: 2⋅X₄ {O(n)}
t₄, X₀: 2⋅X₀ {O(n)}
t₄, X₃: X₃+10 {O(n)}
t₄, X₄: 2⋅X₄ {O(n)}
t₅, X₀: 2⋅X₀ {O(n)}
t₅, X₃: X₃+10 {O(n)}
t₅, X₄: 2⋅X₄ {O(n)}
t₇, X₀: 2⋅X₀ {O(n)}
t₇, X₃: X₃+10 {O(n)}
t₇, X₄: 2⋅X₄ {O(n)}
t₆, X₀: 2⋅X₀ {O(n)}
t₆, X₃: X₃+10 {O(n)}
t₆, X₄: 2⋅X₄ {O(n)}