Initial Problem

Start: evalrandom1dstart
Program_Vars: X₀, X₁
Temp_Vars: C
Locations: evalrandom1dbb1in, evalrandom1dbb5in, evalrandom1dentryin, evalrandom1dreturnin, evalrandom1dstart, evalrandom1dstop
Transitions:
t₅: evalrandom1dbb1in(X₀, X₁) → evalrandom1dbb5in(X₀, 1+X₁) :|: 1+C ≤ 0
t₆: evalrandom1dbb1in(X₀, X₁) → evalrandom1dbb5in(X₀, 1+X₁) :|: 1 ≤ C
t₇: evalrandom1dbb1in(X₀, X₁) → evalrandom1dbb5in(X₀, 1+X₁)
t₃: evalrandom1dbb5in(X₀, X₁) → evalrandom1dbb1in(X₀, X₁) :|: X₁ ≤ X₀
t₄: evalrandom1dbb5in(X₀, X₁) → evalrandom1dreturnin(X₀, X₁) :|: 1+X₀ ≤ X₁
t₁: evalrandom1dentryin(X₀, X₁) → evalrandom1dbb5in(X₀, 1) :|: 1 ≤ X₀
t₂: evalrandom1dentryin(X₀, X₁) → evalrandom1dreturnin(X₀, X₁) :|: X₀ ≤ 0
t₈: evalrandom1dreturnin(X₀, X₁) → evalrandom1dstop(X₀, X₁)
t₀: evalrandom1dstart(X₀, X₁) → evalrandom1dentryin(X₀, X₁)

Preprocessing

Found invariant X₁ ≤ 1+X₀ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ 1 ≤ X₀ for location evalrandom1dbb5in

Found invariant X₁ ≤ X₀ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ 1 ≤ X₀ for location evalrandom1dbb1in

Problem after Preprocessing

Start: evalrandom1dstart
Program_Vars: X₀, X₁
Temp_Vars: C
Locations: evalrandom1dbb1in, evalrandom1dbb5in, evalrandom1dentryin, evalrandom1dreturnin, evalrandom1dstart, evalrandom1dstop
Transitions:
t₅: evalrandom1dbb1in(X₀, X₁) → evalrandom1dbb5in(X₀, 1+X₁) :|: 1+C ≤ 0 ∧ 1 ≤ X₀ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ X₁ ≤ X₀
t₆: evalrandom1dbb1in(X₀, X₁) → evalrandom1dbb5in(X₀, 1+X₁) :|: 1 ≤ C ∧ 1 ≤ X₀ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ X₁ ≤ X₀
t₇: evalrandom1dbb1in(X₀, X₁) → evalrandom1dbb5in(X₀, 1+X₁) :|: 1 ≤ X₀ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ X₁ ≤ X₀
t₃: evalrandom1dbb5in(X₀, X₁) → evalrandom1dbb1in(X₀, X₁) :|: X₁ ≤ X₀ ∧ X₁ ≤ 1+X₀ ∧ 1 ≤ X₀ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁
t₄: evalrandom1dbb5in(X₀, X₁) → evalrandom1dreturnin(X₀, X₁) :|: 1+X₀ ≤ X₁ ∧ X₁ ≤ 1+X₀ ∧ 1 ≤ X₀ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁
t₁: evalrandom1dentryin(X₀, X₁) → evalrandom1dbb5in(X₀, 1) :|: 1 ≤ X₀
t₂: evalrandom1dentryin(X₀, X₁) → evalrandom1dreturnin(X₀, X₁) :|: X₀ ≤ 0
t₈: evalrandom1dreturnin(X₀, X₁) → evalrandom1dstop(X₀, X₁)
t₀: evalrandom1dstart(X₀, X₁) → evalrandom1dentryin(X₀, X₁)

MPRF for transition t₃: evalrandom1dbb5in(X₀, X₁) → evalrandom1dbb1in(X₀, X₁) :|: X₁ ≤ X₀ ∧ X₁ ≤ 1+X₀ ∧ 1 ≤ X₀ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ of depth 1:

new bound:

X₀+2 {O(n)}

MPRF:

• evalrandom1dbb1in: [X₀-X₁]
• evalrandom1dbb5in: [1+X₀-X₁]

MPRF for transition t₅: evalrandom1dbb1in(X₀, X₁) → evalrandom1dbb5in(X₀, 1+X₁) :|: 1+C ≤ 0 ∧ 1 ≤ X₀ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ X₁ ≤ X₀ of depth 1:

new bound:

X₀+2 {O(n)}

MPRF:

• evalrandom1dbb1in: [1+X₀-X₁]
• evalrandom1dbb5in: [1+X₀-X₁]

MPRF for transition t₆: evalrandom1dbb1in(X₀, X₁) → evalrandom1dbb5in(X₀, 1+X₁) :|: 1 ≤ C ∧ 1 ≤ X₀ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ X₁ ≤ X₀ of depth 1:

new bound:

X₀+2 {O(n)}

MPRF:

• evalrandom1dbb1in: [1+X₀-X₁]
• evalrandom1dbb5in: [1+X₀-X₁]

MPRF for transition t₇: evalrandom1dbb1in(X₀, X₁) → evalrandom1dbb5in(X₀, 1+X₁) :|: 1 ≤ X₀ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ X₁ ≤ X₀ of depth 1:

new bound:

X₀+2 {O(n)}

MPRF:

• evalrandom1dbb1in: [1+X₀-X₁]
• evalrandom1dbb5in: [1+X₀-X₁]

All Bounds

Timebounds

Overall timebound:4⋅X₀+13 {O(n)}
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₆: X₀+2 {O(n)}
t₇: X₀+2 {O(n)}
t₈: 1 {O(1)}

Costbounds

Overall costbound: 4⋅X₀+13 {O(n)}
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₆: X₀+2 {O(n)}
t₇: X₀+2 {O(n)}
t₈: 1 {O(1)}

Sizebounds

t₀, X₀: X₀ {O(n)}
t₀, X₁: X₁ {O(n)}
t₁, X₀: X₀ {O(n)}
t₁, X₁: 1 {O(1)}
t₂, X₀: X₀ {O(n)}
t₂, X₁: X₁ {O(n)}
t₃, X₀: X₀ {O(n)}
t₃, X₁: 3⋅X₀+7 {O(n)}
t₄, X₀: 3⋅X₀ {O(n)}
t₄, X₁: 9⋅X₀+21 {O(n)}
t₅, X₀: X₀ {O(n)}
t₅, X₁: 3⋅X₀+7 {O(n)}
t₆, X₀: X₀ {O(n)}
t₆, X₁: 3⋅X₀+7 {O(n)}
t₇, X₀: X₀ {O(n)}
t₇, X₁: 3⋅X₀+7 {O(n)}
t₈, X₀: 4⋅X₀ {O(n)}
t₈, X₁: 9⋅X₀+X₁+21 {O(n)}