Initial Problem

Start: l0
Program_Vars: X₀, X₁, X₂, X₃
Temp_Vars:
Locations: l0, l1, l2, l3, l4, l5, l6, l7
Transitions:
t₀: l0(X₀, X₁, X₂, X₃) → l6(X₀, X₁, X₂, X₃)
t₆: l1(X₀, X₁, X₂, X₃) → l5(X₀, X₁, X₂, X₃)
t₅: l2(X₀, X₁, X₂, X₃) → l7(X₀, X₁, X₂, X₃)
t₂: l3(X₀, X₁, X₂, X₃) → l4(X₀, X₂-X₀, X₂, X₃)
t₄: l4(X₀, X₁, X₂, X₃) → l1(X₀, X₁, X₂, X₃) :|: 7 < X₁
t₃: l4(X₀, X₁, X₂, X₃) → l2(X₀, X₁, X₂, X₃) :|: X₁ ≤ 7
t₇: l5(X₀, X₁, X₂, X₃) → l3(X₀+4, X₁, X₂, X₃) :|: X₀ < X₂
t₈: l5(X₀, X₁, X₂, X₃) → l3(X₀-4, X₁, X₂, X₃) :|: X₂ ≤ X₀
t₁: l6(X₀, X₁, X₂, X₃) → l3(X₃, X₁, X₂, X₃)

Preprocessing

Found invariant X₁ ≤ 7 for location l2

Found invariant X₁ ≤ 7 for location l7

Found invariant 8 ≤ X₁ for location l5

Found invariant 8 ≤ X₁ for location l1

Problem after Preprocessing

Start: l0
Program_Vars: X₀, X₁, X₂, X₃
Temp_Vars:
Locations: l0, l1, l2, l3, l4, l5, l6, l7
Transitions:
t₀: l0(X₀, X₁, X₂, X₃) → l6(X₀, X₁, X₂, X₃)
t₆: l1(X₀, X₁, X₂, X₃) → l5(X₀, X₁, X₂, X₃) :|: 8 ≤ X₁
t₅: l2(X₀, X₁, X₂, X₃) → l7(X₀, X₁, X₂, X₃) :|: X₁ ≤ 7
t₂: l3(X₀, X₁, X₂, X₃) → l4(X₀, X₂-X₀, X₂, X₃)
t₄: l4(X₀, X₁, X₂, X₃) → l1(X₀, X₁, X₂, X₃) :|: 7 < X₁
t₃: l4(X₀, X₁, X₂, X₃) → l2(X₀, X₁, X₂, X₃) :|: X₁ ≤ 7
t₇: l5(X₀, X₁, X₂, X₃) → l3(X₀+4, X₁, X₂, X₃) :|: X₀ < X₂ ∧ 8 ≤ X₁
t₈: l5(X₀, X₁, X₂, X₃) → l3(X₀-4, X₁, X₂, X₃) :|: X₂ ≤ X₀ ∧ 8 ≤ X₁
t₁: l6(X₀, X₁, X₂, X₃) → l3(X₃, X₁, X₂, X₃)

Analysing control-flow refined program

Found invariant X₃ ≤ X₀ ∧ X₁ ≤ 7 for location l2

Found invariant X₃ ≤ X₀ ∧ X₀ ≤ X₃ ∧ 8 ≤ X₁ for location n_l1___6

Found invariant 12+X₃ ≤ X₂ ∧ 4+X₃ ≤ X₀ ∧ 8+X₀ ≤ X₂ ∧ 8 ≤ X₁ for location n_l5___1

Found invariant 8+X₃ ≤ X₂ ∧ 4+X₃ ≤ X₀ ∧ 4+X₀ ≤ X₂ ∧ 8 ≤ X₁ for location n_l3___4

Found invariant 8+X₃ ≤ X₂ ∧ 4+X₃ ≤ X₀ ∧ 4+X₀ ≤ X₂ for location n_l4___3

Found invariant 8+X₃ ≤ X₂ ∧ X₃ ≤ X₀ ∧ X₀ ≤ X₃ ∧ 8+X₀ ≤ X₂ ∧ 8 ≤ X₁ for location n_l5___5

Found invariant 8+X₃ ≤ X₂ ∧ 4+X₃ ≤ X₀ ∧ 4+X₀ ≤ X₂ ∧ 8 ≤ X₁ for location n_l1___2

