Initial Problem

Start: evalfstart
Program_Vars: X₀, X₁, X₂
Temp_Vars: D
Locations: evalfbb1in, evalfbb3in, evalfbb4in, evalfbbin, evalfentryin, evalfreturnin, evalfstart, evalfstop
Transitions:
t₉: evalfbb1in(X₀, X₁, X₂) → evalfbb3in(X₀, X₁-1, 1+X₂)
t₃: evalfbb3in(X₀, X₁, X₂) → evalfbb4in(X₀, X₁, X₂) :|: 1 ≤ X₁
t₂: evalfbb3in(X₀, X₁, X₂) → evalfreturnin(X₀, X₁, X₂) :|: X₁ ≤ 0
t₄: evalfbb4in(X₀, X₁, X₂) → evalfbbin(X₀, X₁, X₂) :|: 1+D ≤ 0
t₅: evalfbb4in(X₀, X₁, X₂) → evalfbbin(X₀, X₁, X₂) :|: 1 ≤ D
t₆: evalfbb4in(X₀, X₁, X₂) → evalfreturnin(X₀, X₁, X₂)
t₇: evalfbbin(X₀, X₁, X₂) → evalfbb1in(X₀, X₁, X₂) :|: 1+X₂ ≤ X₀
t₈: evalfbbin(X₀, X₁, X₂) → evalfbb3in(X₀, X₁, 0) :|: X₀ ≤ X₂
t₁: evalfentryin(X₀, X₁, X₂) → evalfbb3in(X₁, X₀, 0) :|: 1 ≤ X₀ ∧ 1 ≤ X₁
t₁₀: evalfreturnin(X₀, X₁, X₂) → evalfstop(X₀, X₁, X₂)
t₀: evalfstart(X₀, X₁, X₂) → evalfentryin(X₀, X₁, X₂)

Preprocessing

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

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

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

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

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

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

Problem after Preprocessing

Start: evalfstart
Program_Vars: X₀, X₁, X₂
Temp_Vars: D
Locations: evalfbb1in, evalfbb3in, evalfbb4in, evalfbbin, evalfentryin, evalfreturnin, evalfstart, evalfstop
Transitions:
t₉: evalfbb1in(X₀, X₁, X₂) → evalfbb3in(X₀, X₁-1, 1+X₂) :|: 1 ≤ X₀ ∧ 1 ≤ X₀+X₂ ∧ 1+X₂ ≤ X₀ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₂ ∧ 2 ≤ X₀+X₁ ∧ 0 ≤ X₂
t₃: evalfbb3in(X₀, X₁, X₂) → evalfbb4in(X₀, X₁, X₂) :|: 1 ≤ X₁ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₁ ∧ 1 ≤ X₀+X₂ ∧ 1 ≤ X₁+X₂ ∧ X₂ ≤ X₀ ∧ 0 ≤ X₁ ∧ 0 ≤ X₂
t₂: evalfbb3in(X₀, X₁, X₂) → evalfreturnin(X₀, X₁, X₂) :|: X₁ ≤ 0 ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₁ ∧ 1 ≤ X₀+X₂ ∧ 1 ≤ X₁+X₂ ∧ X₂ ≤ X₀ ∧ 0 ≤ X₁ ∧ 0 ≤ X₂
t₄: evalfbb4in(X₀, X₁, X₂) → evalfbbin(X₀, X₁, X₂) :|: 1+D ≤ 0 ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₂ ∧ 2 ≤ X₀+X₁ ∧ X₂ ≤ X₀ ∧ 0 ≤ X₂
t₅: evalfbb4in(X₀, X₁, X₂) → evalfbbin(X₀, X₁, X₂) :|: 1 ≤ D ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₂ ∧ 2 ≤ X₀+X₁ ∧ X₂ ≤ X₀ ∧ 0 ≤ X₂
t₆: evalfbb4in(X₀, X₁, X₂) → evalfreturnin(X₀, X₁, X₂) :|: 1 ≤ X₀ ∧ 1 ≤ X₀+X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₂ ∧ 2 ≤ X₀+X₁ ∧ X₂ ≤ X₀ ∧ 0 ≤ X₂
t₇: evalfbbin(X₀, X₁, X₂) → evalfbb1in(X₀, X₁, X₂) :|: 1+X₂ ≤ X₀ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₂ ∧ 2 ≤ X₀+X₁ ∧ X₂ ≤ X₀ ∧ 0 ≤ X₂
t₈: evalfbbin(X₀, X₁, X₂) → evalfbb3in(X₀, X₁, 0) :|: X₀ ≤ X₂ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₂ ∧ 2 ≤ X₀+X₁ ∧ X₂ ≤ X₀ ∧ 0 ≤ X₂
t₁: evalfentryin(X₀, X₁, X₂) → evalfbb3in(X₁, X₀, 0) :|: 1 ≤ X₀ ∧ 1 ≤ X₁
t₁₀: evalfreturnin(X₀, X₁, X₂) → evalfstop(X₀, X₁, X₂) :|: 1 ≤ X₀ ∧ 1 ≤ X₀+X₁ ∧ 1 ≤ X₀+X₂ ∧ 1 ≤ X₁+X₂ ∧ X₂ ≤ X₀ ∧ 0 ≤ X₁ ∧ 0 ≤ X₂
t₀: evalfstart(X₀, X₁, X₂) → evalfentryin(X₀, X₁, X₂)

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

