Initial Problem
Start: l0
Program_Vars: X₀, X₁, X₂, X₃, X₄
Temp_Vars: nondef_0
Locations: l0, l1, l10, l11, l12, l13, l2, l3, l4, l5, l6, l7, l8, l9
Transitions:
t₀: l0(X₀, X₁, X₂, X₃, X₄) → l2(X₀, X₁, X₂, X₃, X₄)
t₃: l1(X₀, X₁, X₂, X₃, X₄) → l4(X₀, X₁, X₂, X₃, X₄)
t₁₀: l10(X₀, X₁, X₂, X₃, X₄) → l11(X₀, X₁, X₂, X₃, X₄) :|: 0 ≤ X₀ ∧ X₀ ≤ X₂
t₁₁: l10(X₀, X₁, X₂, X₃, X₄) → l12(X₀, X₁, X₂, X₃, X₄) :|: X₀ < 0
t₁₂: l10(X₀, X₁, X₂, X₃, X₄) → l12(X₀, X₁, X₂, X₃, X₄) :|: X₂ < X₀
t₁₃: l11(X₀, X₁, X₂, X₃, X₄) → l10(X₀+X₃, X₁, X₂, X₃, X₄) :|: 0 < X₁
t₁₄: l11(X₀, X₁, X₂, X₃, X₄) → l10(X₀-X₃, X₁, X₂, X₃, X₄) :|: X₁ ≤ 0
t₁₅: l12(X₀, X₁, X₂, X₃, X₄) → l13(X₀, X₁, X₂, X₃, X₄)
t₁: l2(X₀, X₁, X₂, X₃, X₄) → l3(X₀, X₁, X₂, X₃, X₄)
t₂: l3(X₀, X₁, X₂, X₃, X₄) → l1(X₀, X₁, X₂, X₃, X₄)
t₄: l4(X₀, X₁, X₂, X₃, X₄) → l5(X₀, X₁, X₂, X₃, X₄)
t₅: l5(X₀, X₁, X₂, X₃, X₄) → l6(X₀, nondef_0, X₂, X₃, X₄)
t₆: l6(X₀, X₁, X₂, X₃, X₄) → l7(X₀, X₁, X₂, X₃, X₄)
t₇: l7(X₀, X₁, X₂, X₃, X₄) → l8(X₀, X₁, X₂, X₃, X₄)
t₈: l8(X₀, X₁, X₂, X₃, X₄) → l9(X₀, X₁, X₂, X₃, X₄)
t₉: l9(X₀, X₁, X₂, X₃, X₄) → l10(X₄, X₁, X₂, X₃, X₄)
Preprocessing
Found invariant 0 ≤ X₂ ∧ 0 ≤ X₀+X₂ ∧ X₀ ≤ X₂ ∧ 0 ≤ X₀ for location l11
Problem after Preprocessing
Start: l0
Program_Vars: X₀, X₁, X₂, X₃, X₄
Temp_Vars: nondef_0
Locations: l0, l1, l10, l11, l12, l13, l2, l3, l4, l5, l6, l7, l8, l9
Transitions:
t₀: l0(X₀, X₁, X₂, X₃, X₄) → l2(X₀, X₁, X₂, X₃, X₄)
t₃: l1(X₀, X₁, X₂, X₃, X₄) → l4(X₀, X₁, X₂, X₃, X₄)
t₁₀: l10(X₀, X₁, X₂, X₃, X₄) → l11(X₀, X₁, X₂, X₃, X₄) :|: 0 ≤ X₀ ∧ X₀ ≤ X₂
t₁₁: l10(X₀, X₁, X₂, X₃, X₄) → l12(X₀, X₁, X₂, X₃, X₄) :|: X₀ < 0
t₁₂: l10(X₀, X₁, X₂, X₃, X₄) → l12(X₀, X₁, X₂, X₃, X₄) :|: X₂ < X₀
t₁₃: l11(X₀, X₁, X₂, X₃, X₄) → l10(X₀+X₃, X₁, X₂, X₃, X₄) :|: 0 < X₁ ∧ 0 ≤ X₂ ∧ 0 ≤ X₀+X₂ ∧ X₀ ≤ X₂ ∧ 0 ≤ X₀
t₁₄: l11(X₀, X₁, X₂, X₃, X₄) → l10(X₀-X₃, X₁, X₂, X₃, X₄) :|: X₁ ≤ 0 ∧ 0 ≤ X₂ ∧ 0 ≤ X₀+X₂ ∧ X₀ ≤ X₂ ∧ 0 ≤ X₀
t₁₅: l12(X₀, X₁, X₂, X₃, X₄) → l13(X₀, X₁, X₂, X₃, X₄)
t₁: l2(X₀, X₁, X₂, X₃, X₄) → l3(X₀, X₁, X₂, X₃, X₄)
t₂: l3(X₀, X₁, X₂, X₃, X₄) → l1(X₀, X₁, X₂, X₃, X₄)
t₄: l4(X₀, X₁, X₂, X₃, X₄) → l5(X₀, X₁, X₂, X₃, X₄)
t₅: l5(X₀, X₁, X₂, X₃, X₄) → l6(X₀, nondef_0, X₂, X₃, X₄)
t₆: l6(X₀, X₁, X₂, X₃, X₄) → l7(X₀, X₁, X₂, X₃, X₄)
t₇: l7(X₀, X₁, X₂, X₃, X₄) → l8(X₀, X₁, X₂, X₃, X₄)
t₈: l8(X₀, X₁, X₂, X₃, X₄) → l9(X₀, X₁, X₂, X₃, X₄)
t₉: l9(X₀, X₁, X₂, X₃, X₄) → l10(X₄, X₁, X₂, X₃, X₄)
Solv. Size Bound: t₁₀: l10→l11 for X₀
cycle: [t₁₀: l10→l11; t₁₄: l11→l10]
loop: (0 ≤ X₀ ∧ X₀ ≤ X₂ ∧ X₁ ≤ 0,(X₀,X₃) -> (X₀-X₃,X₃)
overappr. closed-form: X₃⋅n+X₀ {O(n^2)}
runtime bound: inf {Infinity}
Solv. Size Bound - Lifting for t₁₀: l10→l11 and X₀: inf {Infinity}
Solv. Size Bound: t₁₃: l11→l10 for X₀
cycle: [t₁₃: l11→l10; t₁₀: l10→l11]
loop: (0 < X₁ ∧ 0 ≤ X₀+X₃ ∧ X₀+X₃ ≤ X₂,(X₀,X₃) -> (X₀+X₃,X₃)
overappr. closed-form: X₃⋅n+X₀ {O(n^2)}
runtime bound: inf {Infinity}
Solv. Size Bound - Lifting for t₁₃: l11→l10 and X₀: inf {Infinity}
Solv. Size Bound: t₁₄: l11→l10 for X₀
cycle: [t₁₄: l11→l10; t₁₀: l10→l11]
loop: (X₁ ≤ 0 ∧ X₃ ≤ X₀ ∧ X₀ ≤ X₃+X₂,(X₀,X₃) -> (X₀-X₃,X₃)
overappr. closed-form: X₃⋅n+X₀ {O(n^2)}
runtime bound: inf {Infinity}
Solv. Size Bound - Lifting for t₁₄: l11→l10 and X₀: inf {Infinity}
Solv. Size Bound - Lifting for t₁₀: l10→l11 and X₀: inf {Infinity}
Solv. Size Bound - Lifting for t₁₃: l11→l10 and X₀: inf {Infinity}
Solv. Size Bound - Lifting for t₁₄: l11→l10 and X₀: inf {Infinity}
Chain transitions t₉: l9→l10 and t₁₂: l10→l12 to t₁₂₇: l9→l12
Chain transitions t₁₄: l11→l10 and t₁₂: l10→l12 to t₁₂₈: l11→l12
Chain transitions t₁₄: l11→l10 and t₁₁: l10→l12 to t₁₂₉: l11→l12
Chain transitions t₉: l9→l10 and t₁₁: l10→l12 to t₁₃₀: l9→l12
Chain transitions t₁₃: l11→l10 and t₁₁: l10→l12 to t₁₃₁: l11→l12
Chain transitions t₁₃: l11→l10 and t₁₂: l10→l12 to t₁₃₂: l11→l12
Chain transitions t₁₃: l11→l10 and t₁₀: l10→l11 to t₁₃₃: l11→l11
Chain transitions t₁₄: l11→l10 and t₁₀: l10→l11 to t₁₃₄: l11→l11
Chain transitions t₉: l9→l10 and t₁₀: l10→l11 to t₁₃₅: l9→l11
Analysing control-flow refined program
Found invariant X₄ ≤ X₂ ∧ 0 ≤ X₄ ∧ 0 ≤ X₂+X₄ ∧ 0 ≤ X₂ ∧ 0 ≤ X₀+X₂ for location l11
Solv. Size Bound: t₁₃₃: l11→l11 for X₀
cycle: [t₁₃₃: l11→l11]
loop: (0 < X₁ ∧ 0 ≤ X₀+X₃ ∧ X₀+X₃ ≤ X₂,(X₀,X₃) -> (X₀+X₃,X₃)
overappr. closed-form: X₃⋅n+X₀ {O(n^2)}
runtime bound: inf {Infinity}
Solv. Size Bound - Lifting for t₁₃₃: l11→l11 and X₀: inf {Infinity}
Solv. Size Bound: t₁₃₄: l11→l11 for X₀
cycle: [t₁₃₄: l11→l11]
loop: (X₁ ≤ 0 ∧ X₃ ≤ X₀ ∧ X₀ ≤ X₃+X₂,(X₀,X₃) -> (X₀-X₃,X₃)
overappr. closed-form: X₃⋅n+X₀ {O(n^2)}
runtime bound: inf {Infinity}
Solv. Size Bound - Lifting for t₁₃₄: l11→l11 and X₀: inf {Infinity}
Solv. Size Bound - Lifting for t₁₃₃: l11→l11 and X₀: inf {Infinity}
Solv. Size Bound - Lifting for t₁₃₄: l11→l11 and X₀: inf {Infinity}
CFR did not improve the program. Rolling back
CFR did not improve the program. Rolling back
Analysing control-flow refined program
Found invariant X₄ ≤ X₂ ∧ 0 ≤ X₄ ∧ 0 ≤ X₂+X₄ ∧ X₁ ≤ X₄ ∧ 0 ≤ X₀+X₃ ∧ 0 ≤ X₂ ∧ X₁ ≤ X₂ ∧ X₁ ≤ 0 for location n_l10___3
Found invariant X₄ ≤ X₂ ∧ 0 ≤ X₄ ∧ 0 ≤ X₂+X₄ ∧ 1 ≤ X₁+X₄ ∧ X₃ ≤ X₀ ∧ 0 ≤ X₂ ∧ 1 ≤ X₁+X₂ ∧ 1 ≤ X₁ for location n_l10___4
Found invariant X₄ ≤ X₂ ∧ 0 ≤ X₄ ∧ 0 ≤ X₂+X₄ ∧ 1 ≤ X₁+X₄ ∧ 0 ≤ X₀+X₄ ∧ X₃ ≤ X₂ ∧ X₃ ≤ X₀ ∧ 0 ≤ X₂ ∧ 1 ≤ X₁+X₂ ∧ 0 ≤ X₀+X₂ ∧ X₀ ≤ X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₀+X₁ ∧ 0 ≤ X₀ for location n_l11___2
Found invariant X₄ ≤ X₂ ∧ X₄ ≤ X₀ ∧ 0 ≤ X₄ ∧ 0 ≤ X₂+X₄ ∧ 0 ≤ X₀+X₄ ∧ X₀ ≤ X₄ ∧ 0 ≤ X₂ ∧ 0 ≤ X₀+X₂ ∧ X₀ ≤ X₂ ∧ 0 ≤ X₀ for location n_l11___5
Found invariant X₄ ≤ X₀ ∧ X₀ ≤ X₄ for location l10
Found invariant X₄ ≤ X₂ ∧ 0 ≤ X₄ ∧ 0 ≤ X₂+X₄ ∧ X₁ ≤ X₄ ∧ 0 ≤ X₀+X₄ ∧ 0 ≤ X₂+X₃ ∧ 0 ≤ X₀+X₃ ∧ 0 ≤ X₂ ∧ X₁ ≤ X₂ ∧ 0 ≤ X₀+X₂ ∧ X₀ ≤ X₂ ∧ X₁ ≤ 0 ∧ X₁ ≤ X₀ ∧ 0 ≤ X₀ for location n_l11___1
Solv. Size Bound: t₂₆₀: n_l10___3→n_l11___1 for X₀
cycle: [t₂₆₀: n_l10___3→n_l11___1; t₂₆₃: n_l11___1→n_l10___3]
loop: (X₁ ≤ 0 ∧ 0 ≤ X₀+X₃ ∧ X₀+X₃ ≤ X₂ ∧ X₁ ≤ 0 ∧ 0 ≤ X₀ ∧ X₀ ≤ X₂ ∧ X₀+X₃ ≤ X₂ ∧ 0 ≤ X₀+X₃ ∧ X₁ ≤ 0 ∧ X₁ ≤ 0,(X₀,X₃) -> (X₀-X₃,X₃)
overappr. closed-form: X₃⋅n+X₀ {O(n^2)}
runtime bound: inf {Infinity}
Solv. Size Bound - Lifting for t₂₆₀: n_l10___3→n_l11___1 and X₀: inf {Infinity}
Solv. Size Bound: t₂₆₃: n_l11___1→n_l10___3 for X₀
cycle: [t₂₆₃: n_l11___1→n_l10___3; t₂₆₀: n_l10___3→n_l11___1]
loop: (X₀+X₃ ≤ X₂ ∧ 0 ≤ X₀+X₃ ∧ X₁ ≤ 0 ∧ X₁ ≤ 0 ∧ X₁ ≤ 0 ∧ 0 ≤ X₀ ∧ X₀ ≤ X₂ ∧ X₁ ≤ 0 ∧ X₃ ≤ X₀ ∧ X₀ ≤ X₃+X₂,(X₀,X₃) -> (X₀-X₃,X₃)
overappr. closed-form: X₃⋅n+X₀ {O(n^2)}
runtime bound: inf {Infinity}
Solv. Size Bound - Lifting for t₂₆₃: n_l11___1→n_l10___3 and X₀: inf {Infinity}
Solv. Size Bound - Lifting for t₂₆₀: n_l10___3→n_l11___1 and X₀: inf {Infinity}
Solv. Size Bound - Lifting for t₂₆₃: n_l11___1→n_l10___3 and X₀: inf {Infinity}
Solv. Size Bound: t₂₆₁: n_l10___4→n_l11___2 for X₀
cycle: [t₂₆₁: n_l10___4→n_l11___2; t₂₆₄: n_l11___2→n_l10___4]
loop: (0 < X₁ ∧ 0 ≤ X₀ ∧ X₀ ≤ X₂ ∧ 0 < X₁ ∧ 0 < X₁,(X₀,X₃) -> (X₀+X₃,X₃)
overappr. closed-form: X₃⋅n+X₀ {O(n^2)}
runtime bound: inf {Infinity}
Solv. Size Bound - Lifting for t₂₆₁: n_l10___4→n_l11___2 and X₀: inf {Infinity}
Solv. Size Bound: t₂₆₄: n_l11___2→n_l10___4 for X₀
cycle: [t₂₆₄: n_l11___2→n_l10___4; t₂₆₁: n_l10___4→n_l11___2]
loop: (0 < X₁ ∧ 0 < X₁ ∧ 0 < X₁ ∧ 0 ≤ X₀+X₃ ∧ X₀+X₃ ≤ X₂,(X₀,X₃) -> (X₀+X₃,X₃)
overappr. closed-form: X₃⋅n+X₀ {O(n^2)}
runtime bound: inf {Infinity}
Solv. Size Bound - Lifting for t₂₆₄: n_l11___2→n_l10___4 and X₀: inf {Infinity}
Solv. Size Bound - Lifting for t₂₆₁: n_l10___4→n_l11___2 and X₀: inf {Infinity}
Solv. Size Bound - Lifting for t₂₆₄: n_l11___2→n_l10___4 and X₀: inf {Infinity}
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₁: 1 {O(1)}
t₂: 1 {O(1)}
t₃: 1 {O(1)}
t₄: 1 {O(1)}
t₅: 1 {O(1)}
t₆: 1 {O(1)}
t₇: 1 {O(1)}
t₈: 1 {O(1)}
t₉: 1 {O(1)}
t₁₀: inf {Infinity}
t₁₁: 1 {O(1)}
t₁₂: 1 {O(1)}
t₁₃: inf {Infinity}
t₁₄: inf {Infinity}
t₁₅: 1 {O(1)}
Costbounds
Overall costbound: inf {Infinity}
t₀: 1 {O(1)}
t₁: 1 {O(1)}
t₂: 1 {O(1)}
t₃: 1 {O(1)}
t₄: 1 {O(1)}
t₅: 1 {O(1)}
t₆: 1 {O(1)}
t₇: 1 {O(1)}
t₈: 1 {O(1)}
t₉: 1 {O(1)}
t₁₀: inf {Infinity}
t₁₁: 1 {O(1)}
t₁₂: 1 {O(1)}
t₁₃: inf {Infinity}
t₁₄: inf {Infinity}
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₄: 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₁: 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₃: 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₀: 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₄: 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₃: 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₃: X₃ {O(n)}
t₁₀, X₄: X₄ {O(n)}
t₁₁, X₂: 3⋅X₂ {O(n)}
t₁₁, X₃: 3⋅X₃ {O(n)}
t₁₁, X₄: 3⋅X₄ {O(n)}
t₁₂, X₂: 3⋅X₂ {O(n)}
t₁₂, X₃: 3⋅X₃ {O(n)}
t₁₂, X₄: 3⋅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₂: 6⋅X₂ {O(n)}
t₁₅, X₃: 6⋅X₃ {O(n)}
t₁₅, X₄: 6⋅X₄ {O(n)}