Initial Problem

Start: l0
Program_Vars: X₀, X₁, X₂, X₃
Temp_Vars: E, F
Locations: l0, l1, l2
Transitions:
t₀: l0(X₀, X₁, X₂, X₃) → l1(X₀, X₁, X₂, X₃)
t₁: l1(X₀, X₁, X₂, X₃) → l1(1+X₀, X₁, E, X₃) :|: 1 ≤ E ∧ 1+X₀ ≤ X₁
t₂: l1(X₀, X₁, X₂, X₃) → l1(1+X₀, X₁, E, X₃) :|: E+1 ≤ 0 ∧ 1+X₀ ≤ X₁
t₃: l1(X₀, X₁, X₂, X₃) → l1(X₀, X₁, 0, X₃) :|: 1+X₀ ≤ X₁
t₄: l1(X₀, X₁, X₂, X₃) → l1(1+X₀, X₀, E, X₃) :|: 1 ≤ E ∧ F ≤ X₁ ∧ X₀ ≤ X₁ ∧ X₁ ≤ X₀
t₅: l1(X₀, X₁, X₂, X₃) → l1(1+X₀, X₀, E, X₃) :|: E+1 ≤ 0 ∧ F ≤ X₁ ∧ X₀ ≤ X₁ ∧ X₁ ≤ X₀
t₆: l1(X₀, X₁, X₂, X₃) → l1(X₀, X₀, 0, X₃) :|: E ≤ X₁ ∧ X₀ ≤ X₁ ∧ X₁ ≤ X₀
t₇: l1(X₀, X₁, X₂, X₃) → l2(X₀, X₁, X₂, E) :|: X₁ ≤ X₀ ∧ X₁+1 ≤ X₀
t₈: l1(X₀, X₁, X₂, X₃) → l2(X₀, X₁, X₂, E) :|: X₁ ≤ X₀ ∧ X₀+1 ≤ X₁

Preprocessing

Cut unsatisfiable transition t₈: l1→l2

Eliminate variables {X₂,X₃} that do not contribute to the problem

Found invariant 1+X₁ ≤ X₀ for location l2

Problem after Preprocessing

Start: l0
Program_Vars: X₀, X₁
Temp_Vars: E, F
Locations: l0, l1, l2
Transitions:
t₃₈: l0(X₀, X₁) → l1(X₀, X₁)
t₃₉: l1(X₀, X₁) → l1(1+X₀, X₁) :|: 1 ≤ E ∧ 1+X₀ ≤ X₁
t₄₀: l1(X₀, X₁) → l1(1+X₀, X₁) :|: E+1 ≤ 0 ∧ 1+X₀ ≤ X₁
t₄₁: l1(X₀, X₁) → l1(X₀, X₁) :|: 1+X₀ ≤ X₁
t₄₂: l1(X₀, X₁) → l1(1+X₀, X₀) :|: 1 ≤ E ∧ F ≤ X₁ ∧ X₀ ≤ X₁ ∧ X₁ ≤ X₀
t₄₃: l1(X₀, X₁) → l1(1+X₀, X₀) :|: E+1 ≤ 0 ∧ F ≤ X₁ ∧ X₀ ≤ X₁ ∧ X₁ ≤ X₀
t₄₄: l1(X₀, X₁) → l1(X₀, X₀) :|: E ≤ X₁ ∧ X₀ ≤ X₁ ∧ X₁ ≤ X₀
t₄₅: l1(X₀, X₁) → l2(X₀, X₁) :|: X₁ ≤ X₀ ∧ X₁+1 ≤ X₀

MPRF for transition t₃₉: l1(X₀, X₁) → l1(1+X₀, X₁) :|: 1 ≤ E ∧ 1+X₀ ≤ X₁ of depth 1:

new bound:

X₀+X₁ {O(n)}

MPRF for transition t₄₀: l1(X₀, X₁) → l1(1+X₀, X₁) :|: E+1 ≤ 0 ∧ 1+X₀ ≤ X₁ of depth 1:

new bound:

X₀+X₁ {O(n)}

MPRF for transition t₄₂: l1(X₀, X₁) → l1(1+X₀, X₀) :|: 1 ≤ E ∧ F ≤ X₁ ∧ X₀ ≤ X₁ ∧ X₁ ≤ X₀ of depth 1:

new bound:

X₀+X₁+1 {O(n)}

MPRF for transition t₄₃: l1(X₀, X₁) → l1(1+X₀, X₀) :|: E+1 ≤ 0 ∧ F ≤ X₁ ∧ X₀ ≤ X₁ ∧ X₁ ≤ X₀ of depth 1:

new bound:

X₀+X₁+1 {O(n)}

Analysing control-flow refined program

Cut unsatisfiable transition t₂₉₂: n_l1___1→l2

Cut unsatisfiable transition t₂₉₄: n_l1___3→l2

Cut unsatisfiable transition t₂₉₅: n_l1___4→l2

Found invariant 1+X₁ ≤ X₀ for location l2

