Initial Problem

Start: eval_foo_start
Program_Vars: X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉
Temp_Vars:
Locations: eval_foo_bb0_in, eval_foo_bb1_in, eval_foo_bb2_in, eval_foo_bb3_in, eval_foo_bb4_in, eval_foo_bb5_in, eval_foo_start, eval_foo_stop
Transitions:
t₁: eval_foo_bb0_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉) → eval_foo_bb1_in(X₉, X₈, X₇, X₃, X₄, X₅, X₆, X₇, X₈, X₉)
t₂: eval_foo_bb1_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉) → eval_foo_bb2_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉) :|: X₁ ≤ X₂
t₃: eval_foo_bb1_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉) → eval_foo_bb5_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉) :|: 1+X₂ ≤ X₁
t₄: eval_foo_bb2_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉) → eval_foo_bb3_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉) :|: 2 ≤ X₀
t₅: eval_foo_bb2_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉) → eval_foo_bb4_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉) :|: X₀ ≤ 1
t₆: eval_foo_bb3_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉) → eval_foo_bb1_in(X₀-1, X₁, X₀+X₂-1, X₃, X₄, X₅, X₆, X₇, X₈, X₉)
t₇: eval_foo_bb4_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉) → eval_foo_bb1_in(X₀, 1+X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉)
t₈: eval_foo_bb5_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉) → eval_foo_stop(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉)
t₀: eval_foo_start(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉) → eval_foo_bb0_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉)

Preprocessing

Eliminate variables [X₃; X₄; X₅; X₆] that do not contribute to the problem

Found invariant X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₃ ≤ X₂ ∧ 1+X₃ ≤ X₁ ∧ 1+X₂ ≤ X₁ for location eval_foo_bb5_in

Found invariant X₀ ≤ X₅ ∧ X₄ ≤ X₂ ∧ X₄ ≤ X₁ ∧ X₃ ≤ X₂ ∧ X₁ ≤ X₂ for location eval_foo_bb2_in

Found invariant X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₃ ≤ X₂ for location eval_foo_bb1_in

Found invariant X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₃ ≤ X₂ ∧ 1+X₃ ≤ X₁ ∧ 1+X₂ ≤ X₁ for location eval_foo_stop

Found invariant 2 ≤ X₅ ∧ 4 ≤ X₀+X₅ ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₂ ∧ X₄ ≤ X₁ ∧ X₃ ≤ X₂ ∧ X₁ ≤ X₂ ∧ 2 ≤ X₀ for location eval_foo_bb3_in

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

Problem after Preprocessing

