Initial Problem
Start: eval_foo_start
Program_Vars: 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_bb6_in, eval_foo_bb7_in, eval_foo_bb8_in, eval_foo_bb9_in, eval_foo_start, eval_foo_stop
Transitions:
t₁: eval_foo_bb0_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈) → eval_foo_bb1_in(X₆, X₈, X₂, X₃, X₄, X₅, X₆, X₇, X₈)
t₂: eval_foo_bb1_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈) → eval_foo_bb2_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈) :|: 1 ≤ X₀ ∧ 1 ≤ X₁
t₃: eval_foo_bb1_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈) → eval_foo_bb9_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈) :|: X₁ ≤ 0
t₄: eval_foo_bb1_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈) → eval_foo_bb9_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈) :|: X₀ ≤ 0
t₆: eval_foo_bb2_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈) → eval_foo_bb3_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈) :|: 1+X₁ ≤ 0
t₇: eval_foo_bb2_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈) → eval_foo_bb3_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈) :|: 1 ≤ X₁
t₅: eval_foo_bb2_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈) → eval_foo_bb4_in(X₀, X₁, X₀, X₃, X₄, X₅, X₆, X₇, X₈) :|: 0 ≤ X₁ ∧ X₁ ≤ 0
t₈: eval_foo_bb3_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈) → eval_foo_bb4_in(X₀, X₁, -X₀, X₃, X₄, X₅, X₆, X₇, X₈) :|: 1+X₁ ≤ 0
t₉: eval_foo_bb3_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈) → eval_foo_bb4_in(X₀, X₁, X₀, X₃, X₄, X₅, X₆, X₇, X₈) :|: 0 ≤ X₁
t₁₀: eval_foo_bb4_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈) → eval_foo_bb5_in(X₀, X₁, X₂, X₂, X₄, X₅, X₆, X₇, X₈) :|: 1 ≤ X₂
t₁₁: eval_foo_bb4_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈) → eval_foo_bb7_in(X₀, X₁, X₂, X₃, X₂, X₅, X₆, X₇, X₈) :|: X₂ ≤ 0
t₁₃: eval_foo_bb5_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈) → eval_foo_bb1_in(X₁, X₃, X₂, X₃, X₄, X₅, X₆, X₇, X₈) :|: 1+X₃ ≤ X₁
t₁₂: eval_foo_bb5_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈) → eval_foo_bb6_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈) :|: X₁ ≤ X₃
t₁₄: eval_foo_bb6_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈) → eval_foo_bb5_in(X₀, X₁, X₂, X₃-X₁, X₄, X₅, X₆, X₇, X₈)
t₁₆: eval_foo_bb7_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈) → eval_foo_bb1_in(X₁, X₄, X₂, X₃, X₄, X₅, X₆, X₇, X₈) :|: 0 ≤ X₄
t₁₅: eval_foo_bb7_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈) → eval_foo_bb8_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈) :|: 1+X₄ ≤ 0
t₁₇: eval_foo_bb8_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈) → eval_foo_bb7_in(X₀, X₁, X₂, X₃, X₄-X₁, X₅, X₆, X₇, X₈)
t₁₈: eval_foo_bb9_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈) → eval_foo_stop(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈)
t₀: eval_foo_start(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈) → eval_foo_bb0_in(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈)
Preprocessing
Cut unsatisfiable transition [t₅: eval_foo_bb2_in→eval_foo_bb4_in; t₆: eval_foo_bb2_in→eval_foo_bb3_in]
Eliminate variables [X₅; X₇] that do not contribute to the problem
Found invariant 1 ≤ X₆ ∧ 1 ≤ X₃+X₆ ∧ 2 ≤ X₂+X₆ ∧ 2 ≤ X₁+X₆ ∧ X₁ ≤ X₆ ∧ 2 ≤ X₀+X₆ ∧ X₃ ≤ X₂ ∧ X₃ ≤ X₀ ∧ 1 ≤ X₂+X₃ ∧ 1 ≤ X₁+X₃ ∧ 1 ≤ X₀+X₃ ∧ X₂ ≤ X₀ ∧ 1 ≤ X₂ ∧ 2 ≤ X₁+X₂ ∧ 2 ≤ X₀+X₂ ∧ X₀ ≤ X₂ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ 1 ≤ X₀ for location eval_foo_bb5_in
Found invariant 1 ≤ 0 for location eval_foo_bb7_in
Found invariant X₁ ≤ X₆ for location eval_foo_stop
Found invariant 1 ≤ X₆ ∧ 2 ≤ X₁+X₆ ∧ X₁ ≤ X₆ ∧ 2 ≤ X₀+X₆ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ 1 ≤ X₀ for location eval_foo_bb3_in
Found invariant 1 ≤ X₆ ∧ 2 ≤ X₁+X₆ ∧ X₁ ≤ X₆ ∧ 2 ≤ X₀+X₆ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ 1 ≤ X₀ for location eval_foo_bb2_in
Found invariant X₁ ≤ X₆ for location eval_foo_bb1_in
Found invariant X₁ ≤ X₆ for location eval_foo_bb9_in
Found invariant 1 ≤ 0 for location eval_foo_bb8_in
Found invariant 1 ≤ X₆ ∧ 2 ≤ X₃+X₆ ∧ 2 ≤ X₂+X₆ ∧ 2 ≤ X₁+X₆ ∧ X₁ ≤ X₆ ∧ 2 ≤ X₀+X₆ ∧ X₃ ≤ X₂ ∧ X₃ ≤ X₀ ∧ 1 ≤ X₃ ∧ 2 ≤ X₂+X₃ ∧ 2 ≤ X₁+X₃ ∧ X₁ ≤ X₃ ∧ 2 ≤ X₀+X₃ ∧ X₂ ≤ X₀ ∧ 1 ≤ X₂ ∧ 2 ≤ X₁+X₂ ∧ X₁ ≤ X₂ ∧ 2 ≤ X₀+X₂ ∧ X₀ ≤ X₂ ∧ X₁ ≤ X₀ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ 1 ≤ X₀ for location eval_foo_bb6_in
Found invariant 1 ≤ X₆ ∧ 2 ≤ X₂+X₆ ∧ 2 ≤ X₁+X₆ ∧ X₁ ≤ X₆ ∧ 2 ≤ X₀+X₆ ∧ X₂ ≤ X₀ ∧ 1 ≤ X₂ ∧ 2 ≤ X₁+X₂ ∧ 2 ≤ X₀+X₂ ∧ X₀ ≤ X₂ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ 1 ≤ X₀ for location eval_foo_bb4_in
Cut unsatisfiable transition [t₄₃: eval_foo_bb3_in→eval_foo_bb4_in; t₄₆: eval_foo_bb4_in→eval_foo_bb7_in; t₅₀: eval_foo_bb7_in→eval_foo_bb1_in; t₅₁: eval_foo_bb7_in→eval_foo_bb8_in; t₅₂: eval_foo_bb8_in→eval_foo_bb7_in]
Cut unreachable locations [eval_foo_bb7_in; eval_foo_bb8_in] from the program graph
Eliminate variables [X₄] that do not contribute to the problem
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_bb6_in, eval_foo_bb9_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₅) :|: 1 ≤ X₀ ∧ 1 ≤ X₁
t₈₀: eval_foo_bb1_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb9_in(X₀, X₁, X₂, X₃, X₄, X₅) :|: X₁ ≤ 0
t₈₁: eval_foo_bb1_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb9_in(X₀, X₁, X₂, X₃, X₄, X₅) :|: X₀ ≤ 0
t₈₂: eval_foo_bb2_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb3_in(X₀, X₁, X₂, X₃, X₄, X₅) :|: 1 ≤ X₁
t₈₃: eval_foo_bb3_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb4_in(X₀, X₁, X₀, X₃, X₄, X₅) :|: 0 ≤ X₁
t₈₄: eval_foo_bb4_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb5_in(X₀, X₁, X₂, X₂, X₄, X₅) :|: 1 ≤ X₂
t₈₅: eval_foo_bb5_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb1_in(X₁, X₃, X₂, X₃, X₄, X₅) :|: 1+X₃ ≤ X₁
t₈₆: eval_foo_bb5_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb6_in(X₀, X₁, X₂, X₃, X₄, X₅) :|: X₁ ≤ X₃
t₈₇: eval_foo_bb6_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb5_in(X₀, X₁, X₂, X₃-X₁, X₄, X₅)
t₈₈: eval_foo_bb9_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_stop(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_bb1_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb2_in(X₀, X₁, X₂, X₃, X₄, X₅) :|: 1 ≤ X₀ ∧ 1 ≤ X₁ of depth 1:
new bound:
X₅ {O(n)}
MPRF:
• eval_foo_bb1_in: [X₁]
• eval_foo_bb2_in: [X₁-1]
• eval_foo_bb3_in: [X₁-1]
• eval_foo_bb4_in: [X₁-1]
• eval_foo_bb5_in: [X₁-1]
• eval_foo_bb6_in: [X₁-1]
MPRF for transition t₈₂: eval_foo_bb2_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb3_in(X₀, X₁, X₂, X₃, X₄, X₅) :|: 1 ≤ X₁ of depth 1:
new bound:
X₅ {O(n)}
MPRF:
• eval_foo_bb1_in: [X₁]
• eval_foo_bb2_in: [X₁]
• eval_foo_bb3_in: [X₁-1]
• eval_foo_bb4_in: [X₁-1]
• eval_foo_bb5_in: [X₁-1]
• eval_foo_bb6_in: [X₁-1]
MPRF for transition t₈₃: eval_foo_bb3_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb4_in(X₀, X₁, X₀, X₃, X₄, X₅) :|: 0 ≤ X₁ of depth 1:
new bound:
X₅+1 {O(n)}
MPRF:
• eval_foo_bb1_in: [1+X₁]
• eval_foo_bb2_in: [1+X₁]
• eval_foo_bb3_in: [1+X₁]
• eval_foo_bb4_in: [X₁]
• eval_foo_bb5_in: [X₁]
• eval_foo_bb6_in: [X₁]
knowledge_propagation leads to new time bound X₅+1 {O(n)} for transition t₈₄: eval_foo_bb4_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb5_in(X₀, X₁, X₂, X₂, X₄, X₅) :|: 1 ≤ X₂
MPRF for transition t₈₅: eval_foo_bb5_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb1_in(X₁, X₃, X₂, X₃, X₄, X₅) :|: 1+X₃ ≤ X₁ of depth 1:
new bound:
X₅+1 {O(n)}
MPRF:
• eval_foo_bb1_in: [0]
• eval_foo_bb2_in: [0]
• eval_foo_bb3_in: [2-2⋅X₁]
• eval_foo_bb4_in: [2-2⋅X₁]
• eval_foo_bb5_in: [1]
• eval_foo_bb6_in: [1]
Found invariant 1 ≤ X₅ ∧ 1 ≤ X₃+X₅ ∧ 2 ≤ X₂+X₅ ∧ 2 ≤ X₁+X₅ ∧ X₁ ≤ X₅ ∧ 2 ≤ X₀+X₅ ∧ X₃ ≤ X₂ ∧ X₃ ≤ X₀ ∧ 1 ≤ X₂+X₃ ∧ 1 ≤ X₁+X₃ ∧ 1 ≤ X₀+X₃ ∧ X₂ ≤ X₀ ∧ 1 ≤ X₂ ∧ 2 ≤ X₁+X₂ ∧ 2 ≤ X₀+X₂ ∧ X₀ ≤ X₂ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ 1 ≤ X₀ for location eval_foo_bb5_in
Found invariant 1 ≤ X₅ ∧ 2 ≤ X₃+X₅ ∧ 2 ≤ X₂+X₅ ∧ 2 ≤ X₁+X₅ ∧ X₁ ≤ X₅ ∧ 2 ≤ X₀+X₅ ∧ X₃ ≤ X₂ ∧ X₃ ≤ X₀ ∧ 1 ≤ X₃ ∧ 2 ≤ X₂+X₃ ∧ 2 ≤ X₁+X₃ ∧ X₁ ≤ X₃ ∧ 2 ≤ X₀+X₃ ∧ X₂ ≤ X₀ ∧ 1 ≤ X₂ ∧ 2 ≤ X₁+X₂ ∧ X₁ ≤ X₂ ∧ 2 ≤ X₀+X₂ ∧ X₀ ≤ X₂ ∧ X₁ ≤ X₀ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ 1 ≤ X₀ for location eval_foo_bb6_in_v1
Found invariant X₁ ≤ X₅ for location eval_foo_stop
Found invariant 1 ≤ X₅ ∧ 2 ≤ X₁+X₅ ∧ X₁ ≤ X₅ ∧ 2 ≤ X₀+X₅ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ 1 ≤ X₀ for location eval_foo_bb3_in
Found invariant 1 ≤ X₅ ∧ 2 ≤ X₁+X₅ ∧ X₁ ≤ X₅ ∧ 2 ≤ X₀+X₅ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ 1 ≤ X₀ for location eval_foo_bb2_in
Found invariant X₁ ≤ X₅ for location eval_foo_bb1_in
Found invariant X₁ ≤ X₅ for location eval_foo_bb9_in
Found invariant 1 ≤ X₅ ∧ 2 ≤ X₂+X₅ ∧ 2 ≤ X₁+X₅ ∧ X₁ ≤ X₅ ∧ 2 ≤ X₀+X₅ ∧ X₂ ≤ X₀ ∧ 1 ≤ X₂ ∧ 2 ≤ X₁+X₂ ∧ 2 ≤ X₀+X₂ ∧ X₀ ≤ X₂ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ 1 ≤ X₀ for location eval_foo_bb4_in
Analysing control-flow refined program
MPRF for transition t₁₀₅: eval_foo_bb5_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb6_in_v1(X₀, X₁, X₂, X₃, X₄, X₅) :|: X₁ ≤ X₃ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₃ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₃ ∧ 1 ≤ X₂ ∧ 1 ≤ X₂+X₃ ∧ 1 ≤ X₃+X₅ ∧ 1 ≤ X₅ ∧ 2 ≤ X₀+X₁ ∧ 2 ≤ X₀+X₂ ∧ 2 ≤ X₀+X₅ ∧ 2 ≤ X₁+X₂ ∧ 2 ≤ X₁+X₅ ∧ 2 ≤ X₂+X₅ ∧ X₂ ≤ X₀ ∧ X₃ ≤ X₀ ∧ X₀ ≤ X₂ ∧ X₁ ≤ X₅ ∧ X₃ ≤ X₂ of depth 1:
new bound:
X₄+X₅+1 {O(n)}
MPRF:
• eval_foo_bb1_in: [X₀+X₁-1]
• eval_foo_bb2_in: [X₀+X₁-1]
• eval_foo_bb3_in: [X₀+X₁-1]
• eval_foo_bb4_in: [X₁+X₂-1]
• eval_foo_bb5_in: [X₁+X₃-1]
• eval_foo_bb6_in_v1: [X₁+X₃-2]
MPRF for transition t₁₀₆: eval_foo_bb5_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb1_in(X₁, X₃, X₂, X₃, X₄, X₅) :|: 1+X₃ ≤ X₁ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₃ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₃ ∧ 1 ≤ X₂ ∧ 1 ≤ X₂+X₃ ∧ 1 ≤ X₃+X₅ ∧ 1 ≤ X₅ ∧ 2 ≤ X₀+X₁ ∧ 2 ≤ X₀+X₂ ∧ 2 ≤ X₀+X₅ ∧ 2 ≤ X₁+X₂ ∧ 2 ≤ X₁+X₅ ∧ 2 ≤ X₂+X₅ ∧ X₂ ≤ X₀ ∧ X₃ ≤ X₀ ∧ X₀ ≤ X₂ ∧ X₁ ≤ X₅ ∧ X₃ ≤ X₂ of depth 1:
new bound:
X₅ {O(n)}
MPRF:
• eval_foo_bb1_in: [X₁]
• eval_foo_bb2_in: [X₁]
• eval_foo_bb3_in: [X₁]
• eval_foo_bb4_in: [X₁]
• eval_foo_bb5_in: [X₁]
• eval_foo_bb6_in_v1: [X₁]
MPRF for transition t₁₀₇: eval_foo_bb6_in_v1(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb5_in(X₀, X₁, X₂, X₃-X₁, X₄, X₅) :|: 1 ≤ X₀ ∧ 1 ≤ X₁ ∧ 1 ≤ X₂ ∧ 1 ≤ X₃ ∧ 1 ≤ X₅ ∧ 2 ≤ X₀+X₁ ∧ 2 ≤ X₀+X₂ ∧ 2 ≤ X₀+X₃ ∧ 2 ≤ X₀+X₅ ∧ 2 ≤ X₁+X₂ ∧ 2 ≤ X₁+X₃ ∧ 2 ≤ X₁+X₅ ∧ 2 ≤ X₂+X₃ ∧ 2 ≤ X₂+X₅ ∧ 2 ≤ X₃+X₅ ∧ X₁ ≤ X₀ ∧ X₂ ≤ X₀ ∧ X₃ ≤ X₀ ∧ X₀ ≤ X₂ ∧ X₁ ≤ X₂ ∧ X₁ ≤ X₃ ∧ X₁ ≤ X₅ ∧ X₃ ≤ X₂ of depth 1:
new bound:
X₄+X₅+1 {O(n)}
MPRF:
• eval_foo_bb1_in: [X₀+X₁-1]
• eval_foo_bb2_in: [X₀+X₁-1]
• eval_foo_bb3_in: [X₀+X₁-1]
• eval_foo_bb4_in: [X₁+X₂-1]
• eval_foo_bb5_in: [X₁+X₃-1]
• eval_foo_bb6_in_v1: [X₃]
MPRF for transition t₁₀₈: eval_foo_bb5_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb6_in_v1(X₀, X₁, X₂, X₃, X₄, X₅) :|: X₁ ≤ X₃ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₃ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₃ ∧ 1 ≤ X₂ ∧ 1 ≤ X₂+X₃ ∧ 1 ≤ X₃+X₅ ∧ 1 ≤ X₅ ∧ 2 ≤ X₀+X₁ ∧ 2 ≤ X₀+X₂ ∧ 2 ≤ X₀+X₅ ∧ 2 ≤ X₁+X₂ ∧ 2 ≤ X₁+X₅ ∧ 2 ≤ X₂+X₅ ∧ X₂ ≤ X₀ ∧ X₃ ≤ X₀ ∧ X₀ ≤ X₂ ∧ X₁ ≤ X₅ ∧ X₃ ≤ X₂ of depth 1:
new bound:
X₄+X₅ {O(n)}
MPRF:
• eval_foo_bb1_in: [X₀+X₁]
• eval_foo_bb2_in: [X₀+X₁]
• eval_foo_bb3_in: [X₀+X₁]
• eval_foo_bb4_in: [X₁+X₂]
• eval_foo_bb5_in: [X₁+X₃]
• eval_foo_bb6_in_v1: [X₁+X₃-1]
MPRF for transition t₁₀₉: eval_foo_bb5_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb1_in(X₁, X₃, X₂, X₃, X₄, X₅) :|: 1+X₃ ≤ X₁ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₃ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₃ ∧ 1 ≤ X₂ ∧ 1 ≤ X₂+X₃ ∧ 1 ≤ X₃+X₅ ∧ 1 ≤ X₅ ∧ 2 ≤ X₀+X₁ ∧ 2 ≤ X₀+X₂ ∧ 2 ≤ X₀+X₅ ∧ 2 ≤ X₁+X₂ ∧ 2 ≤ X₁+X₅ ∧ 2 ≤ X₂+X₅ ∧ X₂ ≤ X₀ ∧ X₃ ≤ X₀ ∧ X₀ ≤ X₂ ∧ X₁ ≤ X₅ ∧ X₃ ≤ X₂ of depth 1:
new bound:
X₅ {O(n)}
MPRF:
• eval_foo_bb1_in: [X₁]
• eval_foo_bb2_in: [X₁]
• eval_foo_bb3_in: [X₁]
• eval_foo_bb4_in: [X₁]
• eval_foo_bb5_in: [X₁]
• eval_foo_bb6_in_v1: [X₁]
CFR: Improvement to new bound with the following program:
method: PartialEvaluation new bound:
O(n)
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_bb2_in, eval_foo_bb3_in, eval_foo_bb4_in, eval_foo_bb5_in, eval_foo_bb6_in_v1, eval_foo_bb9_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₅) :|: 1 ≤ X₀ ∧ 1 ≤ X₁ ∧ X₁ ≤ X₅
t₈₀: eval_foo_bb1_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb9_in(X₀, X₁, X₂, X₃, X₄, X₅) :|: X₁ ≤ 0 ∧ X₁ ≤ X₅
t₈₁: eval_foo_bb1_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb9_in(X₀, X₁, X₂, X₃, X₄, X₅) :|: X₀ ≤ 0 ∧ X₁ ≤ X₅
t₈₂: eval_foo_bb2_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb3_in(X₀, X₁, X₂, X₃, X₄, X₅) :|: 1 ≤ X₁ ∧ 1 ≤ X₀ ∧ 1 ≤ X₅ ∧ 2 ≤ X₀+X₁ ∧ 2 ≤ X₀+X₅ ∧ 2 ≤ X₁+X₅ ∧ X₁ ≤ X₅
t₈₃: eval_foo_bb3_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb4_in(X₀, X₁, X₀, X₃, X₄, X₅) :|: 0 ≤ X₁ ∧ 1 ≤ X₀ ∧ 1 ≤ X₁ ∧ 1 ≤ X₅ ∧ 2 ≤ X₀+X₁ ∧ 2 ≤ X₀+X₅ ∧ 2 ≤ X₁+X₅ ∧ X₁ ≤ X₅
t₈₄: eval_foo_bb4_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb5_in(X₀, X₁, X₂, X₂, X₄, X₅) :|: 1 ≤ X₂ ∧ 1 ≤ X₀ ∧ 1 ≤ X₁ ∧ 1 ≤ X₅ ∧ 2 ≤ X₀+X₁ ∧ 2 ≤ X₀+X₂ ∧ 2 ≤ X₀+X₅ ∧ 2 ≤ X₁+X₂ ∧ 2 ≤ X₁+X₅ ∧ 2 ≤ X₂+X₅ ∧ X₂ ≤ X₀ ∧ X₀ ≤ X₂ ∧ X₁ ≤ X₅
t₈₅: eval_foo_bb5_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb1_in(X₁, X₃, X₂, X₃, X₄, X₅) :|: 1+X₃ ≤ X₁ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₃ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₃ ∧ 1 ≤ X₂ ∧ 1 ≤ X₂+X₃ ∧ 1 ≤ X₃+X₅ ∧ 1 ≤ X₅ ∧ 2 ≤ X₀+X₁ ∧ 2 ≤ X₀+X₂ ∧ 2 ≤ X₀+X₅ ∧ 2 ≤ X₁+X₂ ∧ 2 ≤ X₁+X₅ ∧ 2 ≤ 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_bb1_in(X₁, X₃, X₂, X₃, X₄, X₅) :|: 1+X₃ ≤ X₁ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₃ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₃ ∧ 1 ≤ X₂ ∧ 1 ≤ X₂+X₃ ∧ 1 ≤ X₃+X₅ ∧ 1 ≤ X₅ ∧ 2 ≤ X₀+X₁ ∧ 2 ≤ X₀+X₂ ∧ 2 ≤ X₀+X₅ ∧ 2 ≤ X₁+X₂ ∧ 2 ≤ X₁+X₅ ∧ 2 ≤ 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_bb1_in(X₁, X₃, X₂, X₃, X₄, X₅) :|: 1+X₃ ≤ X₁ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₃ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₃ ∧ 1 ≤ X₂ ∧ 1 ≤ X₂+X₃ ∧ 1 ≤ X₃+X₅ ∧ 1 ≤ X₅ ∧ 2 ≤ X₀+X₁ ∧ 2 ≤ X₀+X₂ ∧ 2 ≤ X₀+X₅ ∧ 2 ≤ X₁+X₂ ∧ 2 ≤ X₁+X₅ ∧ 2 ≤ 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_bb6_in_v1(X₀, X₁, X₂, X₃, X₄, X₅) :|: X₁ ≤ X₃ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₃ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₃ ∧ 1 ≤ X₂ ∧ 1 ≤ X₂+X₃ ∧ 1 ≤ X₃+X₅ ∧ 1 ≤ X₅ ∧ 2 ≤ X₀+X₁ ∧ 2 ≤ X₀+X₂ ∧ 2 ≤ X₀+X₅ ∧ 2 ≤ X₁+X₂ ∧ 2 ≤ X₁+X₅ ∧ 2 ≤ 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_bb6_in_v1(X₀, X₁, X₂, X₃, X₄, X₅) :|: X₁ ≤ X₃ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₃ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₃ ∧ 1 ≤ X₂ ∧ 1 ≤ X₂+X₃ ∧ 1 ≤ X₃+X₅ ∧ 1 ≤ X₅ ∧ 2 ≤ X₀+X₁ ∧ 2 ≤ X₀+X₂ ∧ 2 ≤ X₀+X₅ ∧ 2 ≤ X₁+X₂ ∧ 2 ≤ X₁+X₅ ∧ 2 ≤ X₂+X₅ ∧ X₂ ≤ X₀ ∧ X₃ ≤ X₀ ∧ X₀ ≤ X₂ ∧ X₁ ≤ X₅ ∧ X₃ ≤ X₂
t₁₀₇: eval_foo_bb6_in_v1(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_bb5_in(X₀, X₁, X₂, X₃-X₁, X₄, X₅) :|: 1 ≤ X₀ ∧ 1 ≤ X₁ ∧ 1 ≤ X₂ ∧ 1 ≤ X₃ ∧ 1 ≤ X₅ ∧ 2 ≤ X₀+X₁ ∧ 2 ≤ X₀+X₂ ∧ 2 ≤ X₀+X₃ ∧ 2 ≤ X₀+X₅ ∧ 2 ≤ X₁+X₂ ∧ 2 ≤ X₁+X₃ ∧ 2 ≤ X₁+X₅ ∧ 2 ≤ X₂+X₃ ∧ 2 ≤ X₂+X₅ ∧ 2 ≤ X₃+X₅ ∧ X₁ ≤ X₀ ∧ X₂ ≤ X₀ ∧ X₃ ≤ X₀ ∧ X₀ ≤ X₂ ∧ X₁ ≤ X₂ ∧ X₁ ≤ X₃ ∧ X₁ ≤ X₅ ∧ X₃ ≤ X₂
t₈₈: eval_foo_bb9_in(X₀, X₁, X₂, X₃, X₄, X₅) → eval_foo_stop(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:10⋅X₅+3⋅X₄+10 {O(n)}
t₇₈: 1 {O(1)}
t₇₉: X₅ {O(n)}
t₈₀: 1 {O(1)}
t₈₁: 1 {O(1)}
t₈₂: X₅ {O(n)}
t₈₃: X₅+1 {O(n)}
t₈₄: X₅+1 {O(n)}
t₈₅: X₅+1 {O(n)}
t₈₈: 1 {O(1)}
t₈₉: 1 {O(1)}
t₁₀₅: X₄+X₅+1 {O(n)}
t₁₀₆: X₅ {O(n)}
t₁₀₇: X₄+X₅+1 {O(n)}
t₁₀₈: X₄+X₅ {O(n)}
t₁₀₉: X₅ {O(n)}
Costbounds
Overall costbound: 10⋅X₅+3⋅X₄+10 {O(n)}
t₇₈: 1 {O(1)}
t₇₉: X₅ {O(n)}
t₈₀: 1 {O(1)}
t₈₁: 1 {O(1)}
t₈₂: X₅ {O(n)}
t₈₃: X₅+1 {O(n)}
t₈₄: X₅+1 {O(n)}
t₈₅: X₅+1 {O(n)}
t₈₈: 1 {O(1)}
t₈₉: 1 {O(1)}
t₁₀₅: X₄+X₅+1 {O(n)}
t₁₀₆: X₅ {O(n)}
t₁₀₇: X₄+X₅+1 {O(n)}
t₁₀₈: X₄+X₅ {O(n)}
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₅: X₅ {O(n)}
t₇₉, X₀: 6⋅X₅+X₄ {O(n)}
t₇₉, X₁: X₅ {O(n)}
t₇₉, X₂: 36⋅X₅+6⋅X₄+X₂ {O(n)}
t₇₉, X₃: 36⋅X₅+6⋅X₄+X₃ {O(n)}
t₇₉, X₄: X₄ {O(n)}
t₇₉, X₅: X₅ {O(n)}
t₈₀, X₀: 6⋅X₅+X₄ {O(n)}
t₈₀, X₁: 4⋅X₅ {O(n)}
t₈₀, X₂: 36⋅X₅+6⋅X₄+X₂ {O(n)}
t₈₀, X₃: 36⋅X₅+6⋅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)}
t₈₁, X₃: X₃ {O(n)}
t₈₁, X₄: X₄ {O(n)}
t₈₁, X₅: X₅ {O(n)}
t₈₂, X₀: 6⋅X₅+X₄ {O(n)}
t₈₂, X₁: X₅ {O(n)}
t₈₂, X₂: 36⋅X₅+6⋅X₄+X₂ {O(n)}
t₈₂, X₃: 36⋅X₅+6⋅X₄+X₃ {O(n)}
t₈₂, X₄: X₄ {O(n)}
t₈₂, X₅: X₅ {O(n)}
t₈₃, X₀: 6⋅X₅+X₄ {O(n)}
t₈₃, X₁: X₅ {O(n)}
t₈₃, X₂: 6⋅X₅+X₄ {O(n)}
t₈₃, X₃: 36⋅X₅+6⋅X₄+X₃ {O(n)}
t₈₃, X₄: X₄ {O(n)}
t₈₃, X₅: X₅ {O(n)}
t₈₄, X₀: 6⋅X₅+X₄ {O(n)}
t₈₄, X₁: X₅ {O(n)}
t₈₄, X₂: 6⋅X₅+X₄ {O(n)}
t₈₄, X₃: 6⋅X₅+X₄ {O(n)}
t₈₄, X₄: X₄ {O(n)}
t₈₄, X₅: X₅ {O(n)}
t₈₅, X₀: 2⋅X₅ {O(n)}
t₈₅, X₁: X₅ {O(n)}
t₈₅, X₂: 12⋅X₅+2⋅X₄ {O(n)}
t₈₅, X₃: 12⋅X₅+2⋅X₄ {O(n)}
t₈₅, X₄: X₄ {O(n)}
t₈₅, X₅: X₅ {O(n)}
t₈₈, X₀: 2⋅X₄+6⋅X₅ {O(n)}
t₈₈, X₁: 5⋅X₅ {O(n)}
t₈₈, X₂: 2⋅X₂+36⋅X₅+6⋅X₄ {O(n)}
t₈₈, X₃: 2⋅X₃+36⋅X₅+6⋅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₀: 6⋅X₅+X₄ {O(n)}
t₁₀₅, X₁: X₅ {O(n)}
t₁₀₅, X₂: 6⋅X₅+X₄ {O(n)}
t₁₀₅, X₃: 6⋅X₅+X₄ {O(n)}
t₁₀₅, X₄: X₄ {O(n)}
t₁₀₅, X₅: X₅ {O(n)}
t₁₀₆, X₀: 2⋅X₅ {O(n)}
t₁₀₆, X₁: X₅ {O(n)}
t₁₀₆, X₂: 12⋅X₅+2⋅X₄ {O(n)}
t₁₀₆, X₃: 12⋅X₅+2⋅X₄ {O(n)}
t₁₀₆, X₄: X₄ {O(n)}
t₁₀₆, X₅: X₅ {O(n)}
t₁₀₇, X₀: 6⋅X₅+X₄ {O(n)}
t₁₀₇, X₁: X₅ {O(n)}
t₁₀₇, X₂: 6⋅X₅+X₄ {O(n)}
t₁₀₇, X₃: 6⋅X₅+X₄ {O(n)}
t₁₀₇, X₄: X₄ {O(n)}
t₁₀₇, X₅: X₅ {O(n)}
t₁₀₈, X₀: 6⋅X₅+X₄ {O(n)}
t₁₀₈, X₁: X₅ {O(n)}
t₁₀₈, X₂: 6⋅X₅+X₄ {O(n)}
t₁₀₈, X₃: 6⋅X₅+X₄ {O(n)}
t₁₀₈, X₄: X₄ {O(n)}
t₁₀₈, X₅: X₅ {O(n)}
t₁₀₉, X₀: 2⋅X₅ {O(n)}
t₁₀₉, X₁: X₅ {O(n)}
t₁₀₉, X₂: 12⋅X₅+2⋅X₄ {O(n)}
t₁₀₉, X₃: 12⋅X₅+2⋅X₄ {O(n)}
t₁₀₉, X₄: X₄ {O(n)}
t₁₀₉, X₅: X₅ {O(n)}