Start: eval_ndecr_start
Program_Vars: X₀, X₁, X₂
Temp_Vars:
Locations: eval_ndecr_0, eval_ndecr_1, eval_ndecr_2, eval_ndecr_3, eval_ndecr_4, eval_ndecr_bb0_in, eval_ndecr_bb1_in, eval_ndecr_bb2_in, eval_ndecr_bb3_in, eval_ndecr_start, eval_ndecr_stop
Transitions:
t₂: eval_ndecr_0(X₀, X₁, X₂) → eval_ndecr_1(X₀, X₁, X₂)
t₃: eval_ndecr_1(X₀, X₁, X₂) → eval_ndecr_2(X₂-1, X₁, X₂)
t₄: eval_ndecr_2(X₀, X₁, X₂) → eval_ndecr_3(X₀, X₁, X₂)
t₅: eval_ndecr_3(X₀, X₁, X₂) → eval_ndecr_4(X₀, X₁, X₂)
t₆: eval_ndecr_4(X₀, X₁, X₂) → eval_ndecr_bb1_in(X₀, X₀, X₂)
t₁: eval_ndecr_bb0_in(X₀, X₁, X₂) → eval_ndecr_0(X₀, X₁, X₂)
t₇: eval_ndecr_bb1_in(X₀, X₁, X₂) → eval_ndecr_bb2_in(X₀, X₁, X₂) :|: 2 ≤ X₁
t₈: eval_ndecr_bb1_in(X₀, X₁, X₂) → eval_ndecr_bb3_in(X₀, X₁, X₂) :|: X₁ ≤ 1
t₉: eval_ndecr_bb2_in(X₀, X₁, X₂) → eval_ndecr_bb1_in(X₀, X₁-1, X₂)
t₁₀: eval_ndecr_bb3_in(X₀, X₁, X₂) → eval_ndecr_stop(X₀, X₁, X₂)
t₀: eval_ndecr_start(X₀, X₁, X₂) → eval_ndecr_bb0_in(X₀, X₁, X₂)
Found invariant X₂ ≤ 1+X₀ ∧ 1+X₀ ≤ X₂ for location eval_ndecr_4
Found invariant X₂ ≤ 1+X₀ ∧ 1+X₀ ≤ X₂ for location eval_ndecr_2
Found invariant X₂ ≤ 1+X₀ ∧ 1+X₁ ≤ X₂ ∧ 1+X₀ ≤ X₂ ∧ X₁ ≤ 1 ∧ X₁ ≤ X₀ for location eval_ndecr_stop
Found invariant X₂ ≤ 1+X₀ ∧ 3 ≤ X₂ ∧ 5 ≤ X₁+X₂ ∧ 1+X₁ ≤ X₂ ∧ 5 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₂ ∧ X₁ ≤ X₀ ∧ 2 ≤ X₁ ∧ 4 ≤ X₀+X₁ ∧ 2 ≤ X₀ for location eval_ndecr_bb2_in
Found invariant X₂ ≤ 1+X₀ ∧ 1+X₁ ≤ X₂ ∧ 1+X₀ ≤ X₂ ∧ X₁ ≤ X₀ for location eval_ndecr_bb1_in
Found invariant X₂ ≤ 1+X₀ ∧ 1+X₀ ≤ X₂ for location eval_ndecr_3
Found invariant X₂ ≤ 1+X₀ ∧ 1+X₁ ≤ X₂ ∧ 1+X₀ ≤ X₂ ∧ X₁ ≤ 1 ∧ X₁ ≤ X₀ for location eval_ndecr_bb3_in
Start: eval_ndecr_start
Program_Vars: X₀, X₁, X₂
Temp_Vars:
Locations: eval_ndecr_0, eval_ndecr_1, eval_ndecr_2, eval_ndecr_3, eval_ndecr_4, eval_ndecr_bb0_in, eval_ndecr_bb1_in, eval_ndecr_bb2_in, eval_ndecr_bb3_in, eval_ndecr_start, eval_ndecr_stop
Transitions:
t₂: eval_ndecr_0(X₀, X₁, X₂) → eval_ndecr_1(X₀, X₁, X₂)
t₃: eval_ndecr_1(X₀, X₁, X₂) → eval_ndecr_2(X₂-1, X₁, X₂)
t₄: eval_ndecr_2(X₀, X₁, X₂) → eval_ndecr_3(X₀, X₁, X₂) :|: X₂ ≤ 1+X₀ ∧ 1+X₀ ≤ X₂
t₅: eval_ndecr_3(X₀, X₁, X₂) → eval_ndecr_4(X₀, X₁, X₂) :|: X₂ ≤ 1+X₀ ∧ 1+X₀ ≤ X₂
t₆: eval_ndecr_4(X₀, X₁, X₂) → eval_ndecr_bb1_in(X₀, X₀, X₂) :|: X₂ ≤ 1+X₀ ∧ 1+X₀ ≤ X₂
t₁: eval_ndecr_bb0_in(X₀, X₁, X₂) → eval_ndecr_0(X₀, X₁, X₂)
t₇: eval_ndecr_bb1_in(X₀, X₁, X₂) → eval_ndecr_bb2_in(X₀, X₁, X₂) :|: 2 ≤ X₁ ∧ X₂ ≤ 1+X₀ ∧ 1+X₀ ≤ X₂ ∧ 1+X₁ ≤ X₂ ∧ X₁ ≤ X₀
t₈: eval_ndecr_bb1_in(X₀, X₁, X₂) → eval_ndecr_bb3_in(X₀, X₁, X₂) :|: X₁ ≤ 1 ∧ X₂ ≤ 1+X₀ ∧ 1+X₀ ≤ X₂ ∧ 1+X₁ ≤ X₂ ∧ X₁ ≤ X₀
t₉: eval_ndecr_bb2_in(X₀, X₁, X₂) → eval_ndecr_bb1_in(X₀, X₁-1, X₂) :|: X₂ ≤ 1+X₀ ∧ 1+X₀ ≤ X₂ ∧ 1+X₁ ≤ X₂ ∧ 2 ≤ X₀ ∧ 2 ≤ X₁ ∧ 3 ≤ X₂ ∧ 4 ≤ X₀+X₁ ∧ 5 ≤ X₀+X₂ ∧ 5 ≤ X₁+X₂ ∧ X₁ ≤ X₀
t₁₀: eval_ndecr_bb3_in(X₀, X₁, X₂) → eval_ndecr_stop(X₀, X₁, X₂) :|: X₂ ≤ 1+X₀ ∧ X₁ ≤ 1 ∧ 1+X₀ ≤ X₂ ∧ 1+X₁ ≤ X₂ ∧ X₁ ≤ X₀
t₀: eval_ndecr_start(X₀, X₁, X₂) → eval_ndecr_bb0_in(X₀, X₁, X₂)
new bound:
X₂+2 {O(n)}
MPRF:
• eval_ndecr_bb1_in: [X₁-1]
• eval_ndecr_bb2_in: [X₁-2]
new bound:
X₂+2 {O(n)}
MPRF:
• eval_ndecr_bb1_in: [X₁-1]
• eval_ndecr_bb2_in: [X₁-1]
Overall timebound:2⋅X₂+13 {O(n)}
t₀: 1 {O(1)}
t₁: 1 {O(1)}
t₂: 1 {O(1)}
t₃: 1 {O(1)}
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)}
Overall costbound: 2⋅X₂+13 {O(n)}
t₀: 1 {O(1)}
t₁: 1 {O(1)}
t₂: 1 {O(1)}
t₃: 1 {O(1)}
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₀, 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₂+1 {O(n)}
t₃, X₁: X₁ {O(n)}
t₃, X₂: X₂ {O(n)}
t₄, X₀: X₂+1 {O(n)}
t₄, X₁: X₁ {O(n)}
t₄, X₂: X₂ {O(n)}
t₅, X₀: X₂+1 {O(n)}
t₅, X₁: X₁ {O(n)}
t₅, X₂: X₂ {O(n)}
t₆, X₀: X₂+1 {O(n)}
t₆, X₁: X₂+1 {O(n)}
t₆, X₂: X₂ {O(n)}
t₇, X₀: X₂+1 {O(n)}
t₇, X₁: X₂+1 {O(n)}
t₇, X₂: X₂ {O(n)}
t₈, X₀: 2⋅X₂+2 {O(n)}
t₈, X₁: 2⋅X₂+2 {O(n)}
t₈, X₂: 2⋅X₂ {O(n)}
t₉, X₀: X₂+1 {O(n)}
t₉, X₁: X₂+1 {O(n)}
t₉, X₂: X₂ {O(n)}
t₁₀, X₀: 2⋅X₂+2 {O(n)}
t₁₀, X₁: 2⋅X₂+2 {O(n)}
t₁₀, X₂: 2⋅X₂ {O(n)}