Initial Problem
Start: l0
Program_Vars: X₀, X₁, X₂, X₃, X₄, X₅, X₆
Temp_Vars:
Locations: l0, l1, l2
Transitions:
t₂: l0(X₀, X₁, X₂, X₃, X₄, X₅, X₆) → l1(X₀, X₁, X₂, X₃, X₄, X₅, X₆) :|: X₁+1 ≤ 0
t₃: l0(X₀, X₁, X₂, X₃, X₄, X₅, X₆) → l2(X₀, X₁, 0, 0, 0, 0, 0) :|: 0 ≤ X₁
t₀: l1(X₀, X₁, X₂, X₃, X₄, X₅, X₆) → l1(X₀-X₁, X₁, X₂, X₃, X₄, X₅, X₆) :|: 0 ≤ X₀
t₁: l1(X₀, X₁, X₂, X₃, X₄, X₅, X₆) → l2(X₀, X₁, 0, 0, 0, 0, 0) :|: X₀+1 ≤ 0
Preprocessing
Eliminate variables {X₂,X₃,X₄,X₅,X₆} that do not contribute to the problem
Found invariant 1+X₁ ≤ 0 for location l1
Problem after Preprocessing
Start: l0
Program_Vars: X₀, X₁
Temp_Vars:
Locations: l0, l1, l2
Transitions:
t₇: l0(X₀, X₁) → l1(X₀, X₁) :|: X₁+1 ≤ 0
t₈: l0(X₀, X₁) → l2(X₀, X₁) :|: 0 ≤ X₁
t₉: l1(X₀, X₁) → l1(X₀-X₁, X₁) :|: 0 ≤ X₀ ∧ 1+X₁ ≤ 0
t₁₀: l1(X₀, X₁) → l2(X₀, X₁) :|: X₀+1 ≤ 0 ∧ 1+X₁ ≤ 0
Solv. Size Bound: t₉: l1→l1 for X₀
cycle: [t₉: l1→l1]
loop: (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₉: l1→l1 and X₀: inf {Infinity}
Solv. Size Bound - Lifting for t₉: l1→l1 and X₀: inf {Infinity}
Analysing control-flow refined program
Found invariant 1+X₁ ≤ 0 for location l1
Found invariant 1+X₁ ≤ 0 ∧ 2+X₁ ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ 1 ≤ X₀ for location n_l1___1
Solv. Size Bound: t₃₄: n_l1___1→n_l1___1 for X₀
cycle: [t₃₄: n_l1___1→n_l1___1]
loop: (0 ≤ X₀ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+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_l1___1→n_l1___1 and X₀: inf {Infinity}
Solv. Size Bound - Lifting for t₃₄: n_l1___1→n_l1___1 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₉: inf {Infinity}
t₁₀: 1 {O(1)}
Costbounds
Overall costbound: inf {Infinity}
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₀: X₀ {O(n)}
t₈, X₁: X₁ {O(n)}
t₉, X₁: X₁ {O(n)}
t₁₀, X₀: X₀ {O(n)}
t₁₀, X₁: X₁ {O(n)}