Found invariant X₃ ≤ X₀ ∧ X₁ ≤ 7 for location l7

Found invariant X₃ ≤ X₀ ∧ X₀ ≤ X₃ for location l3

Found invariant X₃ ≤ X₀ ∧ X₀ ≤ X₃ for location n_l4___7

MPRF for transition t₆₁: n_l1___2(X₀, X₁, X₂, X₃) → n_l5___1(X₀, X₁, X₂, X₃) :|: 7+X₀ < X₂ ∧ X₀+X₁ ≤ X₂ ∧ X₂ ≤ X₀+X₁ ∧ 8 ≤ X₁ ∧ 8+X₃ ≤ X₂ ∧ 4+X₃ ≤ X₀ ∧ 4+X₀ ≤ X₂ ∧ 8 ≤ X₁ of depth 1:

new bound:

X₂+X₃+11 {O(n)}

MPRF:

n_l4___3 [X₂-X₀-7 ]
n_l1___2 [X₂-X₀-7 ]
n_l5___1 [X₂-X₀-11 ]
n_l3___4 [X₂-X₀-7 ]

MPRF for transition t₆₃: n_l3___4(X₀, X₁, X₂, X₃) → n_l4___3(X₀, X₂-X₀, X₂, X₃) :|: X₀ < X₂ ∧ 8 ≤ X₁ ∧ X₀ ≤ 3+X₂ ∧ 8+X₃ ≤ X₂ ∧ 4+X₃ ≤ X₀ ∧ 4+X₀ ≤ X₂ ∧ 8 ≤ X₁ of depth 1:

new bound:

X₂+X₃+4 {O(n)}

MPRF:

n_l4___3 [X₂-X₀-4 ]
n_l1___2 [X₂-X₀-4 ]
n_l5___1 [X₂-X₀-4 ]
n_l3___4 [X₂-X₀ ]

MPRF for transition t₆₅: n_l4___3(X₀, X₁, X₂, X₃) → n_l1___2(X₀, X₁, X₂, X₃) :|: 0 < X₁ ∧ X₀+X₁ ≤ X₂ ∧ X₂ ≤ X₀+X₁ ∧ 7 < X₁ ∧ 8+X₃ ≤ X₂ ∧ 4+X₃ ≤ X₀ ∧ 4+X₀ ≤ X₂ of depth 1:

new bound:

X₂+X₃+7 {O(n)}

MPRF:

n_l4___3 [X₂-X₀-3 ]
n_l1___2 [X₂-X₀-7 ]
n_l5___1 [X₂-X₀-7 ]
n_l3___4 [X₂-X₀-3 ]

MPRF for transition t₆₇: n_l5___1(X₀, X₁, X₂, X₃) → n_l3___4(X₀+4, X₁, X₂, X₃) :|: 8+X₀ ≤ X₂ ∧ X₀+X₁ ≤ X₂ ∧ X₂ ≤ X₀+X₁ ∧ 8 ≤ X₁ ∧ X₀ < X₂ ∧ 12+X₃ ≤ X₂ ∧ 4+X₃ ≤ X₀ ∧ 8+X₀ ≤ X₂ ∧ 8 ≤ X₁ of depth 1:

new bound:

X₂+X₃+11 {O(n)}

MPRF:

n_l4___3 [X₂-X₀-7 ]
n_l1___2 [X₂-X₀-7 ]
n_l5___1 [X₂-X₀-7 ]
n_l3___4 [X₂-X₀-7 ]

CFR: Improvement to new bound with the following program:

new bound:

4⋅X₂+4⋅X₃+33 {O(n)}

cfr-program:

