Initial Problem

Start: evalSimpleSingle2start
Program_Vars: X₀, X₁, X₂, X₃
Temp_Vars: E
Locations: evalSimpleSingle2bb1in, evalSimpleSingle2bb2in, evalSimpleSingle2bb3in, evalSimpleSingle2bb4in, evalSimpleSingle2bbin, evalSimpleSingle2entryin, evalSimpleSingle2returnin, evalSimpleSingle2start, evalSimpleSingle2stop
Transitions:
t₇: evalSimpleSingle2bb1in(X₀, X₁, X₂, X₃) → evalSimpleSingle2bb4in(1+X₀, 1+X₁, X₂, X₃)
t₈: evalSimpleSingle2bb2in(X₀, X₁, X₂, X₃) → evalSimpleSingle2bb3in(X₀, X₁, X₂, X₃) :|: 1+X₀ ≤ X₃
t₉: evalSimpleSingle2bb2in(X₀, X₁, X₂, X₃) → evalSimpleSingle2returnin(X₀, X₁, X₂, X₃) :|: X₃ ≤ X₀
t₁₀: evalSimpleSingle2bb3in(X₀, X₁, X₂, X₃) → evalSimpleSingle2bb4in(1+X₀, 1+X₁, X₂, X₃)
t₂: evalSimpleSingle2bb4in(X₀, X₁, X₂, X₃) → evalSimpleSingle2bbin(X₀, X₁, X₂, X₃) :|: 1+E ≤ 0
t₃: evalSimpleSingle2bb4in(X₀, X₁, X₂, X₃) → evalSimpleSingle2bbin(X₀, X₁, X₂, X₃) :|: 1 ≤ E
t₄: evalSimpleSingle2bb4in(X₀, X₁, X₂, X₃) → evalSimpleSingle2returnin(X₀, X₁, X₂, X₃)
t₅: evalSimpleSingle2bbin(X₀, X₁, X₂, X₃) → evalSimpleSingle2bb1in(X₀, X₁, X₂, X₃) :|: 1+X₁ ≤ X₂
t₆: evalSimpleSingle2bbin(X₀, X₁, X₂, X₃) → evalSimpleSingle2bb2in(X₀, X₁, X₂, X₃) :|: X₂ ≤ X₁
t₁: evalSimpleSingle2entryin(X₀, X₁, X₂, X₃) → evalSimpleSingle2bb4in(0, 0, X₂, X₃)
t₁₁: evalSimpleSingle2returnin(X₀, X₁, X₂, X₃) → evalSimpleSingle2stop(X₀, X₁, X₂, X₃)
t₀: evalSimpleSingle2start(X₀, X₁, X₂, X₃) → evalSimpleSingle2entryin(X₀, X₁, X₂, X₃)

Preprocessing

Found invariant 1 ≤ X₂ ∧ 1 ≤ X₁+X₂ ∧ 1+X₁ ≤ X₂ ∧ 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₂ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₀ for location evalSimpleSingle2bb1in

Found invariant X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₀ for location evalSimpleSingle2bb4in

Found invariant X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₀ for location evalSimpleSingle2stop

Found invariant 1 ≤ X₃ ∧ 1+X₂ ≤ X₃ ∧ 1 ≤ X₁+X₃ ∧ 1+X₁ ≤ X₃ ∧ 1 ≤ X₀+X₃ ∧ 1+X₀ ≤ X₃ ∧ X₂ ≤ X₁ ∧ X₂ ≤ X₀ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₀ for location evalSimpleSingle2bb3in

Found invariant X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₀ for location evalSimpleSingle2returnin

Found invariant X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₀ for location evalSimpleSingle2bbin

Found invariant X₂ ≤ X₁ ∧ X₂ ≤ X₀ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₀ for location evalSimpleSingle2bb2in

Problem after Preprocessing

Start: evalSimpleSingle2start
Program_Vars: X₀, X₁, X₂, X₃
Temp_Vars: E
Locations: evalSimpleSingle2bb1in, evalSimpleSingle2bb2in, evalSimpleSingle2bb3in, evalSimpleSingle2bb4in, evalSimpleSingle2bbin, evalSimpleSingle2entryin, evalSimpleSingle2returnin, evalSimpleSingle2start, evalSimpleSingle2stop
Transitions:
t₇: evalSimpleSingle2bb1in(X₀, X₁, X₂, X₃) → evalSimpleSingle2bb4in(1+X₀, 1+X₁, X₂, X₃) :|: 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₂ ∧ 1 ≤ X₁+X₂ ∧ 1+X₁ ≤ X₂ ∧ 1 ≤ X₂ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₁
t₈: evalSimpleSingle2bb2in(X₀, X₁, X₂, X₃) → evalSimpleSingle2bb3in(X₀, X₁, X₂, X₃) :|: 1+X₀ ≤ X₃ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ X₂ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₁ ∧ X₂ ≤ X₁
t₉: evalSimpleSingle2bb2in(X₀, X₁, X₂, X₃) → evalSimpleSingle2returnin(X₀, X₁, X₂, X₃) :|: X₃ ≤ X₀ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ X₂ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₁ ∧ X₂ ≤ X₁
t₁₀: evalSimpleSingle2bb3in(X₀, X₁, X₂, X₃) → evalSimpleSingle2bb4in(1+X₀, 1+X₁, X₂, X₃) :|: 1 ≤ X₀+X₃ ∧ 1+X₀ ≤ X₃ ∧ 1 ≤ X₁+X₃ ∧ 1+X₁ ≤ X₃ ∧ 1+X₂ ≤ X₃ ∧ 1 ≤ X₃ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ X₂ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₁ ∧ X₂ ≤ X₁
t₂: evalSimpleSingle2bb4in(X₀, X₁, X₂, X₃) → evalSimpleSingle2bbin(X₀, X₁, X₂, X₃) :|: 1+E ≤ 0 ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₁
t₃: evalSimpleSingle2bb4in(X₀, X₁, X₂, X₃) → evalSimpleSingle2bbin(X₀, X₁, X₂, X₃) :|: 1 ≤ E ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₁
t₄: evalSimpleSingle2bb4in(X₀, X₁, X₂, X₃) → evalSimpleSingle2returnin(X₀, X₁, X₂, X₃) :|: 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₁
t₅: evalSimpleSingle2bbin(X₀, X₁, X₂, X₃) → evalSimpleSingle2bb1in(X₀, X₁, X₂, X₃) :|: 1+X₁ ≤ X₂ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₁
t₆: evalSimpleSingle2bbin(X₀, X₁, X₂, X₃) → evalSimpleSingle2bb2in(X₀, X₁, X₂, X₃) :|: X₂ ≤ X₁ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₁
t₁: evalSimpleSingle2entryin(X₀, X₁, X₂, X₃) → evalSimpleSingle2bb4in(0, 0, X₂, X₃)
t₁₁: evalSimpleSingle2returnin(X₀, X₁, X₂, X₃) → evalSimpleSingle2stop(X₀, X₁, X₂, X₃) :|: 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₁
t₀: evalSimpleSingle2start(X₀, X₁, X₂, X₃) → evalSimpleSingle2entryin(X₀, X₁, X₂, X₃)

