Initial Problem

Start: l0
Program_Vars: X₀, X₁, X₂, X₃, X₄
Temp_Vars:
Locations: l0, l1, l2
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 < X₂
t₃: l2(X₀, X₁, X₂, X₃, X₄) → l1(X₃, X₄, X₂-1, X₃, X₄)
t₂: l2(X₀, X₁, X₂, X₃, X₄) → l2(5⋅X₀+(X₂)², 2⋅X₁, X₂, X₃, X₄) :|: X₀ < X₁ ∧ 0 < X₀

Preprocessing

Found invariant X₄ ≤ X₁ ∧ X₃ ≤ X₀ ∧ 1 ≤ X₂ for location l2

Found invariant X₄ ≤ X₁ ∧ X₁ ≤ X₄ ∧ X₃ ≤ X₀ ∧ X₀ ≤ X₃ for location l1

Problem after Preprocessing

Start: l0
Program_Vars: X₀, X₁, X₂, X₃, X₄
Temp_Vars:
Locations: l0, l1, l2
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 < X₂ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₄ ∧ X₃ ≤ X₀ ∧ X₀ ≤ X₃
t₃: l2(X₀, X₁, X₂, X₃, X₄) → l1(X₃, X₄, X₂-1, X₃, X₄) :|: X₄ ≤ X₁ ∧ X₃ ≤ X₀ ∧ 1 ≤ X₂
t₂: l2(X₀, X₁, X₂, X₃, X₄) → l2(5⋅X₀+(X₂)², 2⋅X₁, X₂, X₃, X₄) :|: X₀ < X₁ ∧ 0 < X₀ ∧ X₄ ≤ X₁ ∧ X₃ ≤ X₀ ∧ 1 ≤ X₂

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

new bound:

X₂ {O(n)}

MPRF:

l2 [X₂-1 ]
l1 [X₂ ]

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

new bound:

X₂ {O(n)}

MPRF:

l2 [X₂ ]
l1 [X₂ ]

Analysing control-flow refined program

Found invariant X₄ ≤ X₁ ∧ X₁ ≤ X₄ ∧ X₃ ≤ X₀ ∧ X₀ ≤ X₃ ∧ 1 ≤ X₂ for location l2

Found invariant 2 ≤ X₄ ∧ 3 ≤ X₃+X₄ ∧ 3 ≤ X₂+X₄ ∧ 5 ≤ X₁+X₄ ∧ 1 ≤ X₃ ∧ 2 ≤ X₂+X₃ ∧ 4 ≤ X₁+X₃ ∧ 1 ≤ X₂ ∧ 4 ≤ X₁+X₂ ∧ 3 ≤ X₁ for location n_l2___1

Found invariant X₄ ≤ X₁ ∧ X₁ ≤ X₄ ∧ X₃ ≤ X₀ ∧ X₀ ≤ X₃ for location l1

knowledge_propagation leads to new time bound X₂ {O(n)} for transition t₃₆: l2(X₀, X₁, X₂, X₃, X₄) → n_l2___1(NoDet0, Arg1_P, X₂, X₃, Arg4_P) :|: X₃ ≤ X₀ ∧ X₄ ≤ X₁ ∧ X₃ ≤ X₀ ∧ 2⋅Arg4_P ≤ Arg1_P ∧ 1 ≤ X₂ ∧ 2⋅X₀ < Arg1_P ∧ 0 < X₀ ∧ 2⋅X₁ ≤ Arg1_P ∧ Arg1_P ≤ 2⋅X₁ ∧ X₄ ≤ Arg4_P ∧ Arg4_P ≤ X₄ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₄ ∧ X₃ ≤ X₀ ∧ X₀ ≤ X₃ ∧ 1 ≤ X₂

MPRF for transition t₃₉: n_l2___1(X₀, X₁, X₂, X₃, X₄) → l1(X₃, X₄, X₂-1, X₃, X₄) :|: X₄ ≤ X₁ ∧ X₃ ≤ X₀ ∧ 1 ≤ X₂ ∧ 2 ≤ X₄ ∧ 3 ≤ X₃+X₄ ∧ 3 ≤ X₂+X₄ ∧ 5 ≤ X₁+X₄ ∧ 1 ≤ X₃ ∧ 2 ≤ X₂+X₃ ∧ 4 ≤ X₁+X₃ ∧ 1 ≤ X₂ ∧ 4 ≤ X₁+X₂ ∧ 3 ≤ X₁ of depth 1:

new bound:

X₂ {O(n)}

MPRF:

l2 [X₂ ]
n_l2___1 [X₂ ]
l1 [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₂: inf {Infinity}
t₃: X₂ {O(n)}

Costbounds

Overall costbound: inf {Infinity}
t₀: 1 {O(1)}
t₁: X₂ {O(n)}
t₂: inf {Infinity}
t₃: X₂ {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₀: 3⋅X₃ {O(n)}
t₁, X₁: 3⋅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₄: X₄ {O(n)}
t₃, X₀: 2⋅X₃ {O(n)}
t₃, X₁: 2⋅X₄ {O(n)}
t₃, X₂: X₂ {O(n)}
t₃, X₃: X₃ {O(n)}
t₃, X₄: X₄ {O(n)}