Initial Problem

Start: f2
Program_Vars: X₀, X₁, X₂, X₃, X₄
Temp_Vars: F
Locations: f1, f2, f300
Transitions:
t₀: f2(X₀, X₁, X₂, X₃, X₄) → f1(X₀, F, X₂, X₃, X₄) :|: X₀ ≤ 1
t₁: f2(X₀, X₁, X₂, X₃, X₄) → f300(X₀, X₁, X₂, X₃, X₄) :|: 2 ≤ X₀ ∧ 2 ≤ X₂
t₂: f300(X₀, X₁, X₂, X₃, X₄) → f1(X₀, F, X₂, X₃, X₄) :|: 0 ≤ 1+X₃
t₃: f300(X₀, X₁, X₂, X₃, X₄) → f300(X₀, X₁, X₂, 1+X₃, 1+X₄) :|: 2+X₃ ≤ 0 ∧ 0 ≤ X₄
t₄: f300(X₀, X₁, X₂, X₃, X₄) → f300(X₀, X₁, X₂, 1+X₃, 1+X₄) :|: 2+X₃ ≤ 0 ∧ 2+X₄ ≤ 0

Preprocessing

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

Found invariant 2 ≤ X₁ ∧ 4 ≤ X₀+X₁ ∧ 2 ≤ X₀ for location f300

Problem after Preprocessing

Start: f2
Program_Vars: X₀, X₁, X₂, X₃
Temp_Vars:
Locations: f1, f2, f300
Transitions:
t₁₂: f2(X₀, X₁, X₂, X₃) → f1(X₀, X₁, X₂, X₃) :|: X₀ ≤ 1
t₁₃: f2(X₀, X₁, X₂, X₃) → f300(X₀, X₁, X₂, X₃) :|: 2 ≤ X₀ ∧ 2 ≤ X₁
t₁₄: f300(X₀, X₁, X₂, X₃) → f1(X₀, X₁, X₂, X₃) :|: 0 ≤ 1+X₂ ∧ 2 ≤ X₀ ∧ 2 ≤ X₁ ∧ 4 ≤ X₀+X₁
t₁₅: f300(X₀, X₁, X₂, X₃) → f300(X₀, X₁, 1+X₂, 1+X₃) :|: 2+X₂ ≤ 0 ∧ 0 ≤ X₃ ∧ 2 ≤ X₀ ∧ 2 ≤ X₁ ∧ 4 ≤ X₀+X₁
t₁₆: f300(X₀, X₁, X₂, X₃) → f300(X₀, X₁, 1+X₂, 1+X₃) :|: 2+X₂ ≤ 0 ∧ 2+X₃ ≤ 0 ∧ 2 ≤ X₀ ∧ 2 ≤ X₁ ∧ 4 ≤ X₀+X₁

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

new bound:

X₂ {O(n)}

MPRF:

• f300: [-X₂]

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

new bound:

X₂ {O(n)}

MPRF:

• f300: [-X₂]

All Bounds

Timebounds

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

Costbounds

Overall costbound: 2⋅X₂+3 {O(n)}
t₁₂: 1 {O(1)}
t₁₃: 1 {O(1)}
t₁₄: 1 {O(1)}
t₁₅: X₂ {O(n)}
t₁₆: X₂ {O(n)}

Sizebounds

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)}
t₁₃, X₁: X₁ {O(n)}
t₁₃, X₂: X₂ {O(n)}
t₁₃, X₃: X₃ {O(n)}
t₁₄, X₀: 3⋅X₀ {O(n)}
t₁₄, X₁: 3⋅X₁ {O(n)}
t₁₄, X₂: 3⋅X₂ {O(n)}
t₁₄, X₃: 3⋅X₃+X₂ {O(n)}
t₁₅, X₀: X₀ {O(n)}
t₁₅, X₁: X₁ {O(n)}
t₁₅, X₂: X₂ {O(n)}
t₁₅, X₃: X₂+X₃ {O(n)}
t₁₆, X₀: X₀ {O(n)}
t₁₆, X₁: X₁ {O(n)}
t₁₆, X₂: X₂ {O(n)}
t₁₆, X₃: X₃ {O(n)}