Initial Problem

Start: f0
Program_Vars: X₀, X₁, X₂
Temp_Vars: D, E
Locations: f0, f14, f23, f28, f38, f8
Transitions:
t₀: f0(X₀, X₁, X₂) → f8(0, X₁, X₂)
t₁₀: f14(X₀, X₁, X₂) → f8(1+X₀, X₁, X₂)
t₁₁: f14(X₀, X₁, X₂) → f8(1+X₀, X₁, X₂) :|: D ≤ 998
t₅: f23(X₀, X₁, X₂) → f23(1+X₀, X₁, X₂) :|: X₀ ≤ 999
t₃: f23(X₀, X₁, X₂) → f28(X₀, X₁, D) :|: X₀ ≤ 999 ∧ 1+E ≤ 0
t₄: f23(X₀, X₁, X₂) → f28(X₀, X₁, D) :|: X₀ ≤ 999
t₈: f23(X₀, X₁, X₂) → f38(X₀, X₁, X₂) :|: 1000 ≤ X₀
t₆: f28(X₀, X₁, X₂) → f23(1+X₀, X₁, X₂)
t₇: f28(X₀, X₁, X₂) → f23(1+X₀, X₁, X₂) :|: D ≤ 998
t₁: f8(X₀, X₁, X₂) → f14(X₀, X₀, X₂) :|: D ≤ 999 ∧ X₀ ≤ 999
t₂: f8(X₀, X₁, X₂) → f14(X₀, X₀, X₂) :|: X₀ ≤ 999
t₁₂: f8(X₀, X₁, X₂) → f23(0, X₁, X₂) :|: 1000 ≤ X₀
t₉: f8(X₀, X₁, X₂) → f8(1+X₀, X₀, X₂) :|: X₀ ≤ 999

Preprocessing

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

Found invariant 1000 ≤ X₀ for location f38

Found invariant X₀ ≤ 999 ∧ 0 ≤ X₀ for location f14

Found invariant 0 ≤ X₀ for location f23

Found invariant X₀ ≤ 999 ∧ 0 ≤ X₀ for location f28

Found invariant 0 ≤ X₀ for location f8

Problem after Preprocessing

Start: f0
Program_Vars: X₀
Temp_Vars: D, E
Locations: f0, f14, f23, f28, f38, f8
Transitions:
t₂₇: f0(X₀) → f8(0)
t₂₈: f14(X₀) → f8(1+X₀) :|: X₀ ≤ 999 ∧ 0 ≤ X₀
t₂₉: f14(X₀) → f8(1+X₀) :|: D ≤ 998 ∧ X₀ ≤ 999 ∧ 0 ≤ X₀
t₃₀: f23(X₀) → f23(1+X₀) :|: X₀ ≤ 999 ∧ 0 ≤ X₀
t₃₁: f23(X₀) → f28(X₀) :|: X₀ ≤ 999 ∧ 1+E ≤ 0 ∧ 0 ≤ X₀
t₃₂: f23(X₀) → f28(X₀) :|: X₀ ≤ 999 ∧ 0 ≤ X₀
t₃₃: f23(X₀) → f38(X₀) :|: 1000 ≤ X₀ ∧ 0 ≤ X₀
t₃₄: f28(X₀) → f23(1+X₀) :|: X₀ ≤ 999 ∧ 0 ≤ X₀
t₃₅: f28(X₀) → f23(1+X₀) :|: D ≤ 998 ∧ X₀ ≤ 999 ∧ 0 ≤ X₀
t₃₆: f8(X₀) → f14(X₀) :|: D ≤ 999 ∧ X₀ ≤ 999 ∧ 0 ≤ X₀
t₃₇: f8(X₀) → f14(X₀) :|: X₀ ≤ 999 ∧ 0 ≤ X₀
t₃₈: f8(X₀) → f23(0) :|: 1000 ≤ X₀ ∧ 0 ≤ X₀
t₃₉: f8(X₀) → f8(1+X₀) :|: X₀ ≤ 999 ∧ 0 ≤ X₀

MPRF for transition t₂₈: f14(X₀) → f8(1+X₀) :|: X₀ ≤ 999 ∧ 0 ≤ X₀ of depth 1:

new bound:

1000 {O(1)}

MPRF:

• f14: [1000-X₀]
• f8: [1000-X₀]

MPRF for transition t₂₉: f14(X₀) → f8(1+X₀) :|: D ≤ 998 ∧ X₀ ≤ 999 ∧ 0 ≤ X₀ of depth 1:

