Initial Problem

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

Preprocessing

Cut unsatisfiable transition [t₄: f2→f2; t₆: f2→f2; t₈: f2→f2; t₁₁: f2→f2; t₁₃: f2→f2; t₁₅: f2→f2]

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

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

Problem after Preprocessing

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

knowledge_propagation leads to new time bound 1 {O(1)} for transition t₂₁₈: f2(X₀, X₁) → f2(1+X₀, 1+X₁) :|: X₀ ≤ 2 ∧ 2 ≤ X₀ ∧ 2 ≤ X₁

MPRF for transition t₂₁₁: f2(X₀, X₁) → f2(1, 2) :|: D ≤ 1 ∧ X₀ ≤ 1 ∧ X₁ ≤ 1 ∧ 1 ≤ X₀ ∧ 1 ≤ X₁ of depth 1:

new bound:

X₁+2 {O(n)}

MPRF:

• f2: [2-X₁]

MPRF for transition t₂₁₂: f2(X₀, X₁) → f2(1+X₀, 2) :|: D ≤ 1 ∧ X₁ ≤ 1 ∧ 1 ≤ X₁ ∧ 2 ≤ X₀ of depth 1:

new bound:

X₁+2 {O(n)}

MPRF:

• f2: [2-X₁]

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

new bound:

X₀+1 {O(n)}

MPRF:

• f2: [1-X₀]

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

new bound:

X₁+1 {O(n)}

MPRF:

• f2: [1-X₁]

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

new bound:

X₁+1 {O(n)}

MPRF:

• f2: [1-X₁]

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

new bound:

X₀+1 {O(n)}

MPRF:

• f2: [1-X₀]

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

new bound:

X₀+1 {O(n)}

MPRF:

• f2: [1-X₀]

Found invariant X₁ ≤ 1 ∧ 3+X₁ ≤ X₀ ∧ 4 ≤ X₀ for location f2_v10

Found invariant X₁ ≤ 2 ∧ X₀+X₁ ≤ 3 ∧ 2 ≤ X₁ ∧ 1+X₀ ≤ X₁ ∧ X₀ ≤ 1 for location f2_v7

Found invariant 3 ≤ X₁ ∧ 4 ≤ X₀+X₁ ∧ 2+X₀ ≤ X₁ ∧ X₀ ≤ 1 ∧ 1 ≤ X₀ for location f2_v3

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

Found invariant X₁ ≤ 1 ∧ X₁ ≤ X₀ ∧ X₀+X₁ ≤ 2 ∧ X₀ ≤ 1 ∧ 1 ≤ X₀ for location f2_v6

Found invariant X₁ ≤ 1 ∧ X₀+X₁ ≤ 2 ∧ X₀ ≤ 1 for location f2_v4

Found invariant X₁ ≤ 2 ∧ 1+X₁ ≤ X₀ ∧ 2 ≤ X₁ ∧ 5 ≤ X₀+X₁ ∧ 3 ≤ X₀ for location f2_v8

Found invariant X₁ ≤ 2 ∧ X₁ ≤ 1+X₀ ∧ X₀+X₁ ≤ 3 ∧ 2 ≤ X₁ ∧ 3 ≤ X₀+X₁ ∧ 1+X₀ ≤ X₁ ∧ X₀ ≤ 1 ∧ 1 ≤ X₀ for location f2_v9

Found invariant X₁ ≤ 1 ∧ 2+X₁ ≤ X₀ ∧ 3 ≤ X₀ for location f2_v5

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

Found invariant 3 ≤ X₁ ∧ 2+X₀ ≤ X₁ ∧ X₀ ≤ 1 for location f2_v1

Found invariant 3 ≤ X₁ ∧ 6 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 3 ∧ 3 ≤ X₀ for location f2_v2

All Bounds

Timebounds

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

Costbounds

Overall costbound: inf {Infinity}
t₂₁₀: 1 {O(1)}
t₂₁₁: X₁+2 {O(n)}
t₂₁₂: X₁+2 {O(n)}
t₂₁₃: X₀+1 {O(n)}
t₂₁₄: X₁+1 {O(n)}
t₂₁₅: X₁+1 {O(n)}
t₂₁₆: X₀+1 {O(n)}
t₂₁₇: inf {Infinity}
t₂₁₈: 1 {O(1)}
t₂₁₉: X₀+1 {O(n)}
t₂₂₀: 1 {O(1)}

Sizebounds

t₂₁₀, X₀: X₀ {O(n)}
t₂₁₀, X₁: X₁ {O(n)}
t₂₁₁, X₀: 1 {O(1)}
t₂₁₁, X₁: 2 {O(1)}
t₂₁₂, X₀: 2⋅X₀+X₁+3 {O(n)}
t₂₁₂, X₁: 2 {O(1)}
t₂₁₃, X₀: 2⋅X₀+3 {O(n)}
t₂₁₃, X₁: 2 {O(1)}
t₂₁₄, X₀: 1 {O(1)}
t₂₁₄, X₁: 2⋅X₁+2 {O(n)}
t₂₁₅, X₀: X₀+X₁+1 {O(n)}
t₂₁₅, X₁: X₁+1 {O(n)}
t₂₁₆, X₀: X₀+1 {O(n)}
t₂₁₆, X₁: X₁+1 {O(n)}
t₂₁₇, X₀: 1 {O(1)}
t₂₁₈, X₀: 3 {O(1)}
t₂₁₈, X₁: X₁+1 {O(n)}
t₂₁₉, X₀: 3⋅X₀+4 {O(n)}
t₂₁₉, X₁: X₀+X₁+3 {O(n)}
t₂₂₀, X₀: 3⋅X₀+X₁+6 {O(n)}
t₂₂₀, X₁: 2⋅X₁+3 {O(n)}