Initial Problem
Start: f5
Program_Vars: X₀, X₁, X₂, X₃, X₄
Temp_Vars: F
Locations: f1, f2, f300, f4, f5
Transitions:
t₇: f2(X₀, X₁, X₂, X₃, X₄) → f2(X₀, X₁, X₂, 0, X₄) :|: 1+X₀ ≤ X₁
t₅: f2(X₀, X₁, X₂, X₃, X₄) → f4(1+X₀, X₁, X₂, F, X₄) :|: 1 ≤ F ∧ 1+X₀ ≤ X₁
t₆: f2(X₀, X₁, X₂, X₃, X₄) → f4(1+X₀, X₁, X₂, F, X₄) :|: 1+F ≤ 0 ∧ 1+X₀ ≤ X₁
t₈: f300(X₀, X₁, X₂, X₃, X₄) → f1(X₀, X₁, X₂, X₃, F) :|: X₀ ≤ X₂
t₁₂: f300(X₀, X₁, X₂, X₃, X₄) → f2(X₀, X₁, X₂, 0, X₄) :|: 1+X₂ ≤ X₀ ∧ 1+X₀ ≤ X₁
t₉: f300(X₀, X₁, X₂, X₃, X₄) → f300(X₀, X₁, 1+X₂, X₃, X₄) :|: 1+X₂ ≤ X₀ ∧ X₁ ≤ X₀
t₁₀: f300(X₀, X₁, X₂, X₃, X₄) → f4(1+X₀, X₁, X₂, F, X₄) :|: 1 ≤ F ∧ 1+X₂ ≤ X₀ ∧ 1+X₀ ≤ X₁
t₁₁: f300(X₀, X₁, X₂, X₃, X₄) → f4(1+X₀, X₁, X₂, F, X₄) :|: 1+F ≤ 0 ∧ 1+X₂ ≤ X₀ ∧ 1+X₀ ≤ X₁
t₄: f4(X₀, X₁, X₂, X₃, X₄) → f2(X₀, X₁, X₂, 0, X₄) :|: 1+X₀ ≤ X₁
t₁: f4(X₀, X₁, X₂, X₃, X₄) → f300(X₀, X₁, 1+X₂, X₃, X₄) :|: X₁ ≤ X₀
t₂: f4(X₀, X₁, X₂, X₃, X₄) → f4(1+X₀, X₁, X₂, F, X₄) :|: 1 ≤ F ∧ 1+X₀ ≤ X₁
t₃: f4(X₀, X₁, X₂, X₃, X₄) → f4(1+X₀, X₁, X₂, F, X₄) :|: 1+F ≤ 0 ∧ 1+X₀ ≤ X₁
t₀: f5(X₀, X₁, X₂, X₃, X₄) → f300(X₀, X₁, X₂, X₃, X₄)
Preprocessing
Eliminate variables [X₃; X₄] that do not contribute to the problem
Found invariant X₀ ≤ X₂ for location f1
Found invariant 2+X₂ ≤ X₁ ∧ 1+X₂ ≤ X₀ ∧ 1+X₀ ≤ X₁ for location f2
Found invariant 2+X₂ ≤ X₁ ∧ 2+X₂ ≤ X₀ ∧ X₀ ≤ X₁ for location f4
Problem after Preprocessing
Start: f5
Program_Vars: X₀, X₁, X₂
Temp_Vars: F
Locations: f1, f2, f300, f4, f5
Transitions:
t₂₆: f2(X₀, X₁, X₂) → f2(X₀, X₁, X₂) :|: 1+X₀ ≤ X₁ ∧ 1+X₂ ≤ X₀ ∧ 2+X₂ ≤ X₁
t₂₇: f2(X₀, X₁, X₂) → f4(1+X₀, X₁, X₂) :|: 1 ≤ F ∧ 1+X₀ ≤ X₁ ∧ 1+X₂ ≤ X₀ ∧ 2+X₂ ≤ X₁
t₂₈: f2(X₀, X₁, X₂) → f4(1+X₀, X₁, X₂) :|: 1+F ≤ 0 ∧ 1+X₀ ≤ X₁ ∧ 1+X₂ ≤ X₀ ∧ 2+X₂ ≤ X₁
t₂₉: f300(X₀, X₁, X₂) → f1(X₀, X₁, X₂) :|: X₀ ≤ X₂
t₃₀: f300(X₀, X₁, X₂) → f2(X₀, X₁, X₂) :|: 1+X₂ ≤ X₀ ∧ 1+X₀ ≤ X₁
t₃₁: f300(X₀, X₁, X₂) → f300(X₀, X₁, 1+X₂) :|: 1+X₂ ≤ X₀ ∧ X₁ ≤ X₀
t₃₂: f300(X₀, X₁, X₂) → f4(1+X₀, X₁, X₂) :|: 1 ≤ F ∧ 1+X₂ ≤ X₀ ∧ 1+X₀ ≤ X₁
t₃₃: f300(X₀, X₁, X₂) → f4(1+X₀, X₁, X₂) :|: 1+F ≤ 0 ∧ 1+X₂ ≤ X₀ ∧ 1+X₀ ≤ X₁
t₃₄: f4(X₀, X₁, X₂) → f2(X₀, X₁, X₂) :|: 1+X₀ ≤ X₁ ∧ 2+X₂ ≤ X₀ ∧ 2+X₂ ≤ X₁ ∧ X₀ ≤ X₁
t₃₅: f4(X₀, X₁, X₂) → f300(X₀, X₁, 1+X₂) :|: X₁ ≤ X₀ ∧ 2+X₂ ≤ X₀ ∧ 2+X₂ ≤ X₁ ∧ X₀ ≤ X₁
t₃₆: f4(X₀, X₁, X₂) → f4(1+X₀, X₁, X₂) :|: 1 ≤ F ∧ 1+X₀ ≤ X₁ ∧ 2+X₂ ≤ X₀ ∧ 2+X₂ ≤ X₁ ∧ X₀ ≤ X₁
t₃₇: f4(X₀, X₁, X₂) → f4(1+X₀, X₁, X₂) :|: 1+F ≤ 0 ∧ 1+X₀ ≤ X₁ ∧ 2+X₂ ≤ X₀ ∧ 2+X₂ ≤ X₁ ∧ X₀ ≤ X₁
t₃₈: f5(X₀, X₁, X₂) → f300(X₀, X₁, X₂)
knowledge_propagation leads to new time bound 1 {O(1)} for transition t₃₀: f300(X₀, X₁, X₂) → f2(X₀, X₁, X₂) :|: 1+X₂ ≤ X₀ ∧ 1+X₀ ≤ X₁
knowledge_propagation leads to new time bound 1 {O(1)} for transition t₃₂: f300(X₀, X₁, X₂) → f4(1+X₀, X₁, X₂) :|: 1 ≤ F ∧ 1+X₂ ≤ X₀ ∧ 1+X₀ ≤ X₁
knowledge_propagation leads to new time bound 1 {O(1)} for transition t₃₃: f300(X₀, X₁, X₂) → f4(1+X₀, X₁, X₂) :|: 1+F ≤ 0 ∧ 1+X₂ ≤ X₀ ∧ 1+X₀ ≤ X₁
MPRF for transition t₂₇: f2(X₀, X₁, X₂) → f4(1+X₀, X₁, X₂) :|: 1 ≤ F ∧ 1+X₀ ≤ X₁ ∧ 1+X₂ ≤ X₀ ∧ 2+X₂ ≤ X₁ of depth 1:
new bound:
X₀+X₁ {O(n)}
MPRF:
• f2: [X₁-X₀]
• f300: [X₁-X₀]
• f4: [X₁-X₀]
MPRF for transition t₂₈: f2(X₀, X₁, X₂) → f4(1+X₀, X₁, X₂) :|: 1+F ≤ 0 ∧ 1+X₀ ≤ X₁ ∧ 1+X₂ ≤ X₀ ∧ 2+X₂ ≤ X₁ of depth 1:
new bound:
X₀+X₁ {O(n)}
MPRF:
• f2: [X₁-X₀]
• f300: [X₁-X₀]
• f4: [X₁-X₀]
MPRF for transition t₃₁: f300(X₀, X₁, X₂) → f300(X₀, X₁, 1+X₂) :|: 1+X₂ ≤ X₀ ∧ X₁ ≤ X₀ of depth 1:
new bound:
3⋅X₁+4⋅X₂+X₀ {O(n)}
MPRF:
• f2: [X₁-X₂]
• f300: [X₀-X₂]
• f4: [X₁-X₂]
MPRF for transition t₃₄: f4(X₀, X₁, X₂) → f2(X₀, X₁, X₂) :|: 1+X₀ ≤ X₁ ∧ 2+X₂ ≤ X₀ ∧ 2+X₂ ≤ X₁ ∧ X₀ ≤ X₁ of depth 1:
new bound:
X₀+X₁ {O(n)}
MPRF:
• f2: [X₁-X₀]
• f300: [X₁-X₀]
• f4: [1+X₁-X₀]
MPRF for transition t₃₅: f4(X₀, X₁, X₂) → f300(X₀, X₁, 1+X₂) :|: X₁ ≤ X₀ ∧ 2+X₂ ≤ X₀ ∧ 2+X₂ ≤ X₁ ∧ X₀ ≤ X₁ of depth 1:
new bound:
X₀+X₁ {O(n)}
MPRF:
• f2: [1]
• f300: [X₁-X₀]
• f4: [1]
MPRF for transition t₃₆: f4(X₀, X₁, X₂) → f4(1+X₀, X₁, X₂) :|: 1 ≤ F ∧ 1+X₀ ≤ X₁ ∧ 2+X₂ ≤ X₀ ∧ 2+X₂ ≤ X₁ ∧ X₀ ≤ X₁ of depth 1:
new bound:
X₀+X₁ {O(n)}
MPRF:
• f2: [X₁-X₀]
• f300: [X₁-X₀]
• f4: [1+X₁-X₀]
MPRF for transition t₃₇: f4(X₀, X₁, X₂) → f4(1+X₀, X₁, X₂) :|: 1+F ≤ 0 ∧ 1+X₀ ≤ X₁ ∧ 2+X₂ ≤ X₀ ∧ 2+X₂ ≤ X₁ ∧ X₀ ≤ X₁ of depth 1:
new bound:
X₀+X₁ {O(n)}
MPRF:
• f2: [X₁-X₀]
• f300: [X₁-X₀]
• f4: [1+X₁-X₀]
Found invariant X₀ ≤ X₂ for location f1
Found invariant 2+X₂ ≤ X₁ ∧ 1+X₂ ≤ X₀ ∧ 1+X₀ ≤ X₁ for location f2
Found invariant 2+X₂ ≤ X₁ ∧ 1+X₂ ≤ X₀ ∧ 1+X₀ ≤ X₁ for location f2_v1
Found invariant 2+X₂ ≤ X₁ ∧ 2+X₂ ≤ X₀ ∧ X₀ ≤ X₁ for location f4
All Bounds
Timebounds
Overall timebound:inf {Infinity}
t₂₆: inf {Infinity}
t₂₇: X₀+X₁ {O(n)}
t₂₈: X₀+X₁ {O(n)}
t₂₉: 1 {O(1)}
t₃₀: 1 {O(1)}
t₃₁: 3⋅X₁+4⋅X₂+X₀ {O(n)}
t₃₂: 1 {O(1)}
t₃₃: 1 {O(1)}
t₃₄: X₀+X₁ {O(n)}
t₃₅: X₀+X₁ {O(n)}
t₃₆: X₀+X₁ {O(n)}
t₃₇: X₀+X₁ {O(n)}
t₃₈: 1 {O(1)}
Costbounds
Overall costbound: inf {Infinity}
t₂₆: inf {Infinity}
t₂₇: X₀+X₁ {O(n)}
t₂₈: X₀+X₁ {O(n)}
t₂₉: 1 {O(1)}
t₃₀: 1 {O(1)}
t₃₁: 3⋅X₁+4⋅X₂+X₀ {O(n)}
t₃₂: 1 {O(1)}
t₃₃: 1 {O(1)}
t₃₄: X₀+X₁ {O(n)}
t₃₅: X₀+X₁ {O(n)}
t₃₆: X₀+X₁ {O(n)}
t₃₇: X₀+X₁ {O(n)}
t₃₈: 1 {O(1)}
Sizebounds
t₂₆, X₀: 4⋅X₁+7⋅X₀+2 {O(n)}
t₂₆, X₁: 3⋅X₁ {O(n)}
t₂₆, X₂: 3⋅X₂ {O(n)}
t₂₇, X₀: 4⋅X₁+7⋅X₀+2 {O(n)}
t₂₇, X₁: 3⋅X₁ {O(n)}
t₂₇, X₂: 3⋅X₂ {O(n)}
t₂₈, X₀: 4⋅X₁+7⋅X₀+2 {O(n)}
t₂₈, X₁: 3⋅X₁ {O(n)}
t₂₈, X₂: 3⋅X₂ {O(n)}
t₂₉, X₀: 16⋅X₁+32⋅X₀+10 {O(n)}
t₂₉, X₁: 16⋅X₁ {O(n)}
t₂₉, X₂: 20⋅X₂+3⋅X₁+X₀+6 {O(n)}
t₃₀, X₀: X₀ {O(n)}
t₃₀, X₁: X₁ {O(n)}
t₃₀, X₂: X₂ {O(n)}
t₃₁, X₀: 16⋅X₁+31⋅X₀+10 {O(n)}
t₃₁, X₁: 15⋅X₁ {O(n)}
t₃₁, X₂: 19⋅X₂+3⋅X₁+X₀+6 {O(n)}
t₃₂, X₀: X₀+1 {O(n)}
t₃₂, X₁: X₁ {O(n)}
t₃₂, X₂: X₂ {O(n)}
t₃₃, X₀: X₀+1 {O(n)}
t₃₃, X₁: X₁ {O(n)}
t₃₃, X₂: X₂ {O(n)}
t₃₄, X₀: 4⋅X₁+7⋅X₀+2 {O(n)}
t₃₄, X₁: 3⋅X₁ {O(n)}
t₃₄, X₂: 3⋅X₂ {O(n)}
t₃₅, X₀: 16⋅X₁+30⋅X₀+10 {O(n)}
t₃₅, X₁: 14⋅X₁ {O(n)}
t₃₅, X₂: 14⋅X₂+6 {O(n)}
t₃₆, X₀: 4⋅X₁+7⋅X₀+2 {O(n)}
t₃₆, X₁: 3⋅X₁ {O(n)}
t₃₆, X₂: 3⋅X₂ {O(n)}
t₃₇, X₀: 4⋅X₁+7⋅X₀+2 {O(n)}
t₃₇, X₁: 3⋅X₁ {O(n)}
t₃₇, X₂: 3⋅X₂ {O(n)}
t₃₈, X₀: X₀ {O(n)}
t₃₈, X₁: X₁ {O(n)}
t₃₈, X₂: X₂ {O(n)}