Found invariant X₀ ≤ X₁ for location n_l1___4

Found invariant 1+X₁ ≤ X₀ ∧ X₀ ≤ 1+X₁ for location n_l1___2

Found invariant 1+X₀ ≤ X₁ for location n_l1___3

Found invariant X₁ ≤ X₀ ∧ X₀ ≤ X₁ for location n_l1___1

MPRF for transition t₂₃₆: n_l1___3(X₀, X₁) → n_l1___4(X₀+1, X₁) :|: 1+X₀ ≤ X₁ ∧ 1+X₀ ≤ X₁ ∧ X₀ ≤ X₁ ∧ 1+X₀ ≤ X₁ ∧ X₀ ≤ X₁ ∧ 1+X₀ ≤ X₁ ∧ 1+X₀ ≤ X₁ ∧ 1+X₀ ≤ X₁ ∧ 1+X₀ ≤ X₁ of depth 1:

new bound:

3⋅X₀+3⋅X₁+5 {O(n)}

MPRF for transition t₂₃₇: n_l1___3(X₀, X₁) → n_l1___4(X₀+1, X₁) :|: 1+X₀ ≤ X₁ ∧ 1+X₀ ≤ X₁ ∧ X₀ ≤ X₁ ∧ 1+X₀ ≤ X₁ ∧ X₀ ≤ X₁ ∧ 1+X₀ ≤ X₁ ∧ 1+X₀ ≤ X₁ ∧ 1+X₀ ≤ X₁ ∧ 1+X₀ ≤ X₁ of depth 1:

new bound:

3⋅X₀+3⋅X₁+5 {O(n)}

MPRF for transition t₂₄₁: n_l1___4(X₀, X₁) → n_l1___3(X₀, X₁) :|: X₀ ≤ X₁ ∧ X₀ ≤ X₁ ∧ 1+X₀ ≤ X₁ ∧ X₀ ≤ X₁ of depth 1:

new bound:

3⋅X₀+3⋅X₁+4 {O(n)}

MPRF for transition t₂₄₂: n_l1___4(X₀, X₁) → n_l1___4(X₀+1, X₁) :|: X₀ ≤ X₁ ∧ X₀ ≤ X₁ ∧ 1+X₀ ≤ X₁ ∧ X₀ ≤ X₁ of depth 1:

new bound:

3⋅X₀+3⋅X₁+4 {O(n)}

MPRF for transition t₂₄₃: n_l1___4(X₀, X₁) → n_l1___4(X₀+1, X₁) :|: X₀ ≤ X₁ ∧ X₀ ≤ X₁ ∧ 1+X₀ ≤ X₁ ∧ X₀ ≤ X₁ of depth 1:

new bound:

3⋅X₀+3⋅X₁+4 {O(n)}

CFR did not improve the program. Rolling back

CFR did not improve the program. Rolling back

All Bounds

Timebounds

Overall timebound:inf {Infinity}
t₃₈: 1 {O(1)}
t₃₉: X₀+X₁ {O(n)}
t₄₀: X₀+X₁ {O(n)}
t₄₁: inf {Infinity}
t₄₂: X₀+X₁+1 {O(n)}
t₄₃: X₀+X₁+1 {O(n)}
t₄₄: inf {Infinity}
t₄₅: 1 {O(1)}

Costbounds

Overall costbound: inf {Infinity}
t₃₈: 1 {O(1)}
t₃₉: X₀+X₁ {O(n)}
t₄₀: X₀+X₁ {O(n)}
t₄₁: inf {Infinity}
t₄₂: X₀+X₁+1 {O(n)}
t₄₃: X₀+X₁+1 {O(n)}
t₄₄: inf {Infinity}
t₄₅: 1 {O(1)}

Sizebounds

t₃₈, X₀: X₀ {O(n)}
t₃₈, X₁: X₁ {O(n)}
t₃₉, X₀: 2⋅X₁+3⋅X₀ {O(n)}
t₃₉, X₁: X₁ {O(n)}
t₄₀, X₀: 2⋅X₁+3⋅X₀ {O(n)}
t₄₀, X₁: X₁ {O(n)}
t₄₁, X₀: 2⋅X₁+3⋅X₀ {O(n)}
t₄₁, X₁: X₁ {O(n)}
t₄₂, X₀: 14⋅X₀+8⋅X₁+4 {O(n)}
t₄₂, X₁: 14⋅X₀+8⋅X₁ {O(n)}
t₄₃, X₀: 14⋅X₀+8⋅X₁+4 {O(n)}
t₄₃, X₁: 14⋅X₀+8⋅X₁ {O(n)}
t₄₄, X₀: 4⋅X₁+7⋅X₀ {O(n)}
t₄₄, X₁: 14⋅X₀+8⋅X₁ {O(n)}
t₄₅, X₀: 16⋅X₁+29⋅X₀+8 {O(n)}
t₄₅, X₁: 17⋅X₁+28⋅X₀ {O(n)}