Initial Problem
Start: l0
Program_Vars: X₀, X₁, X₂
Temp_Vars:
Locations: l0, l1, l2, l3, l4, l5
Transitions:
t₀: l0(X₀, X₁, X₂) → l2(X₀, X₁, X₂)
t₂: l1(X₀, X₁, X₂) → l3(X₀, X₁, X₂) :|: X₀ < 1 ∧ X₀ < 0
t₃: l1(X₀, X₁, X₂) → l3(X₀, X₁, X₂) :|: X₀ < 1 ∧ 0 < X₀
t₄: l1(X₀, X₁, X₂) → l3(X₀, X₁, X₂) :|: 1 < X₀ ∧ X₀ < 0
t₅: l1(X₀, X₁, X₂) → l3(X₀, X₁, X₂) :|: 1 < X₀ ∧ 0 < X₀
t₆: l1(X₀, X₁, X₂) → l4(X₀, X₁, X₂) :|: X₀ ≤ 1 ∧ 1 ≤ X₀
t₇: l1(X₀, X₁, X₂) → l4(X₀, X₁, X₂) :|: X₀ ≤ 0 ∧ 0 ≤ X₀
t₁: l2(X₀, X₁, X₂) → l1(X₂, X₁, X₂)
t₈: l3(X₀, X₁, X₂) → l1(X₀-2, X₁, X₂)
t₉: l4(X₀, X₁, X₂) → l5(X₀, X₁, X₂)
Preprocessing
Cut unsatisfiable transition t₃: l1→l3
Cut unsatisfiable transition t₄: l1→l3
Eliminate variables {X₁} that do not contribute to the problem
Found invariant 0 ≤ X₂ ∧ 0 ≤ X₀+X₂ ∧ X₀ ≤ X₂ ∧ X₀ ≤ 1 ∧ 0 ≤ X₀ for location l5
Found invariant X₀ ≤ X₂ for location l1
Found invariant 0 ≤ X₂ ∧ 0 ≤ X₀+X₂ ∧ X₀ ≤ X₂ ∧ X₀ ≤ 1 ∧ 0 ≤ X₀ for location l4
Found invariant X₀ ≤ X₂ for location l3
Problem after Preprocessing
Start: l0
Program_Vars: X₀, X₂
Temp_Vars:
Locations: l0, l1, l2, l3, l4, l5
Transitions:
t₂₂: l0(X₀, X₂) → l2(X₀, X₂)
t₂₃: l1(X₀, X₂) → l3(X₀, X₂) :|: X₀ < 1 ∧ X₀ < 0 ∧ X₀ ≤ X₂
t₂₄: l1(X₀, X₂) → l3(X₀, X₂) :|: 1 < X₀ ∧ 0 < X₀ ∧ X₀ ≤ X₂
t₂₅: l1(X₀, X₂) → l4(X₀, X₂) :|: X₀ ≤ 1 ∧ 1 ≤ X₀ ∧ X₀ ≤ X₂
t₂₆: l1(X₀, X₂) → l4(X₀, X₂) :|: X₀ ≤ 0 ∧ 0 ≤ X₀ ∧ X₀ ≤ X₂
t₂₇: l2(X₀, X₂) → l1(X₂, X₂)
t₂₈: l3(X₀, X₂) → l1(X₀-2, X₂) :|: X₀ ≤ X₂
t₂₉: l4(X₀, X₂) → l5(X₀, X₂) :|: 0 ≤ X₂ ∧ 0 ≤ X₀+X₂ ∧ X₀ ≤ X₂ ∧ X₀ ≤ 1 ∧ 0 ≤ X₀
MPRF for transition t₂₄: l1(X₀, X₂) → l3(X₀, X₂) :|: 1 < X₀ ∧ 0 < X₀ ∧ X₀ ≤ X₂ of depth 1:
new bound:
X₂ {O(n)}
MPRF:
l3 [X₀-2 ]
l1 [X₀ ]
Analysing control-flow refined program
Cut unsatisfiable transition t₆₆: n_l1___3→n_l3___2
Cut unsatisfiable transition t₈₂: n_l1___5→l4
Cut unsatisfiable transition t₈₄: n_l1___5→l4
Cut unreachable locations [n_l3___2] from the program graph
Found invariant 1+X₂ ≤ 0 ∧ 4+X₀+X₂ ≤ 0 ∧ 2+X₀ ≤ X₂ ∧ 3+X₀ ≤ 0 for location n_l3___4
Found invariant X₂ ≤ X₀ ∧ 2 ≤ X₂ ∧ 4 ≤ X₀+X₂ ∧ X₀ ≤ X₂ ∧ 2 ≤ X₀ for location n_l3___6
Found invariant 2 ≤ X₂ ∧ 2 ≤ X₀+X₂ ∧ 2+X₀ ≤ X₂ ∧ 0 ≤ X₀ for location n_l1___3
Found invariant 0 ≤ X₂ ∧ 0 ≤ X₀+X₂ ∧ X₀ ≤ X₂ ∧ X₀ ≤ 1 ∧ 0 ≤ X₀ for location l5
Found invariant 1+X₂ ≤ 0 ∧ 4+X₀+X₂ ≤ 0 ∧ 2+X₀ ≤ X₂ ∧ 3+X₀ ≤ 0 for location n_l1___5
Found invariant X₂ ≤ X₀ ∧ X₀ ≤ X₂ for location l1
Found invariant 0 ≤ X₂ ∧ 0 ≤ X₀+X₂ ∧ X₀ ≤ X₂ ∧ X₀ ≤ 1 ∧ 0 ≤ X₀ for location l4
Found invariant 4 ≤ X₂ ∧ 6 ≤ X₀+X₂ ∧ 2+X₀ ≤ X₂ ∧ 2 ≤ X₀ for location n_l3___1
Found invariant 1+X₂ ≤ 0 ∧ X₂ ≤ X₀ ∧ 2+X₀+X₂ ≤ 0 ∧ X₀ ≤ X₂ ∧ 1+X₀ ≤ 0 for location n_l3___7
MPRF for transition t₆₅: n_l1___3(X₀, X₂) → n_l3___1(X₀, X₂) :|: X₀ ≤ X₂ ∧ 2+X₀ ≤ X₂ ∧ 1 < X₀ ∧ X₀ ≤ X₂ ∧ 2 ≤ X₂ ∧ 2 ≤ X₀+X₂ ∧ 2+X₀ ≤ X₂ ∧ 0 ≤ X₀ of depth 1:
new bound:
X₂+1 {O(n)}
MPRF:
n_l3___1 [X₀-1 ]
n_l1___3 [X₀+1 ]
MPRF for transition t₇₀: n_l3___1(X₀, X₂) → n_l1___3(X₀-2, X₂) :|: 2+X₀ ≤ X₂ ∧ 1 < X₀ ∧ X₀ ≤ X₂ ∧ 4 ≤ X₂ ∧ 6 ≤ X₀+X₂ ∧ 2+X₀ ≤ X₂ ∧ 2 ≤ X₀ of depth 1:
new bound:
X₂+1 {O(n)}
MPRF:
n_l3___1 [X₀-1 ]
n_l1___3 [X₀-1 ]
CFR did not improve the program. Rolling back
All Bounds
Timebounds
Overall timebound:inf {Infinity}
t₂₂: 1 {O(1)}
t₂₃: inf {Infinity}
t₂₄: X₂ {O(n)}
t₂₅: 1 {O(1)}
t₂₆: 1 {O(1)}
t₂₇: 1 {O(1)}
t₂₈: inf {Infinity}
t₂₉: 1 {O(1)}
Costbounds
Overall costbound: inf {Infinity}
t₂₂: 1 {O(1)}
t₂₃: inf {Infinity}
t₂₄: X₂ {O(n)}
t₂₅: 1 {O(1)}
t₂₆: 1 {O(1)}
t₂₇: 1 {O(1)}
t₂₈: inf {Infinity}
t₂₉: 1 {O(1)}
Sizebounds
t₂₂, X₀: X₀ {O(n)}
t₂₂, X₂: X₂ {O(n)}
t₂₃, X₂: 2⋅X₂ {O(n)}
t₂₄, X₂: 2⋅X₂ {O(n)}
t₂₅, X₀: 1 {O(1)}
t₂₅, X₂: 3⋅X₂ {O(n)}
t₂₆, X₀: 0 {O(1)}
t₂₆, X₂: 3⋅X₂ {O(n)}
t₂₇, X₀: X₂ {O(n)}
t₂₇, X₂: X₂ {O(n)}
t₂₈, X₂: 2⋅X₂ {O(n)}
t₂₉, X₀: 1 {O(1)}
t₂₉, X₂: 6⋅X₂ {O(n)}