Start: f15
Program_Vars: X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉, X₁₀, X₁₁, X₁₂
Temp_Vars: N, O, P
Locations: f1, f10, f12, f13, f15, f300, f32, f8
Transitions:
t₈: f1(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉, X₁₀, X₁₁, X₁₂) → f1(X₀, X₁, N, X₃, X₄, O, P, 0, X₈, 0, 0, X₁₁, X₁₂) :|: X₁₂ ≤ 4 ∧ 1+X₁ ≤ X₄
t₁₁: f1(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉, X₁₀, X₁₁, X₁₂) → f300(X₀, 1+X₁, N, X₃, X₄, O, X₆, 1, X₈, 1, 1, X₁₁, X₁₂) :|: 1+X₁ ≤ X₄ ∧ 5 ≤ X₁₂
t₆: f10(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉, X₁₀, X₁₁, X₁₂) → f1(X₀, X₁, N, X₃, X₄, O, P, 0, X₈, 0, 0, X₁₁, 2)
t₅: f12(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉, X₁₀, X₁₁, X₁₂) → f1(X₀, X₁, N, X₃, X₄, O, P, 0, X₈, 0, 0, 1+X₈, X₁₂) :|: X₈ ≤ 4
t₁₀: f12(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉, X₁₀, X₁₁, X₁₂) → f300(X₀, 1+X₁, N, X₃, X₄, O, X₆, 1, X₈, 1, 1, X₁₁, X₁₂) :|: 5 ≤ X₈
t₄: f13(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉, X₁₀, X₁₁, X₁₂) → f1(X₀, X₁, N, X₃, X₄, O, P, 0, 2, 0, 0, X₁₁, X₁₂)
t₁: f15(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉, X₁₀, X₁₁, X₁₂) → f8(X₀, X₁, X₂, N, X₄, X₅, X₆, X₇, X₈, X₉, X₁₀, X₁₁, X₁₂)
t₉: f300(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉, X₁₀, X₁₁, X₁₂) → f1(X₀, X₁, N, X₃, X₄, O, P, 0, X₈, 0, 0, X₁₁, X₁₂) :|: 1+X₁ ≤ X₄
t₂: f300(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉, X₁₀, X₁₁, X₁₂) → f8(1+X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉, X₁₀, X₁₁, X₁₂) :|: X₄ ≤ X₁
t₇: f8(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉, X₁₀, X₁₁, X₁₂) → f1(X₀, X₁, N, X₃, X₄, O, P, 0, X₈, 0, 0, X₁₁, X₁₂) :|: 1+X₀ ≤ X₁ ∧ 1+X₁ ≤ X₄
t₀: f8(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉, X₁₀, X₁₁, X₁₂) → f32(X₀, X₁, N, X₃, X₄, X₅, X₆, X₇, X₈, X₉, X₁₀, X₁₁, X₁₂) :|: X₁ ≤ X₀
t₃: f8(X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉, X₁₀, X₁₁, X₁₂) → f8(1+X₀, X₁, X₂, X₃, X₄, X₅, X₆, X₇, X₈, X₉, X₁₀, X₁₁, X₁₂) :|: 1+X₀ ≤ X₁ ∧ X₄ ≤ X₁
Cut unreachable locations [f10; f12; f13] from the program graph
Eliminate variables [N; O; P; X₂; X₃; X₅; X₆; X₇; X₈; X₉; X₁₀; X₁₁] that do not contribute to the problem
Found invariant X₁ ≤ X₀ for location f32
Found invariant 5 ≤ X₃ ∧ X₁ ≤ X₂ ∧ 2+X₀ ≤ X₂ ∧ 2+X₀ ≤ X₁ for location f300
Found invariant 1+X₁ ≤ X₂ ∧ 2+X₀ ≤ X₂ ∧ 1+X₀ ≤ X₁ for location f1
Start: f15
Program_Vars: X₀, X₁, X₂, X₃
Temp_Vars:
Locations: f1, f15, f300, f32, f8
Transitions:
t₂₂: f1(X₀, X₁, X₂, X₃) → f1(X₀, X₁, X₂, X₃) :|: X₃ ≤ 4 ∧ 1+X₁ ≤ X₂ ∧ 1+X₀ ≤ X₁ ∧ 2+X₀ ≤ X₂
t₂₃: f1(X₀, X₁, X₂, X₃) → f300(X₀, 1+X₁, X₂, X₃) :|: 1+X₁ ≤ X₂ ∧ 5 ≤ X₃ ∧ 1+X₀ ≤ X₁ ∧ 2+X₀ ≤ X₂
t₂₄: f15(X₀, X₁, X₂, X₃) → f8(X₀, X₁, X₂, X₃)
t₂₅: f300(X₀, X₁, X₂, X₃) → f1(X₀, X₁, X₂, X₃) :|: 1+X₁ ≤ X₂ ∧ 2+X₀ ≤ X₁ ∧ 2+X₀ ≤ X₂ ∧ 5 ≤ X₃ ∧ X₁ ≤ X₂
t₂₆: f300(X₀, X₁, X₂, X₃) → f8(1+X₀, X₁, X₂, X₃) :|: X₂ ≤ X₁ ∧ 2+X₀ ≤ X₁ ∧ 2+X₀ ≤ X₂ ∧ 5 ≤ X₃ ∧ X₁ ≤ X₂
t₂₇: f8(X₀, X₁, X₂, X₃) → f1(X₀, X₁, X₂, X₃) :|: 1+X₀ ≤ X₁ ∧ 1+X₁ ≤ X₂
t₂₈: f8(X₀, X₁, X₂, X₃) → f32(X₀, X₁, X₂, X₃) :|: X₁ ≤ X₀
t₂₉: f8(X₀, X₁, X₂, X₃) → f8(1+X₀, X₁, X₂, X₃) :|: 1+X₀ ≤ X₁ ∧ X₂ ≤ X₁
knowledge_propagation leads to new time bound 1 {O(1)} for transition t₂₇: f8(X₀, X₁, X₂, X₃) → f1(X₀, X₁, X₂, X₃) :|: 1+X₀ ≤ X₁ ∧ 1+X₁ ≤ X₂
new bound:
X₁+X₂ {O(n)}
MPRF:
• f1: [X₂-X₁]
• f300: [X₂-X₁]
• f8: [X₂-X₁]
new bound:
X₁+X₂ {O(n)}
MPRF:
• f1: [X₂-X₁]
• f300: [1+X₂-X₁]
• f8: [X₂-X₁]
new bound:
X₁+X₂ {O(n)}
MPRF:
• f1: [1]
• f300: [1]
• f8: [X₂-X₁]
new bound:
2⋅X₀+X₁+X₂ {O(n)}
MPRF:
• f1: [X₂-X₀]
• f300: [X₂-X₀]
• f8: [X₁-X₀]
Found invariant X₁ ≤ X₀ for location f32
Found invariant 5 ≤ X₃ ∧ X₁ ≤ X₂ ∧ 2+X₀ ≤ X₂ ∧ 2+X₀ ≤ X₁ for location f300
Found invariant 1+X₁ ≤ X₂ ∧ 2+X₀ ≤ X₂ ∧ 1+X₀ ≤ X₁ for location f1
Found invariant X₃ ≤ 4 ∧ 1+X₁ ≤ X₂ ∧ 2+X₀ ≤ X₂ ∧ 1+X₀ ≤ X₁ for location f1_v1
Overall timebound:inf {Infinity}
t₂₂: inf {Infinity}
t₂₃: X₁+X₂ {O(n)}
t₂₄: 1 {O(1)}
t₂₅: X₁+X₂ {O(n)}
t₂₆: X₁+X₂ {O(n)}
t₂₇: 1 {O(1)}
t₂₈: 1 {O(1)}
t₂₉: 2⋅X₀+X₁+X₂ {O(n)}
Overall costbound: inf {Infinity}
t₂₂: inf {Infinity}
t₂₃: X₁+X₂ {O(n)}
t₂₄: 1 {O(1)}
t₂₅: X₁+X₂ {O(n)}
t₂₆: X₁+X₂ {O(n)}
t₂₇: 1 {O(1)}
t₂₈: 1 {O(1)}
t₂₉: 2⋅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)}
t₂₃, X₀: X₀ {O(n)}
t₂₃, X₁: 2⋅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₁: 2⋅X₁+X₂ {O(n)}
t₂₅, X₂: X₂ {O(n)}
t₂₅, X₃: X₃ {O(n)}
t₂₆, X₀: X₀ {O(n)}
t₂₆, X₁: 2⋅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₀: 5⋅X₀+X₁+X₂ {O(n)}
t₂₈, X₁: 4⋅X₁+X₂ {O(n)}
t₂₈, X₂: 3⋅X₂ {O(n)}
t₂₈, X₃: 3⋅X₃ {O(n)}
t₂₉, X₀: 4⋅X₀+X₁+X₂ {O(n)}
t₂₉, X₁: 3⋅X₁+X₂ {O(n)}
t₂₉, X₂: 2⋅X₂ {O(n)}
t₂₉, X₃: 2⋅X₃ {O(n)}