Start: eval_foo_start
Program_Vars: X₀, X₁, X₂, X₃, X₄, X₅
Temp_Vars:
Locations: eval_foo_bb0_in, eval_foo_bb1_in, eval_foo_bb2_in, eval_foo_bb3_in, eval_foo_bb4_in, eval_foo_bb5_in, eval_foo_start, eval_foo_stop
Transitions:
t₁₇: eval_foo_bb0_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb1_in(X₅, X₄, X₃, X₃, X₄, X₅)
t₁₈: eval_foo_bb1_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb2_in(X₀, X₁, X₂, X₃, X₄, X₅) :|: X₁ ≤ X₂ ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₃ ≤ X₂
t₁₉: eval_foo_bb1_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb5_in(X₀, X₁, X₂, X₃, X₄, X₅) :|: 1+X₂ ≤ X₁ ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₃ ≤ X₂
t₂₀: eval_foo_bb2_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb3_in(X₀, X₁, X₂, X₃, X₄, X₅) :|: 2 ≤ X₀ ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₂ ∧ X₃ ≤ X₂ ∧ X₄ ≤ X₂
t₂₁: eval_foo_bb2_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb4_in(X₀, X₁, X₂, X₃, X₄, X₅) :|: X₀ ≤ 1 ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₂ ∧ X₃ ≤ X₂ ∧ X₄ ≤ X₂
t₂₂: eval_foo_bb3_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb1_in(X₀-1, X₁, X₀+X₂-1, X₃, X₄, X₅) :|: 2 ≤ X₀ ∧ 2 ≤ X₅ ∧ 4 ≤ X₀+X₅ ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₂ ∧ X₃ ≤ X₂ ∧ X₄ ≤ X₂
t₂₃: eval_foo_bb4_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb1_in(X₀, 1+X₁, X₂, X₃, X₄, X₅) :|: X₀ ≤ 1 ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₂ ∧ X₃ ≤ X₂ ∧ X₄ ≤ X₂
t₂₄: eval_foo_bb5_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_stop(X₀, X₁, X₂, X₃, X₄, X₅) :|: 1+X₂ ≤ X₁ ∧ 1+X₃ ≤ X₁ ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₃ ≤ X₂
t₂₅: eval_foo_start(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb0_in(X₀, X₁, X₂, X₃, X₄, X₅)

MPRF for transition t₂₀: eval_foo_bb2_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb3_in(X₀, X₁, X₂, X₃, X₄, X₅) :|: 2 ≤ X₀ ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₂ ∧ X₃ ≤ X₂ ∧ X₄ ≤ X₂ of depth 1:

new bound:

X₅+1 {O(n)}

MPRF:

• eval_foo_bb1_in: [X₀-1]
• eval_foo_bb2_in: [X₀-1]
• eval_foo_bb3_in: [X₀-2]
• eval_foo_bb4_in: [X₀-1]

MPRF for transition t₂₂: eval_foo_bb3_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb1_in(X₀-1, X₁, X₀+X₂-1, X₃, X₄, X₅) :|: 2 ≤ X₀ ∧ 2 ≤ X₅ ∧ 4 ≤ X₀+X₅ ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₂ ∧ X₃ ≤ X₂ ∧ X₄ ≤ X₂ of depth 1:

new bound:

X₅+1 {O(n)}

MPRF:

• eval_foo_bb1_in: [X₀-1]
• eval_foo_bb2_in: [X₀-1]
• eval_foo_bb3_in: [X₀-1]
• eval_foo_bb4_in: [X₀-1]

MPRF for transition t₁₈: eval_foo_bb1_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb2_in(X₀, X₁, X₂, X₃, X₄, X₅) :|: X₁ ≤ X₂ ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₃ ≤ X₂ of depth 1:

new bound:

X₅⋅X₅⋅X₅+4⋅X₅⋅X₅+X₃⋅X₅+X₄⋅X₅+2⋅X₃+2⋅X₄+3⋅X₅+1 {O(n^3)}

MPRF:

• eval_foo_bb1_in: [1+X₂-X₁]
• eval_foo_bb2_in: [X₂-X₁]
• eval_foo_bb3_in: [X₀+X₂-X₄]
• eval_foo_bb4_in: [X₂-X₁]

MPRF for transition t₂₁: eval_foo_bb2_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb4_in(X₀, X₁, X₂, X₃, X₄, X₅) :|: X₀ ≤ 1 ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₂ ∧ X₃ ≤ X₂ ∧ X₄ ≤ X₂ of depth 1:

new bound:

X₅⋅X₅⋅X₅+4⋅X₅⋅X₅+X₃⋅X₅+X₄⋅X₅+2⋅X₃+2⋅X₄+3⋅X₅+1 {O(n^3)}

MPRF:

• eval_foo_bb1_in: [1+X₂-X₁]
• eval_foo_bb2_in: [1+X₂-X₁]
• eval_foo_bb3_in: [X₀+X₂-X₄]
• eval_foo_bb4_in: [X₂-X₁]

MPRF for transition t₂₃: eval_foo_bb4_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb1_in(X₀, 1+X₁, X₂, X₃, X₄, X₅) :|: X₀ ≤ 1 ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₂ ∧ X₃ ≤ X₂ ∧ X₄ ≤ X₂ of depth 1:

new bound:

X₅⋅X₅⋅X₅+4⋅X₅⋅X₅+X₃⋅X₅+X₄⋅X₅+2⋅X₃+2⋅X₄+3⋅X₅+1 {O(n^3)}

MPRF:

• eval_foo_bb1_in: [1+X₂-X₁]
• eval_foo_bb2_in: [1+X₂-X₁]
• eval_foo_bb3_in: [X₀+X₂-X₄]
• eval_foo_bb4_in: [1+X₂-X₁]

Cut unreachable locations [eval_foo_bb2_in] from the program graph

Found invariant X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₃ ≤ X₂ ∧ 1+X₃ ≤ X₁ ∧ 1+X₂ ≤ X₁ for location eval_foo_bb5_in

Found invariant X₀ ≤ X₅ ∧ 1+X₄ ≤ X₂ ∧ 1+X₄ ≤ X₁ ∧ X₃ ≤ X₂ ∧ X₁ ≤ X₂ ∧ X₀ ≤ 1 for location eval_foo_bb4_in_v2

Found invariant X₀ ≤ X₅ ∧ X₄ ≤ X₂ ∧ 1+X₄ ≤ X₁ ∧ X₃ ≤ X₂ ∧ X₁ ≤ 1+X₂ ∧ X₀ ≤ 1 for location eval_foo_bb1_in_v1

Found invariant X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₃ ≤ X₂ ∧ 1+X₃ ≤ X₁ ∧ 1+X₂ ≤ X₁ for location eval_foo_stop

Found invariant 2 ≤ X₅ ∧ 4 ≤ X₀+X₅ ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₂ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₄ ∧ X₃ ≤ X₂ ∧ X₁ ≤ X₂ ∧ 2 ≤ X₀ for location eval_foo_bb3_in

Found invariant X₀ ≤ X₅ ∧ 1+X₄ ≤ X₂ ∧ 1+X₄ ≤ X₁ ∧ X₃ ≤ X₂ ∧ X₁ ≤ X₂ ∧ X₀ ≤ 1 for location eval_foo_bb2_in_v2

Found invariant X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₄ ∧ X₃ ≤ X₂ for location eval_foo_bb1_in

Found invariant X₀ ≤ X₅ ∧ X₄ ≤ X₂ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₄ ∧ X₃ ≤ X₂ ∧ X₁ ≤ X₂ for location eval_foo_bb2_in_v1

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

Analysing control-flow refined program

knowledge_propagation leads to new time bound X₅+2 {O(n)} for transition t₄₆: eval_foo_bb1_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb2_in_v1(X₀, X₁, X₂, X₃, X₄, X₅) :|: X₁ ≤ X₂ ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₄ ∧ X₃ ≤ X₂

knowledge_propagation leads to new time bound X₅+2 {O(n)} for transition t₄₈: eval_foo_bb2_in_v1(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb3_in(X₀, X₁, X₂, X₃, X₄, X₅) :|: 2 ≤ X₀ ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₂ ∧ X₁ ≤ X₄ ∧ X₃ ≤ X₂ ∧ X₄ ≤ X₂

MPRF for transition t₅₁: eval_foo_bb1_in_v1(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb2_in_v2(X₀, X₁, X₂, X₃, X₄, X₅) :|: X₁ ≤ X₂ ∧ X₀ ≤ 1 ∧ X₁ ≤ 1+X₂ ∧ 1+X₄ ≤ X₁ ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₃ ≤ X₂ ∧ X₄ ≤ X₂ of depth 1:

new bound:

X₅⋅X₅+2⋅X₅+X₃+X₄+2 {O(n^2)}

MPRF:

• eval_foo_bb1_in_v1: [1+X₂-X₁]
• eval_foo_bb2_in_v2: [X₂-X₁]
• eval_foo_bb4_in_v2: [X₂-X₁]

MPRF for transition t₅₂: eval_foo_bb2_in_v2(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb4_in_v2(X₀, X₁, X₂, X₃, X₄, X₅) :|: X₀ ≤ 1 ∧ 1+X₄ ≤ X₁ ∧ 1+X₄ ≤ X₂ ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₂ ∧ X₃ ≤ X₂ ∧ X₄ ≤ X₂ of depth 1:

new bound:

X₅⋅X₅+2⋅X₅+X₃+X₄+2 {O(n^2)}

MPRF:

• eval_foo_bb1_in_v1: [1+X₂-X₁]
• eval_foo_bb2_in_v2: [1+X₂-X₁]
• eval_foo_bb4_in_v2: [X₂-X₁]

MPRF for transition t₅₃: eval_foo_bb4_in_v2(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb1_in_v1(X₀, 1+X₁, X₂, X₃, X₄, X₅) :|: X₀ ≤ 1 ∧ 1+X₄ ≤ X₁ ∧ 1+X₄ ≤ X₂ ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₂ ∧ X₃ ≤ X₂ ∧ X₄ ≤ X₂ of depth 1:

new bound:

X₅⋅X₅+2⋅X₅+X₃+X₄+2 {O(n^2)}

MPRF:

• eval_foo_bb1_in_v1: [1+X₂-X₁]
• eval_foo_bb2_in_v2: [1+X₂-X₁]
• eval_foo_bb4_in_v2: [1+X₂-X₁]

CFR: Improvement to new bound with the following program:

method: PartialEvaluation new bound:

O(n^2)

cfr-program:

Start: eval_foo_start
Program_Vars: X₀, X₁, X₂, X₃, X₄, X₅
Temp_Vars:
Locations: eval_foo_bb0_in, eval_foo_bb1_in, eval_foo_bb1_in_v1, eval_foo_bb2_in_v1, eval_foo_bb2_in_v2, eval_foo_bb3_in, eval_foo_bb4_in_v1, eval_foo_bb4_in_v2, eval_foo_bb5_in, eval_foo_start, eval_foo_stop
Transitions:
t₁₇: eval_foo_bb0_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb1_in(X₅, X₄, X₃, X₃, X₄, X₅)
t₄₆: eval_foo_bb1_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb2_in_v1(X₀, X₁, X₂, X₃, X₄, X₅) :|: X₁ ≤ X₂ ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₄ ∧ X₃ ≤ X₂
t₁₉: eval_foo_bb1_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb5_in(X₀, X₁, X₂, X₃, X₄, X₅) :|: 1+X₂ ≤ X₁ ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₄ ∧ X₃ ≤ X₂
t₄₅: eval_foo_bb1_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb5_in(X₀, X₁, X₂, X₃, X₄, X₅) :|: 1+X₂ ≤ X₁ ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₄ ∧ X₃ ≤ X₂
t₅₁: eval_foo_bb1_in_v1(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb2_in_v2(X₀, X₁, X₂, X₃, X₄, X₅) :|: X₁ ≤ X₂ ∧ X₀ ≤ 1 ∧ X₁ ≤ 1+X₂ ∧ 1+X₄ ≤ X₁ ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₃ ≤ X₂ ∧ X₄ ≤ X₂
t₅₀: eval_foo_bb1_in_v1(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb5_in(X₀, X₁, X₂, X₃, X₄, X₅) :|: 1+X₂ ≤ X₁ ∧ X₀ ≤ 1 ∧ X₁ ≤ 1+X₂ ∧ 1+X₄ ≤ X₁ ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₃ ≤ X₂ ∧ X₄ ≤ X₂
t₄₈: eval_foo_bb2_in_v1(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb3_in(X₀, X₁, X₂, X₃, X₄, X₅) :|: 2 ≤ X₀ ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₂ ∧ X₁ ≤ X₄ ∧ X₃ ≤ X₂ ∧ X₄ ≤ X₂
t₄₇: eval_foo_bb2_in_v1(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb4_in_v1(X₀, X₁, X₂, X₃, X₄, X₅) :|: X₀ ≤ 1 ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₂ ∧ X₁ ≤ X₄ ∧ X₃ ≤ X₂ ∧ X₄ ≤ X₂
t₅₂: eval_foo_bb2_in_v2(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb4_in_v2(X₀, X₁, X₂, X₃, X₄, X₅) :|: X₀ ≤ 1 ∧ 1+X₄ ≤ X₁ ∧ 1+X₄ ≤ X₂ ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₂ ∧ X₃ ≤ X₂ ∧ X₄ ≤ X₂
t₂₂: eval_foo_bb3_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb1_in(X₀-1, X₁, X₀+X₂-1, X₃, X₄, X₅) :|: 2 ≤ X₀ ∧ 2 ≤ X₅ ∧ 4 ≤ X₀+X₅ ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₂ ∧ X₁ ≤ X₄ ∧ X₃ ≤ X₂ ∧ X₄ ≤ X₂
t₄₉: eval_foo_bb4_in_v1(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb1_in_v1(X₀, 1+X₁, X₂, X₃, X₄, X₅) :|: X₀ ≤ 1 ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₂ ∧ X₁ ≤ X₄ ∧ X₃ ≤ X₂ ∧ X₄ ≤ X₂
t₅₃: eval_foo_bb4_in_v2(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb1_in_v1(X₀, 1+X₁, X₂, X₃, X₄, X₅) :|: X₀ ≤ 1 ∧ 1+X₄ ≤ X₁ ∧ 1+X₄ ≤ X₂ ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₁ ≤ X₂ ∧ X₃ ≤ X₂ ∧ X₄ ≤ X₂
t₂₄: eval_foo_bb5_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_stop(X₀, X₁, X₂, X₃, X₄, X₅) :|: 1+X₂ ≤ X₁ ∧ 1+X₃ ≤ X₁ ∧ X₀ ≤ X₅ ∧ X₄ ≤ X₁ ∧ X₃ ≤ X₂
t₂₅: eval_foo_start(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb0_in(X₀, X₁, X₂, X₃, X₄, X₅)

All Bounds

Timebounds

Overall timebound:3⋅X₅⋅X₅+3⋅X₃+3⋅X₄+9⋅X₅+19 {O(n^2)}
t₁₇: 1 {O(1)}
t₁₉: 1 {O(1)}
t₂₂: X₅+1 {O(n)}
t₂₄: 1 {O(1)}
t₂₅: 1 {O(1)}
t₄₅: 1 {O(1)}
t₄₆: X₅+2 {O(n)}
t₄₇: 1 {O(1)}
t₄₈: X₅+2 {O(n)}
t₄₉: 1 {O(1)}
t₅₀: 1 {O(1)}
t₅₁: X₅⋅X₅+2⋅X₅+X₃+X₄+2 {O(n^2)}
t₅₂: X₅⋅X₅+2⋅X₅+X₃+X₄+2 {O(n^2)}
t₅₃: X₅⋅X₅+2⋅X₅+X₃+X₄+2 {O(n^2)}

Costbounds

Overall costbound: 3⋅X₅⋅X₅+3⋅X₃+3⋅X₄+9⋅X₅+19 {O(n^2)}
t₁₇: 1 {O(1)}
t₁₉: 1 {O(1)}
t₂₂: X₅+1 {O(n)}
t₂₄: 1 {O(1)}
t₂₅: 1 {O(1)}
t₄₅: 1 {O(1)}
t₄₆: X₅+2 {O(n)}
t₄₇: 1 {O(1)}
t₄₈: X₅+2 {O(n)}
t₄₉: 1 {O(1)}
t₅₀: 1 {O(1)}
t₅₁: X₅⋅X₅+2⋅X₅+X₃+X₄+2 {O(n^2)}
t₅₂: X₅⋅X₅+2⋅X₅+X₃+X₄+2 {O(n^2)}
t₅₃: X₅⋅X₅+2⋅X₅+X₃+X₄+2 {O(n^2)}

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₀: 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₁: X₄ {O(n)}
t₂₂, X₂: X₅⋅X₅+2⋅X₅+X₃ {O(n^2)}
t₂₂, X₃: X₃ {O(n)}
t₂₂, X₄: X₄ {O(n)}
t₂₂, X₅: X₅ {O(n)}
t₂₄, X₀: 4⋅X₅ {O(n)}
t₂₄, X₁: X₅⋅X₅+2⋅X₅+5⋅X₄+X₃+5 {O(n^2)}
t₂₄, X₂: 2⋅X₅⋅X₅+4⋅X₃+4⋅X₅ {O(n^2)}
t₂₄, X₃: 4⋅X₃ {O(n)}
t₂₄, X₄: 4⋅X₄ {O(n)}
t₂₄, X₅: 4⋅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₀: 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₁: X₄ {O(n)}
t₄₆, X₂: X₅⋅X₅+2⋅X₅+X₃ {O(n^2)}
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₅⋅X₅+2⋅X₅+X₃ {O(n^2)}
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₅⋅X₅+2⋅X₅+X₃ {O(n^2)}
t₄₈, X₃: X₃ {O(n)}
t₄₈, X₄: X₄ {O(n)}
t₄₈, X₅: X₅ {O(n)}
t₄₉, X₀: X₅ {O(n)}
t₄₉, X₁: X₄+1 {O(n)}
t₄₉, X₂: X₅⋅X₅+2⋅X₅+X₃ {O(n^2)}
t₄₉, X₃: X₃ {O(n)}
t₄₉, X₄: X₄ {O(n)}
t₄₉, X₅: X₅ {O(n)}
t₅₀, X₀: 2⋅X₅ {O(n)}
t₅₀, X₁: X₅⋅X₅+2⋅X₅+3⋅X₄+X₃+5 {O(n^2)}
t₅₀, X₂: 2⋅X₅⋅X₅+2⋅X₃+4⋅X₅ {O(n^2)}
t₅₀, X₃: 2⋅X₃ {O(n)}
t₅₀, X₄: 2⋅X₄ {O(n)}
t₅₀, X₅: 2⋅X₅ {O(n)}
t₅₁, X₀: X₅ {O(n)}
t₅₁, X₁: X₅⋅X₅+2⋅X₄+2⋅X₅+X₃+4 {O(n^2)}
t₅₁, X₂: X₅⋅X₅+2⋅X₅+X₃ {O(n^2)}
t₅₁, X₃: X₃ {O(n)}
t₅₁, X₄: X₄ {O(n)}
t₅₁, X₅: X₅ {O(n)}
t₅₂, X₀: X₅ {O(n)}
t₅₂, X₁: X₅⋅X₅+2⋅X₄+2⋅X₅+X₃+4 {O(n^2)}
t₅₂, X₂: X₅⋅X₅+2⋅X₅+X₃ {O(n^2)}
t₅₂, X₃: X₃ {O(n)}
t₅₂, X₄: X₄ {O(n)}
t₅₂, X₅: X₅ {O(n)}
t₅₃, X₀: X₅ {O(n)}
t₅₃, X₁: X₅⋅X₅+2⋅X₄+2⋅X₅+X₃+4 {O(n^2)}
t₅₃, X₂: X₅⋅X₅+2⋅X₅+X₃ {O(n^2)}
t₅₃, X₃: X₃ {O(n)}
t₅₃, X₄: X₄ {O(n)}
t₅₃, X₅: X₅ {O(n)}