new bound:

2⋅X₀+1 {O(n)}

MPRF:

• evalfbb1in: [2⋅X₁+X₂-2]
• evalfbb3in: [2⋅X₁+X₂-1]
• evalfbb4in: [2⋅X₁+X₂-2]
• evalfbbin: [2⋅X₁+X₂-2]

MPRF for transition t₄: evalfbb4in(X₀, X₁, X₂) → evalfbbin(X₀, X₁, X₂) :|: 1+D ≤ 0 ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₂ ∧ 2 ≤ X₀+X₁ ∧ X₂ ≤ X₀ ∧ 0 ≤ X₂ of depth 1:

new bound:

2⋅X₀+1 {O(n)}

MPRF:

• evalfbb1in: [2⋅X₁+X₂-2]
• evalfbb3in: [2⋅X₁+X₂-1]
• evalfbb4in: [2⋅X₁+X₂-1]
• evalfbbin: [2⋅X₁+X₂-2]

MPRF for transition t₅: evalfbb4in(X₀, X₁, X₂) → evalfbbin(X₀, X₁, X₂) :|: 1 ≤ D ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₂ ∧ 2 ≤ X₀+X₁ ∧ X₂ ≤ X₀ ∧ 0 ≤ X₂ of depth 1:

new bound:

2⋅X₀+1 {O(n)}

MPRF:

• evalfbb1in: [2⋅X₁+X₂-2]
• evalfbb3in: [2⋅X₁+X₂-1]
• evalfbb4in: [2⋅X₁+X₂-1]
• evalfbbin: [2⋅X₁+X₂-2]

MPRF for transition t₇: evalfbbin(X₀, X₁, X₂) → evalfbb1in(X₀, X₁, X₂) :|: 1+X₂ ≤ X₀ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₂ ∧ 2 ≤ X₀+X₁ ∧ X₂ ≤ X₀ ∧ 0 ≤ X₂ of depth 1:

new bound:

X₀ {O(n)}

MPRF:

• evalfbb1in: [X₁-1]
• evalfbb3in: [X₁]
• evalfbb4in: [X₁]
• evalfbbin: [X₁]

MPRF for transition t₈: evalfbbin(X₀, X₁, X₂) → evalfbb3in(X₀, X₁, 0) :|: X₀ ≤ X₂ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₂ ∧ 2 ≤ X₀+X₁ ∧ X₂ ≤ X₀ ∧ 0 ≤ X₂ of depth 1:

new bound:

X₀+1 {O(n)}

MPRF:

• evalfbb1in: [X₁+X₂-1]
• evalfbb3in: [X₁+X₂-1]
• evalfbb4in: [X₁+X₂-1]
• evalfbbin: [X₁+X₂-1]

MPRF for transition t₉: evalfbb1in(X₀, X₁, X₂) → evalfbb3in(X₀, X₁-1, 1+X₂) :|: 1 ≤ X₀ ∧ 1 ≤ X₀+X₂ ∧ 1+X₂ ≤ X₀ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₂ ∧ 2 ≤ X₀+X₁ ∧ 0 ≤ X₂ of depth 1:

new bound:

X₀+X₁+1 {O(n)}

MPRF:

• evalfbb1in: [X₀+X₁-1]
• evalfbb3in: [X₀+X₁-1]
• evalfbb4in: [X₀+X₁-1]
• evalfbbin: [X₀+X₁-1]

All Bounds

Timebounds

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

Costbounds

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