Initial Problem
Start: evalEx2start
Program_Vars: X₀, X₁, X₂, X₃
Temp_Vars: E
Locations: evalEx2bb1in, evalEx2bb2in, evalEx2bb3in, evalEx2bbin, evalEx2entryin, evalEx2returnin, evalEx2start, evalEx2stop
Transitions:
t₉: evalEx2bb1in(X₀, X₁, X₂, X₃) → evalEx2bb2in(X₀, X₁, 1+X₂, X₃-1)
t₆: evalEx2bb2in(X₀, X₁, X₂, X₃) → evalEx2bb1in(X₀, X₁, X₂, X₃) :|: 1+E ≤ 0
t₇: evalEx2bb2in(X₀, X₁, X₂, X₃) → evalEx2bb1in(X₀, X₁, X₂, X₃) :|: 1 ≤ E
t₈: evalEx2bb2in(X₀, X₁, X₂, X₃) → evalEx2bb3in(X₂, X₃, X₂, X₃)
t₂: evalEx2bb3in(X₀, X₁, X₂, X₃) → evalEx2bbin(X₀, X₁, X₂, X₃) :|: 1 ≤ X₀ ∧ 1 ≤ X₁
t₃: evalEx2bb3in(X₀, X₁, X₂, X₃) → evalEx2returnin(X₀, X₁, X₂, X₃) :|: X₁ ≤ 0
t₄: evalEx2bb3in(X₀, X₁, X₂, X₃) → evalEx2returnin(X₀, X₁, X₂, X₃) :|: X₀ ≤ 0
t₅: evalEx2bbin(X₀, X₁, X₂, X₃) → evalEx2bb2in(X₀, X₁, X₀-1, X₁-1)
t₁: evalEx2entryin(X₀, X₁, X₂, X₃) → evalEx2bb3in(X₁, X₀, X₂, X₃)
t₁₀: evalEx2returnin(X₀, X₁, X₂, X₃) → evalEx2stop(X₀, X₁, X₂, X₃)
t₀: evalEx2start(X₀, X₁, X₂, X₃) → evalEx2entryin(X₀, X₁, X₂, X₃)
Preprocessing
Found invariant 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ 1 ≤ X₀ for location evalEx2bbin
Found invariant 1+X₃ ≤ X₁ ∧ 0 ≤ X₂+X₃ ∧ 0 ≤ X₂ ∧ 1 ≤ X₁+X₂ ∧ 1 ≤ X₀+X₂ ∧ X₀ ≤ 1+X₂ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ 1 ≤ X₀ for location evalEx2bb2in
Found invariant 1+X₃ ≤ X₁ ∧ 0 ≤ X₂+X₃ ∧ 0 ≤ X₂ ∧ 1 ≤ X₁+X₂ ∧ 1 ≤ X₀+X₂ ∧ X₀ ≤ 1+X₂ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ 1 ≤ X₀ for location evalEx2bb1in
Problem after Preprocessing
Start: evalEx2start
Program_Vars: X₀, X₁, X₂, X₃
Temp_Vars: E
Locations: evalEx2bb1in, evalEx2bb2in, evalEx2bb3in, evalEx2bbin, evalEx2entryin, evalEx2returnin, evalEx2start, evalEx2stop
Transitions:
t₉: evalEx2bb1in(X₀, X₁, X₂, X₃) → evalEx2bb2in(X₀, X₁, 1+X₂, X₃-1) :|: X₀ ≤ 1+X₂ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₂ ∧ 1+X₃ ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ 0 ≤ X₂ ∧ 0 ≤ X₂+X₃
t₆: evalEx2bb2in(X₀, X₁, X₂, X₃) → evalEx2bb1in(X₀, X₁, X₂, X₃) :|: 1+E ≤ 0 ∧ X₀ ≤ 1+X₂ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₂ ∧ 1+X₃ ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ 0 ≤ X₂ ∧ 0 ≤ X₂+X₃
t₇: evalEx2bb2in(X₀, X₁, X₂, X₃) → evalEx2bb1in(X₀, X₁, X₂, X₃) :|: 1 ≤ E ∧ X₀ ≤ 1+X₂ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₂ ∧ 1+X₃ ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ 0 ≤ X₂ ∧ 0 ≤ X₂+X₃
t₈: evalEx2bb2in(X₀, X₁, X₂, X₃) → evalEx2bb3in(X₂, X₃, X₂, X₃) :|: X₀ ≤ 1+X₂ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₂ ∧ 1+X₃ ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ 0 ≤ X₂ ∧ 0 ≤ X₂+X₃
t₂: evalEx2bb3in(X₀, X₁, X₂, X₃) → evalEx2bbin(X₀, X₁, X₂, X₃) :|: 1 ≤ X₀ ∧ 1 ≤ X₁
t₃: evalEx2bb3in(X₀, X₁, X₂, X₃) → evalEx2returnin(X₀, X₁, X₂, X₃) :|: X₁ ≤ 0
t₄: evalEx2bb3in(X₀, X₁, X₂, X₃) → evalEx2returnin(X₀, X₁, X₂, X₃) :|: X₀ ≤ 0
t₅: evalEx2bbin(X₀, X₁, X₂, X₃) → evalEx2bb2in(X₀, X₁, X₀-1, X₁-1) :|: 1 ≤ X₀ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁
t₁: evalEx2entryin(X₀, X₁, X₂, X₃) → evalEx2bb3in(X₁, X₀, X₂, X₃)
t₁₀: evalEx2returnin(X₀, X₁, X₂, X₃) → evalEx2stop(X₀, X₁, X₂, X₃)
t₀: evalEx2start(X₀, X₁, X₂, X₃) → evalEx2entryin(X₀, X₁, X₂, X₃)
MPRF for transition t₂: evalEx2bb3in(X₀, X₁, X₂, X₃) → evalEx2bbin(X₀, X₁, X₂, X₃) :|: 1 ≤ X₀ ∧ 1 ≤ X₁ of depth 1:
new bound:
X₀ {O(n)}
MPRF:
• evalEx2bb1in: [X₃]
• evalEx2bb2in: [X₃]
• evalEx2bb3in: [X₁]
• evalEx2bbin: [X₁-1]
MPRF for transition t₅: evalEx2bbin(X₀, X₁, X₂, X₃) → evalEx2bb2in(X₀, X₁, X₀-1, X₁-1) :|: 1 ≤ X₀ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ of depth 1:
new bound:
X₀ {O(n)}
MPRF:
• evalEx2bb1in: [X₁-1]
• evalEx2bb2in: [X₁-1]
• evalEx2bb3in: [X₁]
• evalEx2bbin: [X₁]
MPRF for transition t₈: evalEx2bb2in(X₀, X₁, X₂, X₃) → evalEx2bb3in(X₂, X₃, X₂, X₃) :|: X₀ ≤ 1+X₂ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₂ ∧ 1+X₃ ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ 0 ≤ X₂ ∧ 0 ≤ X₂+X₃ of depth 1:
new bound:
X₀+X₁ {O(n)}
MPRF:
• evalEx2bb1in: [1+X₂+X₃]
• evalEx2bb2in: [1+X₂+X₃]
• evalEx2bb3in: [X₀+X₁]
• evalEx2bbin: [X₀+X₁-1]
Found invariant 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ 1 ≤ X₀ for location evalEx2bbin
Found invariant 2+X₃ ≤ X₁ ∧ 0 ≤ X₂+X₃ ∧ 1 ≤ X₂ ∧ 2 ≤ X₁+X₂ ∧ 2 ≤ X₀+X₂ ∧ X₀ ≤ X₂ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ 1 ≤ X₀ for location evalEx2bb1in_v2
Found invariant 1+X₃ ≤ X₁ ∧ 0 ≤ X₃ ∧ 0 ≤ X₂+X₃ ∧ 1 ≤ X₁+X₃ ∧ X₁ ≤ 1+X₃ ∧ 1 ≤ X₀+X₃ ∧ 1+X₂ ≤ X₀ ∧ 0 ≤ X₂ ∧ 1 ≤ X₁+X₂ ∧ 1 ≤ X₀+X₂ ∧ X₀ ≤ 1+X₂ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ 1 ≤ X₀ for location evalEx2bb2in
Found invariant 2+X₃ ≤ X₁ ∧ 0 ≤ X₂+X₃ ∧ 1 ≤ X₂ ∧ 2 ≤ X₁+X₂ ∧ 2 ≤ X₀+X₂ ∧ X₀ ≤ X₂ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ 1 ≤ X₀ for location evalEx2bb2in_v1
Found invariant 1+X₃ ≤ X₁ ∧ 0 ≤ X₃ ∧ 0 ≤ X₂+X₃ ∧ 1 ≤ X₁+X₃ ∧ X₁ ≤ 1+X₃ ∧ 1 ≤ X₀+X₃ ∧ 1+X₂ ≤ X₀ ∧ 0 ≤ X₂ ∧ 1 ≤ X₁+X₂ ∧ 1 ≤ X₀+X₂ ∧ X₀ ≤ 1+X₂ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ 1 ≤ X₀ for location evalEx2bb1in_v1
All Bounds
Timebounds
Overall timebound:inf {Infinity}
t₀: 1 {O(1)}
t₁: 1 {O(1)}
t₂: X₀ {O(n)}
t₃: 1 {O(1)}
t₄: 1 {O(1)}
t₅: X₀ {O(n)}
t₆: inf {Infinity}
t₇: inf {Infinity}
t₈: X₀+X₁ {O(n)}
t₉: inf {Infinity}
t₁₀: 1 {O(1)}
Costbounds
Overall costbound: inf {Infinity}
t₀: 1 {O(1)}
t₁: 1 {O(1)}
t₂: X₀ {O(n)}
t₃: 1 {O(1)}
t₄: 1 {O(1)}
t₅: X₀ {O(n)}
t₆: inf {Infinity}
t₇: inf {Infinity}
t₈: X₀+X₁ {O(n)}
t₉: inf {Infinity}
t₁₀: 1 {O(1)}
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)}