Initial Problem

Start: eval_foo_start
Program_Vars: 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₁) → eval_foo_bb1_in(3, X₁)
t₂: eval_foo_bb1_in(X₀, X₁) → eval_foo_bb2_in(X₀, X₁) :|: 3 ≤ X₀
t₃: eval_foo_bb1_in(X₀, X₁) → eval_foo_bb5_in(X₀, X₁) :|: X₀ ≤ 2
t₄: eval_foo_bb2_in(X₀, X₁) → eval_foo_bb3_in(X₀, X₁) :|: 6 ≤ X₀
t₅: eval_foo_bb2_in(X₀, X₁) → eval_foo_bb4_in(X₀, X₁) :|: X₀ ≤ 5
t₆: eval_foo_bb3_in(X₀, X₁) → eval_foo_bb1_in(3+X₀, X₁)
t₇: eval_foo_bb4_in(X₀, X₁) → eval_foo_bb1_in(X₀-2, X₁) :|: 11 ≤ X₀
t₈: eval_foo_bb4_in(X₀, X₁) → eval_foo_bb1_in(1+X₀, X₁) :|: X₀ ≤ 10
t₉: eval_foo_bb5_in(X₀, X₁) → eval_foo_stop(X₀, X₁)
t₀: eval_foo_start(X₀, X₁) → eval_foo_bb0_in(X₀, X₁)

Preprocessing

Cut unsatisfiable transition [t₇: eval_foo_bb4_in→eval_foo_bb1_in]

Eliminate variables [X₁] that do not contribute to the problem

Found invariant 1 ≤ 0 for location eval_foo_bb5_in

Found invariant 3 ≤ X₀ for location eval_foo_bb2_in

Found invariant 3 ≤ X₀ for location eval_foo_bb1_in

Found invariant 1 ≤ 0 for location eval_foo_stop

Found invariant 6 ≤ X₀ for location eval_foo_bb3_in

Found invariant X₀ ≤ 5 ∧ 3 ≤ X₀ for location eval_foo_bb4_in

Cut unsatisfiable transition [t₂₁: eval_foo_bb1_in→eval_foo_bb5_in; t₂₆: eval_foo_bb5_in→eval_foo_stop]

Cut unreachable locations [eval_foo_bb5_in; eval_foo_stop] from the program graph

Problem after Preprocessing

Start: eval_foo_start
Program_Vars: 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_start
Transitions:
t₁₉: eval_foo_bb0_in(X₀) → eval_foo_bb1_in(3)
t₂₀: eval_foo_bb1_in(X₀) → eval_foo_bb2_in(X₀) :|: 3 ≤ X₀
t₂₂: eval_foo_bb2_in(X₀) → eval_foo_bb3_in(X₀) :|: 6 ≤ X₀ ∧ 3 ≤ X₀
t₂₃: eval_foo_bb2_in(X₀) → eval_foo_bb4_in(X₀) :|: X₀ ≤ 5 ∧ 3 ≤ X₀
t₂₄: eval_foo_bb3_in(X₀) → eval_foo_bb1_in(3+X₀) :|: 6 ≤ X₀
t₂₅: eval_foo_bb4_in(X₀) → eval_foo_bb1_in(1+X₀) :|: X₀ ≤ 10 ∧ X₀ ≤ 5 ∧ 3 ≤ X₀
t₂₇: eval_foo_start(X₀) → eval_foo_bb0_in(X₀)

MPRF for transition t₂₃: eval_foo_bb2_in(X₀) → eval_foo_bb4_in(X₀) :|: X₀ ≤ 5 ∧ 3 ≤ X₀ of depth 1:

new bound:

9 {O(1)}

MPRF:

• eval_foo_bb1_in: [6-X₀]
• eval_foo_bb2_in: [6-X₀]
• eval_foo_bb3_in: [3-X₀]
• eval_foo_bb4_in: [5-X₀]

MPRF for transition t₂₅: eval_foo_bb4_in(X₀) → eval_foo_bb1_in(1+X₀) :|: X₀ ≤ 10 ∧ X₀ ≤ 5 ∧ 3 ≤ X₀ of depth 1:

new bound:

14 {O(1)}

MPRF:

• eval_foo_bb1_in: [11-X₀]
• eval_foo_bb2_in: [11-X₀]
• eval_foo_bb3_in: [8-X₀]
• eval_foo_bb4_in: [11-X₀]

Found invariant 9 ≤ X₀ for location eval_foo_bb3_in_v2

Found invariant X₀ ≤ 5 ∧ 4 ≤ X₀ for location eval_foo_bb4_in_v2

Found invariant 9 ≤ X₀ for location eval_foo_bb1_in_v1

Found invariant X₀ ≤ 6 ∧ 4 ≤ X₀ for location eval_foo_bb1_in_v2

Found invariant 9 ≤ X₀ for location eval_foo_bb2_in_v2

Found invariant X₀ ≤ 3 ∧ 3 ≤ X₀ for location eval_foo_bb1_in

Found invariant X₀ ≤ 3 ∧ 3 ≤ X₀ for location eval_foo_bb2_in_v1

Found invariant X₀ ≤ 6 ∧ 6 ≤ X₀ for location eval_foo_bb3_in_v3

Found invariant X₀ ≤ 3 ∧ 3 ≤ X₀ for location eval_foo_bb4_in_v1

Found invariant X₀ ≤ 6 ∧ 4 ≤ X₀ for location eval_foo_bb2_in_v3

Found invariant 1 ≤ 0 for location eval_foo_bb3_in_v1

Cut unsatisfiable transition [t₅₅: eval_foo_bb2_in_v1→eval_foo_bb3_in_v1; t₅₆: eval_foo_bb3_in_v1→eval_foo_bb1_in_v1]

Cut unreachable locations [eval_foo_bb3_in_v1] from the program graph

All Bounds

Timebounds

Overall timebound:inf {Infinity}
t₁₉: 1 {O(1)}
t₂₀: inf {Infinity}
t₂₂: inf {Infinity}
t₂₃: 9 {O(1)}
t₂₄: inf {Infinity}
t₂₅: 14 {O(1)}
t₂₇: 1 {O(1)}

Costbounds

Overall costbound: inf {Infinity}
t₁₉: 1 {O(1)}
t₂₀: inf {Infinity}
t₂₂: inf {Infinity}
t₂₃: 9 {O(1)}
t₂₄: inf {Infinity}
t₂₅: 14 {O(1)}
t₂₇: 1 {O(1)}

Sizebounds

t₁₉, X₀: 3 {O(1)}
t₂₃, X₀: 5 {O(1)}
t₂₅, X₀: 6 {O(1)}
t₂₇, X₀: X₀ {O(n)}