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)}