new bound:

1000 {O(1)}

MPRF:

• f14: [1000-X₀]
• f8: [1000-X₀]

MPRF for transition t₃₆: f8(X₀) → f14(X₀) :|: D ≤ 999 ∧ X₀ ≤ 999 ∧ 0 ≤ X₀ of depth 1:

new bound:

1000 {O(1)}

MPRF:

• f14: [999-X₀]
• f8: [1000-X₀]

MPRF for transition t₃₇: f8(X₀) → f14(X₀) :|: X₀ ≤ 999 ∧ 0 ≤ X₀ of depth 1:

new bound:

1000 {O(1)}

MPRF:

• f14: [999-X₀]
• f8: [1000-X₀]

MPRF for transition t₃₉: f8(X₀) → f8(1+X₀) :|: X₀ ≤ 999 ∧ 0 ≤ X₀ of depth 1:

new bound:

1000 {O(1)}

MPRF:

• f14: [999-X₀]
• f8: [1000-X₀]

MPRF for transition t₃₀: f23(X₀) → f23(1+X₀) :|: X₀ ≤ 999 ∧ 0 ≤ X₀ of depth 1:

new bound:

1000 {O(1)}

MPRF:

• f23: [1000-X₀]
• f28: [999-X₀]

MPRF for transition t₃₁: f23(X₀) → f28(X₀) :|: X₀ ≤ 999 ∧ 1+E ≤ 0 ∧ 0 ≤ X₀ of depth 1:

new bound:

1000 {O(1)}

MPRF:

• f23: [1000-X₀]
• f28: [999-X₀]

MPRF for transition t₃₂: f23(X₀) → f28(X₀) :|: X₀ ≤ 999 ∧ 0 ≤ X₀ of depth 1:

new bound:

1000 {O(1)}

MPRF:

• f23: [1000-X₀]
• f28: [999-X₀]

MPRF for transition t₃₄: f28(X₀) → f23(1+X₀) :|: X₀ ≤ 999 ∧ 0 ≤ X₀ of depth 1:

new bound:

1000 {O(1)}

MPRF:

• f23: [1000-X₀]
• f28: [1000-X₀]

MPRF for transition t₃₅: f28(X₀) → f23(1+X₀) :|: D ≤ 998 ∧ X₀ ≤ 999 ∧ 0 ≤ X₀ of depth 1:

new bound:

1000 {O(1)}

MPRF:

• f23: [1000-X₀]
• f28: [1000-X₀]

All Bounds

Timebounds

Overall timebound:10003 {O(1)}
t₂₇: 1 {O(1)}
t₂₈: 1000 {O(1)}
t₂₉: 1000 {O(1)}
t₃₀: 1000 {O(1)}
t₃₁: 1000 {O(1)}
t₃₂: 1000 {O(1)}
t₃₃: 1 {O(1)}
t₃₄: 1000 {O(1)}
t₃₅: 1000 {O(1)}
t₃₆: 1000 {O(1)}
t₃₇: 1000 {O(1)}
t₃₈: 1 {O(1)}
t₃₉: 1000 {O(1)}

Costbounds

Overall costbound: 10003 {O(1)}
t₂₇: 1 {O(1)}
t₂₈: 1000 {O(1)}
t₂₉: 1000 {O(1)}
t₃₀: 1000 {O(1)}
t₃₁: 1000 {O(1)}
t₃₂: 1000 {O(1)}
t₃₃: 1 {O(1)}
t₃₄: 1000 {O(1)}
t₃₅: 1000 {O(1)}
t₃₆: 1000 {O(1)}
t₃₇: 1000 {O(1)}
t₃₈: 1 {O(1)}
t₃₉: 1000 {O(1)}

Sizebounds

t₂₇, X₀: 0 {O(1)}
t₂₈, X₀: 1000 {O(1)}
t₂₉, X₀: 1000 {O(1)}
t₃₀, X₀: 1000 {O(1)}
t₃₁, X₀: 999 {O(1)}
t₃₂, X₀: 999 {O(1)}
t₃₃, X₀: 3000 {O(1)}
t₃₄, X₀: 1000 {O(1)}
t₃₅, X₀: 1000 {O(1)}
t₃₆, X₀: 999 {O(1)}
t₃₇, X₀: 999 {O(1)}
t₃₈, X₀: 0 {O(1)}
t₃₉, X₀: 1000 {O(1)}