Initial Problem

Start: f0
Program_Vars: X₀, X₁, X₂, X₃, X₄
Temp_Vars:
Locations: f0, f20, f31, f4
Transitions:
t₀: f0(X₀, X₁, X₂, X₃, X₄) → f4(0, X₁, X₂, X₃, X₄)
t₁: f20(X₀, X₁, X₂, X₃, X₄) → f20(X₀, 1+X₁, X₁, X₃, X₄) :|: X₁ ≤ 199
t₂: f20(X₀, X₁, X₂, X₃, X₄) → f31(X₀, X₁, X₂, X₃, X₄) :|: 200 ≤ X₁
t₄: f4(X₀, X₁, X₂, X₃, X₄) → f20(X₀, 100, X₂, X₃, X₄) :|: 100 ≤ X₀
t₃: f4(X₀, X₁, X₂, X₃, X₄) → f4(1+X₀, X₁, X₂, X₀, X₀) :|: X₀ ≤ 99

Preprocessing

Eliminate variables [X₂; X₃; X₄] that do not contribute to the problem

Found invariant X₁ ≤ 200 ∧ X₁ ≤ 100+X₀ ∧ X₀+X₁ ≤ 300 ∧ 100 ≤ X₁ ∧ 200 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 100 ∧ 100 ≤ X₀ for location f20

Found invariant X₁ ≤ 200 ∧ X₁ ≤ 100+X₀ ∧ X₀+X₁ ≤ 300 ∧ 200 ≤ X₁ ∧ 300 ≤ X₀+X₁ ∧ 100+X₀ ≤ X₁ ∧ X₀ ≤ 100 ∧ 100 ≤ X₀ for location f31

Found invariant X₀ ≤ 100 ∧ 0 ≤ X₀ for location f4

Problem after Preprocessing

Start: f0
Program_Vars: X₀, X₁
Temp_Vars:
Locations: f0, f20, f31, f4
Transitions:
t₁₁: f0(X₀, X₁) → f4(0, X₁)
t₁₂: f20(X₀, X₁) → f20(X₀, 1+X₁) :|: X₁ ≤ 199 ∧ X₀+X₁ ≤ 300 ∧ X₁ ≤ 200 ∧ X₁ ≤ 100+X₀ ∧ X₀ ≤ 100 ∧ 100 ≤ X₀ ∧ 100 ≤ X₁ ∧ 200 ≤ X₀+X₁ ∧ X₀ ≤ X₁
t₁₃: f20(X₀, X₁) → f31(X₀, X₁) :|: 200 ≤ X₁ ∧ X₀+X₁ ≤ 300 ∧ X₁ ≤ 200 ∧ X₁ ≤ 100+X₀ ∧ X₀ ≤ 100 ∧ 100 ≤ X₀ ∧ 100 ≤ X₁ ∧ 200 ≤ X₀+X₁ ∧ X₀ ≤ X₁
t₁₄: f4(X₀, X₁) → f20(X₀, 100) :|: 100 ≤ X₀ ∧ X₀ ≤ 100 ∧ 0 ≤ X₀
t₁₅: f4(X₀, X₁) → f4(1+X₀, X₁) :|: X₀ ≤ 99 ∧ X₀ ≤ 100 ∧ 0 ≤ X₀

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

new bound:

101 {O(1)}

MPRF:

• f4: [101-X₀]

MPRF for transition t₁₂: f20(X₀, X₁) → f20(X₀, 1+X₁) :|: X₁ ≤ 199 ∧ X₀+X₁ ≤ 300 ∧ X₁ ≤ 200 ∧ X₁ ≤ 100+X₀ ∧ X₀ ≤ 100 ∧ 100 ≤ X₀ ∧ 100 ≤ X₁ ∧ 200 ≤ X₀+X₁ ∧ X₀ ≤ X₁ of depth 1:

new bound:

300 {O(1)}

MPRF:

• f20: [200-X₁]

All Bounds

Timebounds

Overall timebound:404 {O(1)}
t₁₁: 1 {O(1)}
t₁₂: 300 {O(1)}
t₁₃: 1 {O(1)}
t₁₄: 1 {O(1)}
t₁₅: 101 {O(1)}

Costbounds

Overall costbound: 404 {O(1)}
t₁₁: 1 {O(1)}
t₁₂: 300 {O(1)}
t₁₃: 1 {O(1)}
t₁₄: 1 {O(1)}
t₁₅: 101 {O(1)}

Sizebounds

t₁₁, X₀: 0 {O(1)}
t₁₁, X₁: X₁ {O(n)}
t₁₂, X₀: 100 {O(1)}
t₁₂, X₁: 200 {O(1)}
t₁₃, X₀: 100 {O(1)}
t₁₃, X₁: 200 {O(1)}
t₁₄, X₀: 100 {O(1)}
t₁₄, X₁: 100 {O(1)}
t₁₅, X₀: 100 {O(1)}
t₁₅, X₁: X₁ {O(n)}