MPRF for transition t₅: evalSimpleSingle2bbin(X₀, X₁, X₂, X₃) → evalSimpleSingle2bb1in(X₀, X₁, X₂, X₃) :|: 1+X₁ ≤ X₂ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₁ of depth 1:

new bound:

X₂ {O(n)}

MPRF:

• evalSimpleSingle2bb1in: [X₂-1-X₀]
• evalSimpleSingle2bb2in: [X₂-X₀]
• evalSimpleSingle2bb3in: [X₂-X₀]
• evalSimpleSingle2bb4in: [X₂-X₁]
• evalSimpleSingle2bbin: [X₂-X₀]

MPRF for transition t₇: evalSimpleSingle2bb1in(X₀, X₁, X₂, X₃) → evalSimpleSingle2bb4in(1+X₀, 1+X₁, X₂, X₃) :|: 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₂ ∧ 1 ≤ X₁+X₂ ∧ 1+X₁ ≤ X₂ ∧ 1 ≤ X₂ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₁ of depth 1:

new bound:

X₂ {O(n)}

MPRF:

• evalSimpleSingle2bb1in: [X₂-X₁]
• evalSimpleSingle2bb2in: [X₂-X₀]
• evalSimpleSingle2bb3in: [X₂-X₀]
• evalSimpleSingle2bb4in: [X₂-X₁]
• evalSimpleSingle2bbin: [X₂-X₀]

MPRF for transition t₈: evalSimpleSingle2bb2in(X₀, X₁, X₂, X₃) → evalSimpleSingle2bb3in(X₀, X₁, X₂, X₃) :|: 1+X₀ ≤ X₃ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ X₂ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₁ ∧ X₂ ≤ X₁ of depth 1:

new bound:

X₃ {O(n)}

MPRF:

• evalSimpleSingle2bb1in: [X₃-X₀]
• evalSimpleSingle2bb2in: [X₃-X₀]
• evalSimpleSingle2bb3in: [X₃-1-X₀]
• evalSimpleSingle2bb4in: [X₃-X₁]
• evalSimpleSingle2bbin: [X₃-X₁]

MPRF for transition t₁₀: evalSimpleSingle2bb3in(X₀, X₁, X₂, X₃) → evalSimpleSingle2bb4in(1+X₀, 1+X₁, X₂, X₃) :|: 1 ≤ X₀+X₃ ∧ 1+X₀ ≤ X₃ ∧ 1 ≤ X₁+X₃ ∧ 1+X₁ ≤ X₃ ∧ 1+X₂ ≤ X₃ ∧ 1 ≤ X₃ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ X₂ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₁ ∧ X₂ ≤ X₁ of depth 1:

new bound:

X₃ {O(n)}

MPRF:

• evalSimpleSingle2bb1in: [X₃-X₀]
• evalSimpleSingle2bb2in: [X₃-X₁]
• evalSimpleSingle2bb3in: [X₃-X₁]
• evalSimpleSingle2bb4in: [X₃-X₀]
• evalSimpleSingle2bbin: [X₃-X₀]

knowledge_propagation leads to new time bound X₂+X₃+1 {O(n)} for transition t₂: evalSimpleSingle2bb4in(X₀, X₁, X₂, X₃) → evalSimpleSingle2bbin(X₀, X₁, X₂, X₃) :|: 1+E ≤ 0 ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₁

knowledge_propagation leads to new time bound X₂+X₃+1 {O(n)} for transition t₃: evalSimpleSingle2bb4in(X₀, X₁, X₂, X₃) → evalSimpleSingle2bbin(X₀, X₁, X₂, X₃) :|: 1 ≤ E ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₁

knowledge_propagation leads to new time bound 2⋅X₂+2⋅X₃+2 {O(n)} for transition t₆: evalSimpleSingle2bbin(X₀, X₁, X₂, X₃) → evalSimpleSingle2bb2in(X₀, X₁, X₂, X₃) :|: X₂ ≤ X₁ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₁

All Bounds

Timebounds

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

Costbounds

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