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₃+8 {O(n)}
MPRF:
n_l4___3 [X₂-X₀ ]
n_l1___2 [X₂-X₀ ]
n_l5___1 [X₂-X₀ ]
n_l3___4 [X₂+4-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₃+4 {O(n)}
MPRF:
n_l4___3 [X₂-X₀ ]
n_l1___2 [X₂-X₀ ]
n_l5___1 [X₂-X₀ ]
n_l3___4 [X₂-X₀ ]
CFR: Improvement to new bound with the following program:
new bound:
4⋅X₂+4⋅X₃+30 {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₃+39 {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₃+8 {O(n)}
t₃₁₇: X₂+X₃+7 {O(n)}
t₃₂₈: 1 {O(1)}
t₃₁₈: 1 {O(1)}
t₃₂₉: 1 {O(1)}
t₃₁₉: X₂+X₃+4 {O(n)}
t₃₂₀: 1 {O(1)}
Costbounds
Overall costbound: 4⋅X₂+4⋅X₃+39 {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₃+8 {O(n)}
t₃₁₇: X₂+X₃+7 {O(n)}
t₃₂₈: 1 {O(1)}
t₃₁₈: 1 {O(1)}
t₃₂₉: 1 {O(1)}
t₃₁₉: X₂+X₃+4 {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₃+20 {O(n)}
t₅, X₁: 7⋅X₂+7⋅X₃+24 {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₃+20 {O(n)}
t₃₁₃, X₁: 6⋅X₂+6⋅X₃+24 {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₃+20 {O(n)}
t₃₁₅, X₁: 6⋅X₂+6⋅X₃+24 {O(n)}
t₃₁₅, X₂: X₂ {O(n)}
t₃₁₅, X₃: X₃ {O(n)}
t₃₁₇, X₀: 4⋅X₂+5⋅X₃+20 {O(n)}
t₃₁₇, X₁: 6⋅X₂+6⋅X₃+24 {O(n)}
t₃₁₇, X₂: X₂ {O(n)}
t₃₁₇, X₃: X₃ {O(n)}
t₃₂₈, X₀: 4⋅X₂+5⋅X₃+20 {O(n)}
t₃₂₈, X₁: 6⋅X₂+6⋅X₃+24 {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₃+20 {O(n)}
t₃₁₉, X₁: 6⋅X₂+6⋅X₃+24 {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)}