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₀ ]

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₂ ∧ 1+X₀ ≤ 0 for location l3

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 ]

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

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