Initial Problem

Start: l0
Program_Vars: X₀, X₁, X₂, X₃
Temp_Vars: E
Locations: l0, l1, l2, l3, l4
Transitions:
t₀: l0(X₀, X₁, X₂, X₃) → l1(0, X₁, X₂, X₃)
t₁: l1(X₀, X₁, X₂, X₃) → l2(X₀+1, X₁, 0, X₃) :|: X₀+1 ≤ X₁
t₈: l1(X₀, X₁, X₂, X₃) → l4(X₀, X₁, X₂, X₃) :|: X₁ ≤ X₀
t₄: l2(X₀, X₁, X₂, X₃) → l2(X₀+1, X₁, X₂+1, E) :|: X₀+1 ≤ X₁ ∧ E+1 ≤ 0
t₅: l2(X₀, X₁, X₂, X₃) → l2(X₀+1, X₁, X₂+1, E) :|: X₀+1 ≤ X₁ ∧ 1 ≤ E
t₂: l2(X₀, X₁, X₂, X₃) → l3(X₀, X₁, X₂, 0) :|: X₀+1 ≤ X₁
t₃: l2(X₀, X₁, X₂, X₃) → l3(X₀, X₁, X₂, X₃) :|: X₁ ≤ X₀
t₆: l3(X₀, X₁, X₂, X₃) → l1(X₀, X₁, X₂, X₃) :|: X₂ ≤ 0
t₇: l3(X₀, X₁, X₂, X₃) → l1(X₀-1, X₁, X₂, X₃) :|: 1 ≤ X₂

Preprocessing

Eliminate variables {X₃} that do not contribute to the problem

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

Found invariant 0 ≤ X₀ for location l1

Found invariant X₁ ≤ X₀ ∧ 0 ≤ X₀ for location l4

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

Problem after Preprocessing

Start: l0
Program_Vars: X₀, X₁, X₂
Temp_Vars: E
Locations: l0, l1, l2, l3, l4
Transitions:
t₁₉: l0(X₀, X₁, X₂) → l1(0, X₁, X₂)
t₂₀: l1(X₀, X₁, X₂) → l2(X₀+1, X₁, 0) :|: X₀+1 ≤ X₁ ∧ 0 ≤ X₀
t₂₁: l1(X₀, X₁, X₂) → l4(X₀, X₁, X₂) :|: X₁ ≤ X₀ ∧ 0 ≤ X₀
t₂₄: l2(X₀, X₁, X₂) → l2(X₀+1, X₁, X₂+1) :|: X₀+1 ≤ X₁ ∧ E+1 ≤ 0 ∧ 1+X₂ ≤ X₁ ∧ 1+X₂ ≤ X₀ ∧ 0 ≤ X₂ ∧ 1 ≤ X₁+X₂ ∧ 1 ≤ X₀+X₂ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 1 ≤ X₀
t₂₅: l2(X₀, X₁, X₂) → l2(X₀+1, X₁, X₂+1) :|: X₀+1 ≤ X₁ ∧ 1 ≤ E ∧ 1+X₂ ≤ X₁ ∧ 1+X₂ ≤ X₀ ∧ 0 ≤ X₂ ∧ 1 ≤ X₁+X₂ ∧ 1 ≤ X₀+X₂ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 1 ≤ X₀
t₂₂: l2(X₀, X₁, X₂) → l3(X₀, X₁, X₂) :|: X₀+1 ≤ X₁ ∧ 1+X₂ ≤ X₁ ∧ 1+X₂ ≤ X₀ ∧ 0 ≤ X₂ ∧ 1 ≤ X₁+X₂ ∧ 1 ≤ X₀+X₂ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 1 ≤ X₀
t₂₃: l2(X₀, X₁, X₂) → l3(X₀, X₁, X₂) :|: X₁ ≤ X₀ ∧ 1+X₂ ≤ X₁ ∧ 1+X₂ ≤ X₀ ∧ 0 ≤ X₂ ∧ 1 ≤ X₁+X₂ ∧ 1 ≤ X₀+X₂ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 1 ≤ X₀
t₂₆: l3(X₀, X₁, X₂) → l1(X₀, X₁, X₂) :|: X₂ ≤ 0 ∧ 1+X₂ ≤ X₁ ∧ 1+X₂ ≤ X₀ ∧ 0 ≤ X₂ ∧ 1 ≤ X₁+X₂ ∧ 1 ≤ X₀+X₂ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 1 ≤ X₀
t₂₇: l3(X₀, X₁, X₂) → l1(X₀-1, X₁, X₂) :|: 1 ≤ X₂ ∧ 1+X₂ ≤ X₁ ∧ 1+X₂ ≤ X₀ ∧ 0 ≤ X₂ ∧ 1 ≤ X₁+X₂ ∧ 1 ≤ X₀+X₂ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 1 ≤ X₀

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

