Initial Problem

Start: f0
Program_Vars: X₀, X₁, X₂, X₃
Temp_Vars: E
Locations: f0, f16, f20, f4, f8
Transitions:
t₀: f0(X₀, X₁, X₂, X₃) → f4(0, X₁, X₂, X₃)
t₆: f16(X₀, X₁, X₂, X₃) → f4(X₀, X₁, X₂, X₃) :|: X₂ ≤ 0
t₇: f16(X₀, X₁, X₂, X₃) → f4(X₀-1, X₁, X₂, X₃) :|: 1 ≤ X₂
t₈: f4(X₀, X₁, X₂, X₃) → f20(X₀, X₁, X₂, X₃) :|: X₁ ≤ X₀
t₁: f4(X₀, X₁, X₂, X₃) → f8(1+X₀, X₁, 0, X₃) :|: 1+X₀ ≤ X₁
t₂: f8(X₀, X₁, X₂, X₃) → f16(X₀, X₁, X₂, 0) :|: 1+X₀ ≤ X₁
t₃: f8(X₀, X₁, X₂, X₃) → f16(X₀, X₁, X₂, X₃) :|: X₁ ≤ X₀
t₄: f8(X₀, X₁, X₂, X₃) → f8(1+X₀, X₁, 1+X₂, E) :|: 1+E ≤ 0 ∧ 1+X₀ ≤ X₁
t₅: f8(X₀, X₁, X₂, X₃) → f8(1+X₀, X₁, 1+X₂, E) :|: 1 ≤ E ∧ 1+X₀ ≤ 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 f16

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

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 f8

Found invariant 0 ≤ X₀ for location f4

Problem after Preprocessing

Start: f0
Program_Vars: X₀, X₁, X₂
Temp_Vars: E
Locations: f0, f16, f20, f4, f8
Transitions:
t₁₈: f0(X₀, X₁, X₂) → f4(0, X₁, X₂)
t₁₉: f16(X₀, X₁, X₂) → f4(X₀, X₁, X₂) :|: X₂ ≤ 0 ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₂ ∧ 1+X₂ ≤ X₀ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₂ ∧ 1+X₂ ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₂
t₂₀: f16(X₀, X₁, X₂) → f4(X₀-1, X₁, X₂) :|: 1 ≤ X₂ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₂ ∧ 1+X₂ ≤ X₀ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₂ ∧ 1+X₂ ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₂
t₂₁: f4(X₀, X₁, X₂) → f20(X₀, X₁, X₂) :|: X₁ ≤ X₀ ∧ 0 ≤ X₀
t₂₂: f4(X₀, X₁, X₂) → f8(1+X₀, X₁, 0) :|: 1+X₀ ≤ X₁ ∧ 0 ≤ X₀
t₂₃: f8(X₀, X₁, X₂) → f16(X₀, X₁, X₂) :|: 1+X₀ ≤ X₁ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₂ ∧ 1+X₂ ≤ X₀ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₂ ∧ 1+X₂ ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₂
t₂₄: f8(X₀, X₁, X₂) → f16(X₀, X₁, X₂) :|: X₁ ≤ X₀ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₂ ∧ 1+X₂ ≤ X₀ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₂ ∧ 1+X₂ ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₂
t₂₅: f8(X₀, X₁, X₂) → f8(1+X₀, X₁, 1+X₂) :|: 1+E ≤ 0 ∧ 1+X₀ ≤ X₁ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₂ ∧ 1+X₂ ≤ X₀ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₂ ∧ 1+X₂ ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₂
t₂₆: f8(X₀, X₁, X₂) → f8(1+X₀, X₁, 1+X₂) :|: 1 ≤ E ∧ 1+X₀ ≤ X₁ ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₂ ∧ 1+X₂ ≤ X₀ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₂ ∧ 1+X₂ ≤ X₁ ∧ 2 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ 0 ≤ X₂

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

new bound:

X₁ {O(n)}

MPRF:

• f16: [1+X₁-X₀]
• f4: [X₁-X₀]
• f8: [1+X₁-X₀]

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

new bound:

X₁ {O(n)}

MPRF:

• f16: [1+X₁+X₂-X₀]
• f4: [X₁-X₀]
• f8: [1+X₁+X₂-X₀]

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

new bound:

X₁ {O(n)}

MPRF:

• f16: [X₁+X₂-X₀]
• f4: [X₁-X₀]
• f8: [X₁+X₂-X₀]

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

new bound:

X₁ {O(n)}

MPRF:

• f16: [X₁+X₂-X₀]
• f4: [X₁-X₀]
• f8: [1+X₁+X₂-X₀]

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

new bound:

X₁ {O(n)}

MPRF:

• f16: [X₁+X₂-X₀]
• f4: [X₁-X₀]
• f8: [1+X₁+X₂-X₀]

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

new bound:

X₁ {O(n)}

MPRF:

• f16: [1+X₁-X₀]
• f4: [X₁-X₀]
• f8: [1+X₁-X₀]

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

new bound:

X₁ {O(n)}

MPRF:

• f16: [1+X₁-X₀]
• f4: [X₁-X₀]
• f8: [1+X₁-X₀]

All Bounds

Timebounds

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

Costbounds

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