Initial Problem
Start: l0
Program_Vars: X₀, X₁, X₂, X₃, X₄
Temp_Vars: nondef.0
Locations: l0, l1, l2, l3, l4, l5, l6, l7
Transitions:
t₀: l0(X₀, X₁, X₂, X₃, X₄) → l6(X₀, X₁, X₂, X₃, X₄)
t₈: l1(X₀, X₁, X₂, X₃, X₄) → l4(X₀+1, X₁, X₂, X₃, X₄) :|: X₁ < 0
t₉: l1(X₀, X₁, X₂, X₃, X₄) → l4(X₀+1, X₁, X₂, X₃, X₄) :|: 0 < X₁
t₁₀: l1(X₀, X₁, X₂, X₃, X₄) → l4(X₀+1, X₁, X₂, X₃, X₄) :|: X₁ ≤ 0 ∧ 0 ≤ X₁
t₅: l2(X₀, X₁, X₂, X₃, X₄) → l3(X₀, X₁, X₂, X₃, X₄)
t₇: l3(X₀, X₁, X₂, X₃, X₄) → l1(X₀, nondef.0, X₂, X₃, X₄)
t₃: l4(X₀, X₁, X₂, X₃, X₄) → l2(X₀, X₁, X₂, X₃, X₄) :|: X₀ ≤ X₃
t₄: l4(X₀, X₁, X₂, X₃, X₄) → l5(X₀, X₁, X₂, X₃, X₄) :|: X₃ < X₀
t₁₁: l5(X₀, X₁, X₂, X₃, X₄) → l7(X₀, X₁, X₂, X₃, X₄)
t₁: l6(X₀, X₁, X₂, X₃, X₄) → l4(1, X₁, X₂, X₃, X₄) :|: 0 < X₃
t₂: l6(X₀, X₁, X₂, X₃, X₄) → l5(X₀, X₁, X₂, X₃, X₄) :|: X₃ ≤ 0
Preprocessing
Eliminate variables {X₂,X₄} that do not contribute to the problem
Found invariant 1 ≤ X₃ ∧ 2 ≤ X₀+X₃ ∧ X₀ ≤ X₃ ∧ 1 ≤ X₀ for location l2
Found invariant 1 ≤ X₃ ∧ 2 ≤ X₀+X₃ ∧ X₀ ≤ X₃ ∧ 1 ≤ X₀ for location l1
Found invariant 1 ≤ X₃ ∧ 2 ≤ X₀+X₃ ∧ X₀ ≤ 1+X₃ ∧ 1 ≤ X₀ for location l4
Found invariant 1 ≤ X₃ ∧ 2 ≤ X₀+X₃ ∧ X₀ ≤ X₃ ∧ 1 ≤ X₀ for location l3
Problem after Preprocessing
Start: l0
Program_Vars: X₀, X₁, X₃
Temp_Vars: nondef.0
Locations: l0, l1, l2, l3, l4, l5, l6, l7
Transitions:
t₂₄: l0(X₀, X₁, X₃) → l6(X₀, X₁, X₃)
t₂₅: l1(X₀, X₁, X₃) → l4(X₀+1, X₁, X₃) :|: X₁ < 0 ∧ 1 ≤ X₃ ∧ 2 ≤ X₀+X₃ ∧ X₀ ≤ X₃ ∧ 1 ≤ X₀
t₂₆: l1(X₀, X₁, X₃) → l4(X₀+1, X₁, X₃) :|: 0 < X₁ ∧ 1 ≤ X₃ ∧ 2 ≤ X₀+X₃ ∧ X₀ ≤ X₃ ∧ 1 ≤ X₀
t₂₇: l1(X₀, X₁, X₃) → l4(X₀+1, X₁, X₃) :|: X₁ ≤ 0 ∧ 0 ≤ X₁ ∧ 1 ≤ X₃ ∧ 2 ≤ X₀+X₃ ∧ X₀ ≤ X₃ ∧ 1 ≤ X₀
t₂₈: l2(X₀, X₁, X₃) → l3(X₀, X₁, X₃) :|: 1 ≤ X₃ ∧ 2 ≤ X₀+X₃ ∧ X₀ ≤ X₃ ∧ 1 ≤ X₀
t₂₉: l3(X₀, X₁, X₃) → l1(X₀, nondef.0, X₃) :|: 1 ≤ X₃ ∧ 2 ≤ X₀+X₃ ∧ X₀ ≤ X₃ ∧ 1 ≤ X₀
t₃₀: l4(X₀, X₁, X₃) → l2(X₀, X₁, X₃) :|: X₀ ≤ X₃ ∧ 1 ≤ X₃ ∧ 2 ≤ X₀+X₃ ∧ X₀ ≤ 1+X₃ ∧ 1 ≤ X₀
t₃₁: l4(X₀, X₁, X₃) → l5(X₀, X₁, X₃) :|: X₃ < X₀ ∧ 1 ≤ X₃ ∧ 2 ≤ X₀+X₃ ∧ X₀ ≤ 1+X₃ ∧ 1 ≤ X₀
t₃₂: l5(X₀, X₁, X₃) → l7(X₀, X₁, X₃)
t₃₃: l6(X₀, X₁, X₃) → l4(1, X₁, X₃) :|: 0 < X₃
t₃₄: l6(X₀, X₁, X₃) → l5(X₀, X₁, X₃) :|: X₃ ≤ 0
MPRF for transition t₂₅: l1(X₀, X₁, X₃) → l4(X₀+1, X₁, X₃) :|: X₁ < 0 ∧ 1 ≤ X₃ ∧ 2 ≤ X₀+X₃ ∧ X₀ ≤ X₃ ∧ 1 ≤ X₀ of depth 1:
new bound:
X₃+2 {O(n)}
MPRF:
l3 [X₃+1-X₀ ]
l1 [X₃+1-X₀ ]
l4 [X₃+1-X₀ ]
l2 [X₃+1-X₀ ]
MPRF for transition t₂₆: l1(X₀, X₁, X₃) → l4(X₀+1, X₁, X₃) :|: 0 < X₁ ∧ 1 ≤ X₃ ∧ 2 ≤ X₀+X₃ ∧ X₀ ≤ X₃ ∧ 1 ≤ X₀ of depth 1:
new bound:
X₃+2 {O(n)}
MPRF:
l3 [X₃+1-X₀ ]
l1 [X₃+1-X₀ ]
l4 [X₃+1-X₀ ]
l2 [X₃+1-X₀ ]
MPRF for transition t₂₇: l1(X₀, X₁, X₃) → l4(X₀+1, X₁, X₃) :|: X₁ ≤ 0 ∧ 0 ≤ X₁ ∧ 1 ≤ X₃ ∧ 2 ≤ X₀+X₃ ∧ X₀ ≤ X₃ ∧ 1 ≤ X₀ of depth 1:
new bound:
X₃+2 {O(n)}
MPRF:
l3 [X₃+1-X₀ ]
l1 [X₃+1-X₀ ]
l4 [X₃+1-X₀ ]
l2 [X₃+1-X₀ ]
MPRF for transition t₂₈: l2(X₀, X₁, X₃) → l3(X₀, X₁, X₃) :|: 1 ≤ X₃ ∧ 2 ≤ X₀+X₃ ∧ X₀ ≤ X₃ ∧ 1 ≤ X₀ of depth 1:
new bound:
2⋅X₃+1 {O(n)}
MPRF:
l3 [2⋅X₃-X₀-1 ]
l1 [2⋅X₃-X₀-1 ]
l4 [2⋅X₃-X₀ ]
l2 [2⋅X₃-X₀ ]
MPRF for transition t₂₉: l3(X₀, X₁, X₃) → l1(X₀, nondef.0, X₃) :|: 1 ≤ X₃ ∧ 2 ≤ X₀+X₃ ∧ X₀ ≤ X₃ ∧ 1 ≤ X₀ of depth 1:
new bound:
2⋅X₃+1 {O(n)}
MPRF:
l3 [2⋅X₃-X₀ ]
l1 [2⋅X₃-X₀-1 ]
l4 [2⋅X₃-X₀ ]
l2 [2⋅X₃-X₀ ]
MPRF for transition t₃₀: l4(X₀, X₁, X₃) → l2(X₀, X₁, X₃) :|: X₀ ≤ X₃ ∧ 1 ≤ X₃ ∧ 2 ≤ X₀+X₃ ∧ X₀ ≤ 1+X₃ ∧ 1 ≤ X₀ of depth 1:
new bound:
X₃+3 {O(n)}
MPRF:
l3 [X₃+1-X₀ ]
l1 [X₃+1-X₀ ]
l4 [X₃+2-X₀ ]
l2 [X₃+1-X₀ ]
All Bounds
Timebounds
Overall timebound:8⋅X₃+16 {O(n)}
t₂₄: 1 {O(1)}
t₂₅: X₃+2 {O(n)}
t₂₆: X₃+2 {O(n)}
t₂₇: X₃+2 {O(n)}
t₂₈: 2⋅X₃+1 {O(n)}
t₂₉: 2⋅X₃+1 {O(n)}
t₃₀: X₃+3 {O(n)}
t₃₁: 1 {O(1)}
t₃₂: 1 {O(1)}
t₃₃: 1 {O(1)}
t₃₄: 1 {O(1)}
Costbounds
Overall costbound: 8⋅X₃+16 {O(n)}
t₂₄: 1 {O(1)}
t₂₅: X₃+2 {O(n)}
t₂₆: X₃+2 {O(n)}
t₂₇: X₃+2 {O(n)}
t₂₈: 2⋅X₃+1 {O(n)}
t₂₉: 2⋅X₃+1 {O(n)}
t₃₀: X₃+3 {O(n)}
t₃₁: 1 {O(1)}
t₃₂: 1 {O(1)}
t₃₃: 1 {O(1)}
t₃₄: 1 {O(1)}
Sizebounds
t₂₄, X₀: X₀ {O(n)}
t₂₄, X₁: X₁ {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₁: 0 {O(1)}
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₃: X₃ {O(n)}
t₃₁, X₀: 9⋅X₃+21 {O(n)}
t₃₁, X₃: 3⋅X₃ {O(n)}
t₃₂, X₀: 9⋅X₃+X₀+21 {O(n)}
t₃₂, X₃: 4⋅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₁: X₁ {O(n)}
t₃₄, X₃: X₃ {O(n)}