Start: l0
Program_Vars: X₀, X₁, X₂, X₃
Temp_Vars:
Locations: l0, l2, l3, l6, l7, n_l1___2, n_l1___6, n_l3___4, n_l4___3, n_l4___7, n_l5___1, n_l5___5
Transitions:
t₀: l0(X₀, X₁, X₂, X₃) → l6(X₀, X₁, X₂, X₃)
t₅: l2(X₀, X₁, X₂, X₃) → l7(X₀, X₁, X₂, X₃) :|: X₁ ≤ 7 ∧ X₃ ≤ X₀ ∧ X₁ ≤ 7
t₆₄: l3(X₀, X₁, X₂, X₃) → n_l4___7(X₀, X₂-X₀, X₂, X₃) :|: X₀ ≤ X₃ ∧ X₃ ≤ X₀ ∧ X₃ ≤ X₀ ∧ X₀ ≤ X₃
t₁: l6(X₀, X₁, X₂, X₃) → l3(X₃, X₁, X₂, X₃)
t₆₁: n_l1___2(X₀, X₁, X₂, X₃) → n_l5___1(X₀, X₁, X₂, X₃) :|: 7+X₀ < X₂ ∧ X₀+X₁ ≤ X₂ ∧ X₂ ≤ X₀+X₁ ∧ 8 ≤ X₁ ∧ 8+X₃ ≤ X₂ ∧ 4+X₃ ≤ X₀ ∧ 4+X₀ ≤ X₂ ∧ 8 ≤ X₁
t₆₂: n_l1___6(X₀, X₁, X₂, X₃) → n_l5___5(X₀, X₁, X₂, X₃) :|: 7+X₀ < X₂ ∧ X₀+X₁ ≤ X₂ ∧ X₂ ≤ X₀+X₁ ∧ X₀ ≤ X₃ ∧ X₃ ≤ X₀ ∧ 8 ≤ X₁ ∧ X₃ ≤ X₀ ∧ X₀ ≤ X₃ ∧ 8 ≤ X₁
t₆₃: n_l3___4(X₀, X₁, X₂, X₃) → n_l4___3(X₀, X₂-X₀, X₂, X₃) :|: X₀ < X₂ ∧ 8 ≤ X₁ ∧ X₀ ≤ 3+X₂ ∧ 8+X₃ ≤ X₂ ∧ 4+X₃ ≤ X₀ ∧ 4+X₀ ≤ X₂ ∧ 8 ≤ X₁
t₇₆: n_l4___3(X₀, X₁, X₂, X₃) → l2(X₀, X₁, X₂, X₃) :|: X₁ ≤ 7 ∧ 8+X₃ ≤ X₂ ∧ 4+X₃ ≤ X₀ ∧ 4+X₀ ≤ X₂
t₆₅: n_l4___3(X₀, X₁, X₂, X₃) → n_l1___2(X₀, X₁, X₂, X₃) :|: 0 < X₁ ∧ X₀+X₁ ≤ X₂ ∧ X₂ ≤ X₀+X₁ ∧ 7 < X₁ ∧ 8+X₃ ≤ X₂ ∧ 4+X₃ ≤ X₀ ∧ 4+X₀ ≤ X₂
t₇₇: n_l4___7(X₀, X₁, X₂, X₃) → l2(X₀, X₁, X₂, X₃) :|: X₁ ≤ 7 ∧ X₃ ≤ X₀ ∧ X₀ ≤ X₃
t₆₆: n_l4___7(X₀, X₁, X₂, X₃) → n_l1___6(X₀, X₁, X₂, X₃) :|: X₀ ≤ X₃ ∧ X₃ ≤ X₀ ∧ X₀+X₁ ≤ X₂ ∧ X₂ ≤ X₀+X₁ ∧ 7 < X₁ ∧ X₃ ≤ X₀ ∧ X₀ ≤ X₃
t₆₇: n_l5___1(X₀, X₁, X₂, X₃) → n_l3___4(X₀+4, X₁, X₂, X₃) :|: 8+X₀ ≤ X₂ ∧ X₀+X₁ ≤ X₂ ∧ X₂ ≤ X₀+X₁ ∧ 8 ≤ X₁ ∧ X₀ < X₂ ∧ 12+X₃ ≤ X₂ ∧ 4+X₃ ≤ X₀ ∧ 8+X₀ ≤ X₂ ∧ 8 ≤ X₁
t₆₈: n_l5___5(X₀, X₁, X₂, X₃) → n_l3___4(X₀+4, X₁, X₂, X₃) :|: 8 ≤ X₁ ∧ X₀ ≤ X₃ ∧ X₃ ≤ X₀ ∧ X₀+X₁ ≤ X₂ ∧ X₂ ≤ X₀+X₁ ∧ 8 ≤ X₁ ∧ X₀ < X₂ ∧ 8+X₃ ≤ X₂ ∧ X₃ ≤ X₀ ∧ X₀ ≤ X₃ ∧ 8+X₀ ≤ X₂ ∧ 8 ≤ X₁

