Preprocessing
Found invariant 2 ≤ X₁ ∧ 3 ≤ X₀+X₁ ∧ 1+X₀ ≤ X₁ ∧ 1 ≤ X₀ for location l2
Probabilistic Analysis
Probabilistic Program after Preprocessing
Start: l0
Program_Vars: X₀, X₁
Temp_Vars: T
Locations: l0, l1, l2
Transitions:
g₀:l0(X₀,X₁) → t₁:l1(X₀,X₁) :|:
g₂:l1(X₀,X₁) → t₃:l2(X₀,X₁) :|: 1 ≤ X₀ ∧ 1+X₀ ≤ X₁
g₄:l2(X₀,X₁) → t₅:l1(T,X₀-1) :|: 1 ≤ X₀ ∧ 1+X₀ ≤ X₁ ∧ 2 ≤ X₁ ∧ 3 ≤ X₀+X₁
g₆:l2(X₀,X₁) → t₇:l1(X₀-1,T) :|: 1 ≤ X₀ ∧ 1+X₀ ≤ X₁ ∧ 2 ≤ X₁ ∧ 3 ≤ X₀+X₁
Run classical analysis on SCC: [l0]
Classical Approximation after Lifting Classical Results
All Bounds
Timebounds
Overall timebound:inf {Infinity}
g₀: 1 {O(1)}
g₂: inf {Infinity}
g₄: inf {Infinity}
g₆: inf {Infinity}
Costbounds
Overall costbound: inf {Infinity}
g₀: inf {Infinity}
g₂: inf {Infinity}
g₄: inf {Infinity}
g₆: inf {Infinity}
Sizebounds
(g₀,l1), X₀: X₀ {O(n)}
(g₀,l1), X₁: X₁ {O(n)}
Run probabilistic analysis on SCC: [l0]
Run classical analysis on SCC: [l1; l2]
Classical Approximation after Lifting Classical Results
All Bounds
Timebounds
Overall timebound:inf {Infinity}
g₀: 1 {O(1)}
g₂: inf {Infinity}
g₄: inf {Infinity}
g₆: inf {Infinity}
Costbounds
Overall costbound: inf {Infinity}
g₀: inf {Infinity}
g₂: inf {Infinity}
g₄: inf {Infinity}
g₆: inf {Infinity}
Sizebounds
(g₀,l1), X₀: X₀ {O(n)}
(g₀,l1), X₁: X₁ {O(n)}
Run probabilistic analysis on SCC: [l1; l2]
Analysing control-flow refined program
Run classical analysis on SCC: [l1]
Classical Approximation after Lifting Classical Results
All Bounds
Timebounds
Overall timebound:inf {Infinity}
g₀: 1 {O(1)}
g₉: 1 {O(1)}
g₁₁: inf {Infinity}
g₁₃: inf {Infinity}
g₁₅: inf {Infinity}
g₁₇: inf {Infinity}
Costbounds
Overall costbound: inf {Infinity}
g₀: inf {Infinity}
g₉: inf {Infinity}
g₁₁: inf {Infinity}
g₁₃: inf {Infinity}
g₁₅: inf {Infinity}
g₁₇: inf {Infinity}
Sizebounds
(g₀,l1), X₀: X₀ {O(n)}
(g₀,l1), X₁: X₁ {O(n)}
(g₉,l2_v1), X₀: X₀ {O(n)}
(g₉,l2_v1), X₁: X₁ {O(n)}
Run probabilistic analysis on SCC: [l1]
Run classical analysis on SCC: [l1_v1; l1_v2; l2_v1]
MPRF for transition t₁₀: l2_v1(X₀,X₁) → l1_v1(T,X₀-1) :|: 1 ≤ X₀ ∧ 1+X₀ ≤ X₁ ∧ 2 ≤ X₁ ∧ 3 ≤ X₀+X₁ of depth 1:
new bound:
X₀ {O(n)}
MPRF:
• l1_v1: [X₁-1]
• l1_v2: [1+X₀]
• l2_v1: [X₀]
MPRF for transition t₁₂: l2_v1(X₀,X₁) → l1_v2(X₀-1,T) :|: 1 ≤ X₀ ∧ 1+X₀ ≤ X₁ ∧ 2 ≤ X₁ ∧ 3 ≤ X₀+X₁ of depth 1:
new bound:
X₀ {O(n)}
MPRF:
• l1_v1: [X₁]
• l1_v2: [X₀]
• l2_v1: [X₀]
MPRF for transition t₁₄: l1_v2(X₀,X₁) → l2_v1(X₀,X₁) :|: 0 ≤ X₀ ∧ 1+X₀ ≤ X₁ ∧ 1 ≤ X₀ of depth 1:
new bound:
X₀ {O(n)}
MPRF:
• l1_v1: [X₁]
• l1_v2: [1+X₀]
• l2_v1: [X₀]
MPRF for transition t₁₆: l1_v1(X₀,X₁) → l2_v1(X₀,X₁) :|: 0 ≤ X₁ ∧ 1+X₀ ≤ X₁ ∧ 1 ≤ X₀ of depth 1:
new bound:
X₀ {O(n)}
MPRF:
• l1_v1: [1+X₁]
• l1_v2: [X₀]
• l2_v1: [X₀]
Classical Approximation after Lifting Classical Results
All Bounds
Timebounds
Overall timebound:4⋅X₀+2 {O(n)}
g₀: 1 {O(1)}
g₉: 1 {O(1)}
g₁₁: X₀ {O(n)}
g₁₃: X₀ {O(n)}
g₁₅: X₀ {O(n)}
g₁₇: X₀ {O(n)}
Costbounds
Overall costbound: inf {Infinity}
g₀: inf {Infinity}
g₉: inf {Infinity}
g₁₁: inf {Infinity}
g₁₃: inf {Infinity}
g₁₅: inf {Infinity}
g₁₇: inf {Infinity}
Sizebounds
(g₀,l1), X₀: X₀ {O(n)}
(g₀,l1), X₁: X₁ {O(n)}
(g₉,l2_v1), X₀: X₀ {O(n)}
(g₉,l2_v1), X₁: X₁ {O(n)}
Run probabilistic analysis on SCC: [l1_v1; l1_v2; l2_v1]
CFR: Improvement to new bound with the following program:
method: PartialEvaluationProbabilistic new bound:
O(n)
cfr-program:
Start: l0
Program_Vars: X₀, X₁
Temp_Vars: T
Locations: l0, l1, l1_v1, l1_v2, l2_v1
Transitions:
g₀:l0(X₀,X₁) → t₁:l1(X₀,X₁) :|:
g₉:l1(X₀,X₁) → t₈:l2_v1(X₀,X₁) :|: 1 ≤ X₀ ∧ 1+X₀ ≤ X₁
g₁₁:l2_v1(X₀,X₁) → t₁₀:l1_v1(T,X₀-1) :|: 1 ≤ X₀ ∧ 1+X₀ ≤ X₁ ∧ 2 ≤ X₁ ∧ 3 ≤ X₀+X₁
g₁₃:l2_v1(X₀,X₁) → t₁₂:l1_v2(X₀-1,T) :|: 1 ≤ X₀ ∧ 1+X₀ ≤ X₁ ∧ 2 ≤ X₁ ∧ 3 ≤ X₀+X₁
g₁₅:l1_v2(X₀,X₁) → t₁₄:l2_v1(X₀,X₁) :|: 1 ≤ X₀ ∧ 1+X₀ ≤ X₁ ∧ 0 ≤ X₀
g₁₇:l1_v1(X₀,X₁) → t₁₆:l2_v1(X₀,X₁) :|: 1 ≤ X₀ ∧ 1+X₀ ≤ X₁ ∧ 0 ≤ X₁
Results of Probabilistic Analysis
All Bounds
Timebounds
Overall timebound:4⋅X₀+2 {O(n)}
g₀: 1 {O(1)}
g₉: 1 {O(1)}
g₁₁: X₀ {O(n)}
g₁₃: X₀ {O(n)}
g₁₅: X₀ {O(n)}
g₁₇: X₀ {O(n)}
Costbounds
Overall costbound: 4⋅X₀+2 {O(n)}
g₀: 1 {O(1)}
g₉: 1 {O(1)}
g₁₁: X₀ {O(n)}
g₁₃: X₀ {O(n)}
g₁₅: X₀ {O(n)}
g₁₇: X₀ {O(n)}
Sizebounds
(g₀,l1), X₀: X₀ {O(n)}
(g₀,l1), X₁: X₁ {O(n)}
(g₉,l2_v1), X₀: X₀ {O(n)}
(g₉,l2_v1), X₁: X₁ {O(n)}