new bound:

X₁ {O(n)}

MPRF:

l2 [X₁+X₂-X₀ ]
l3 [X₁+X₂-X₀ ]
l1 [X₁-X₀ ]

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

new bound:

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

MPRF:

l2 [2⋅X₁+X₂+1-2⋅X₀ ]
l3 [2⋅X₁+X₂-2⋅X₀ ]
l1 [2⋅X₁-2⋅X₀-1 ]

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

new bound:

X₁ {O(n)}

MPRF:

l2 [X₁+X₂+1-X₀ ]
l3 [X₁+X₂-X₀ ]
l1 [X₁-X₀ ]

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

new bound:

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

MPRF:

l2 [2⋅X₁-X₀ ]
l3 [2⋅X₁-X₀ ]
l1 [2⋅X₁-X₀-1 ]

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

new bound:

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

MPRF:

l2 [2⋅X₁-X₀ ]
l3 [2⋅X₁-X₀ ]
l1 [2⋅X₁-X₀-1 ]

MPRF for transition t₂₆: l3(X₀, X₁, X₂) → l1(X₀, X₁, X₂) :|: X₂ ≤ 0 ∧ 1+X₂ ≤ X₁ ∧ 1+X₂ ≤ X₀ ∧ 0 ≤ X₂ ∧ 1 ≤ X₁+X₂ ∧ 1 ≤ X₀+X₂ ∧ 1 ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 1 ≤ X₀ of depth 1:

new bound:

X₁ {O(n)}

MPRF:

l2 [X₁+1-X₀ ]
l3 [X₁+1-X₀ ]
l1 [X₁-X₀ ]

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

new bound:

X₁ {O(n)}

MPRF:

l2 [X₁+X₂+1-X₀ ]
l3 [X₁+X₂+1-X₀ ]
l1 [X₁-X₀ ]

All Bounds

Timebounds

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

Costbounds

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

Sizebounds

t₁₉, X₀: 0 {O(1)}
t₁₉, X₁: X₁ {O(n)}
t₁₉, X₂: X₂ {O(n)}
t₂₀, X₀: 5⋅X₁+2 {O(n)}
t₂₀, X₁: X₁ {O(n)}
t₂₀, X₂: 0 {O(1)}
t₂₁, X₀: 5⋅X₁+2 {O(n)}
t₂₁, X₁: 2⋅X₁ {O(n)}
t₂₁, X₂: X₂ {O(n)}
t₂₂, X₀: 5⋅X₁+2 {O(n)}
t₂₂, X₁: X₁ {O(n)}
t₂₂, X₂: 8⋅X₁+4 {O(n)}
t₂₃, X₀: 5⋅X₁+2 {O(n)}
t₂₃, X₁: X₁ {O(n)}
t₂₃, X₂: 8⋅X₁+4 {O(n)}
t₂₄, X₀: 5⋅X₁+2 {O(n)}
t₂₄, X₁: X₁ {O(n)}
t₂₄, X₂: 4⋅X₁+2 {O(n)}
t₂₅, X₀: 5⋅X₁+2 {O(n)}
t₂₅, X₁: X₁ {O(n)}
t₂₅, X₂: 4⋅X₁+2 {O(n)}
t₂₆, X₀: 5⋅X₁+2 {O(n)}
t₂₆, X₁: X₁ {O(n)}
t₂₆, X₂: 0 {O(1)}
t₂₇, X₀: 5⋅X₁+2 {O(n)}
t₂₇, X₁: X₁ {O(n)}
t₂₇, X₂: 16⋅X₁+8 {O(n)}