All Bounds

Timebounds

Overall timebound:4⋅X₂+4⋅X₃+42 {O(n)}
t₀: 1 {O(1)}
t₅: 1 {O(1)}
t₆₄: 1 {O(1)}
t₁: 1 {O(1)}
t₆₁: X₂+X₃+11 {O(n)}
t₆₂: 1 {O(1)}
t₆₃: X₂+X₃+4 {O(n)}
t₆₅: X₂+X₃+7 {O(n)}
t₇₆: 1 {O(1)}
t₆₆: 1 {O(1)}
t₇₇: 1 {O(1)}
t₆₇: X₂+X₃+11 {O(n)}
t₆₈: 1 {O(1)}

Costbounds

Overall costbound: 4⋅X₂+4⋅X₃+42 {O(n)}
t₀: 1 {O(1)}
t₅: 1 {O(1)}
t₆₄: 1 {O(1)}
t₁: 1 {O(1)}
t₆₁: X₂+X₃+11 {O(n)}
t₆₂: 1 {O(1)}
t₆₃: X₂+X₃+4 {O(n)}
t₆₅: X₂+X₃+7 {O(n)}
t₇₆: 1 {O(1)}
t₆₆: 1 {O(1)}
t₇₇: 1 {O(1)}
t₆₇: X₂+X₃+11 {O(n)}
t₆₈: 1 {O(1)}

Sizebounds

t₀, X₀: X₀ {O(n)}
t₀, X₁: X₁ {O(n)}
t₀, X₂: X₂ {O(n)}
t₀, X₃: X₃ {O(n)}
t₅, X₀: 4⋅X₂+6⋅X₃+48 {O(n)}
t₅, X₁: 7⋅X₂+7⋅X₃+52 {O(n)}
t₅, X₂: X₂ {O(n)}
t₅, X₃: X₃ {O(n)}
t₆₄, X₀: X₃ {O(n)}
t₆₄, 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₃: X₃ {O(n)}
t₆₁, X₀: 4⋅X₂+5⋅X₃+48 {O(n)}
t₆₁, X₁: 6⋅X₂+6⋅X₃+52 {O(n)}
t₆₁, X₂: X₂ {O(n)}
t₆₁, X₃: X₃ {O(n)}
t₆₂, X₀: X₃ {O(n)}
t₆₂, X₁: X₂+X₃ {O(n)}
t₆₂, X₂: X₂ {O(n)}
t₆₂, X₃: X₃ {O(n)}
t₆₃, X₀: 4⋅X₂+5⋅X₃+48 {O(n)}
t₆₃, X₁: 6⋅X₂+6⋅X₃+52 {O(n)}
t₆₃, X₂: X₂ {O(n)}
t₆₃, X₃: X₃ {O(n)}
t₆₅, X₀: 4⋅X₂+5⋅X₃+48 {O(n)}
t₆₅, X₁: 6⋅X₂+6⋅X₃+52 {O(n)}
t₆₅, X₂: X₂ {O(n)}
t₆₅, X₃: X₃ {O(n)}
t₇₆, X₀: 4⋅X₂+5⋅X₃+48 {O(n)}
t₇₆, X₁: 6⋅X₂+6⋅X₃+52 {O(n)}
t₇₆, X₂: X₂ {O(n)}
t₇₆, X₃: X₃ {O(n)}
t₆₆, X₀: X₃ {O(n)}
t₆₆, X₁: X₂+X₃ {O(n)}
t₆₆, X₂: X₂ {O(n)}
t₆₆, X₃: X₃ {O(n)}
t₇₇, X₀: X₃ {O(n)}
t₇₇, X₁: X₂+X₃ {O(n)}
t₇₇, X₂: X₂ {O(n)}
t₇₇, X₃: X₃ {O(n)}
t₆₇, X₀: 4⋅X₂+5⋅X₃+48 {O(n)}
t₆₇, X₁: 6⋅X₂+6⋅X₃+52 {O(n)}
t₆₇, X₂: X₂ {O(n)}
t₆₇, X₃: X₃ {O(n)}
t₆₈, X₀: X₃+4 {O(n)}
t₆₈, X₁: X₂+X₃ {O(n)}
t₆₈, X₂: X₂ {O(n)}
t₆₈, X₃: X₃ {O(n)}