Preprocessing
Found invariant 3+X₀ ≤ X₃ for location h
Probabilistic Analysis
Probabilistic Program after Preprocessing
Start: f
Program_Vars: X₀, X₁, X₂, X₃
Temp_Vars:
Locations: f, g, h
Transitions:
g₂:f(X₀,X₁,X₂,X₃) -{0}> t₃:g(X₀,X₁,X₂,X₃) :|:
g₄:g(X₀,X₁,X₂,X₃) -{0}> t₅:h(X₀,X₁,X₂,X₃) :|: 3+X₀ ≤ X₃
g₆:h(X₀,X₁,X₂,X₃) → t₇:g(X₀+UNIFORM(0, 1),X₁,X₂,X₃) :|: 1+X₁ ≤ X₂ ∧ 0 ≤ 1 ∧ 3+X₀ ≤ X₃
g₈:h(X₀,X₁,X₂,X₃) → t₉:g(X₀+UNIFORM(0, 3),X₁,X₂,X₃) :|: X₂ ≤ X₁ ∧ 0 ≤ 1 ∧ 3+X₀ ≤ X₃
Show Graph
G
f
f
g
g
f->g
p = 1
t₃ ∈ g₂
{0}
h
h
g->h
p = 1
t₅ ∈ g₄
τ = 3+X₀ ≤ X₃
{0}
h->g
p = 1
t₇ ∈ g₆
η (X₀) = X₀+UNIFORM(0, 1)
τ = 0 ≤ 1 ∧ 3+X₀ ≤ X₃ ∧ 1+X₁ ≤ X₂
h->g
p = 1
t₉ ∈ g₈
η (X₀) = X₀+UNIFORM(0, 3)
τ = 0 ≤ 1 ∧ 3+X₀ ≤ X₃ ∧ X₂ ≤ X₁
Run classical analysis on SCC: [f]
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₂,g), X₀: X₀ {O(n)}
(g₂,g), X₁: X₁ {O(n)}
(g₂,g), X₂: X₂ {O(n)}
(g₂,g), X₃: X₃ {O(n)}
Run probabilistic analysis on SCC: [f]
Run classical analysis on SCC: [g; h]
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₂,g), X₀: X₀ {O(n)}
(g₂,g), X₁: X₁ {O(n)}
(g₂,g), X₂: X₂ {O(n)}
(g₂,g), X₃: X₃ {O(n)}
(g₄,h), X₁: X₁ {O(n)}
(g₄,h), X₂: X₂ {O(n)}
(g₄,h), X₃: X₃ {O(n)}
(g₆,g), X₁: X₁ {O(n)}
(g₆,g), X₂: X₂ {O(n)}
(g₆,g), X₃: X₃ {O(n)}
(g₈,g), X₁: X₁ {O(n)}
(g₈,g), X₂: X₂ {O(n)}
(g₈,g), X₃: X₃ {O(n)}
Run probabilistic analysis on SCC: [g; h]
Plrf for transition g₄:g(X₀,X₁,X₂,X₃) -{0}> t₅:h(X₀,X₁,X₂,X₃) :|: 3+X₀ ≤ X₃:
new bound:
2⋅X₀+2⋅X₃+1 {O(n)}
PLRF:
• g: 1+2⋅X₃-2⋅X₀
• h: 2⋅X₃-2⋅X₀
Show Graph
G
f
f
g
g
f->g
p = 1
t₃ ∈ g₂
{0}
h
h
g->h
p = 1
t₅ ∈ g₄
τ = 3+X₀ ≤ X₃
{0}
h->g
p = 1
t₇ ∈ g₆
η (X₀) = X₀+UNIFORM(0, 1)
τ = 0 ≤ 1 ∧ 3+X₀ ≤ X₃ ∧ 1+X₁ ≤ X₂
h->g
p = 1
t₉ ∈ g₈
η (X₀) = X₀+UNIFORM(0, 3)
τ = 0 ≤ 1 ∧ 3+X₀ ≤ X₃ ∧ X₂ ≤ X₁
Use expected size bounds for entry point (g₂:f→[t₃:1:g],g)
Use expected size bounds for entry point (g₂:f→[t₃:1:g],g)
Use classical time bound for entry point (g₂:f→[t₃:1:g],g)
Plrf for transition g₆:h(X₀,X₁,X₂,X₃) → t₇:g(X₀+UNIFORM(0, 1),X₁,X₂,X₃) :|: 1+X₁ ≤ X₂ ∧ 0 ≤ 1 ∧ 3+X₀ ≤ X₃:
new bound:
2⋅X₀+2⋅X₃ {O(n)}
PLRF:
• g: 2⋅X₃-2⋅X₀
• h: 2⋅X₃-2⋅X₀
Show Graph
G
f
f
g
g
f->g
p = 1
t₃ ∈ g₂
{0}
h
h
g->h
p = 1
t₅ ∈ g₄
τ = 3+X₀ ≤ X₃
{0}
h->g
p = 1
t₇ ∈ g₆
η (X₀) = X₀+UNIFORM(0, 1)
τ = 0 ≤ 1 ∧ 3+X₀ ≤ X₃ ∧ 1+X₁ ≤ X₂
h->g
p = 1
t₉ ∈ g₈
η (X₀) = X₀+UNIFORM(0, 3)
τ = 0 ≤ 1 ∧ 3+X₀ ≤ X₃ ∧ X₂ ≤ X₁
Use expected size bounds for entry point (g₂:f→[t₃:1:g],g)
Use expected size bounds for entry point (g₂:f→[t₃:1:g],g)
Use classical time bound for entry point (g₂:f→[t₃:1:g],g)
Plrf for transition g₈:h(X₀,X₁,X₂,X₃) → t₉:g(X₀+UNIFORM(0, 3),X₁,X₂,X₃) :|: X₂ ≤ X₁ ∧ 0 ≤ 1 ∧ 3+X₀ ≤ X₃:
new bound:
2/3⋅X₀+2/3⋅X₃ {O(n)}
PLRF:
• g: 2/3⋅X₃-2/3⋅X₀
• h: 2/3⋅X₃-2/3⋅X₀
Show Graph
G
f
f
g
g
f->g
p = 1
t₃ ∈ g₂
{0}
h
h
g->h
p = 1
t₅ ∈ g₄
τ = 3+X₀ ≤ X₃
{0}
h->g
p = 1
t₇ ∈ g₆
η (X₀) = X₀+UNIFORM(0, 1)
τ = 0 ≤ 1 ∧ 3+X₀ ≤ X₃ ∧ 1+X₁ ≤ X₂
h->g
p = 1
t₉ ∈ g₈
η (X₀) = X₀+UNIFORM(0, 3)
τ = 0 ≤ 1 ∧ 3+X₀ ≤ X₃ ∧ X₂ ≤ X₁
Use expected size bounds for entry point (g₂:f→[t₃:1:g],g)
Use expected size bounds for entry point (g₂:f→[t₃:1:g],g)
Use classical time bound for entry point (g₂:f→[t₃:1:g],g)
Results of Probabilistic Analysis
All Bounds
Timebounds
Overall timebound:14/3⋅X₀+14/3⋅X₃+2 {O(n)}
g₂: 1 {O(1)}
g₄: 2⋅X₀+2⋅X₃+1 {O(n)}
g₆: 2⋅X₀+2⋅X₃ {O(n)}
g₈: 2/3⋅X₀+2/3⋅X₃ {O(n)}
Costbounds
Overall costbound: 8/3⋅X₀+8/3⋅X₃ {O(n)}
g₂: 0 {O(1)}
g₄: 0 {O(1)}
g₆: 2⋅X₀+2⋅X₃ {O(n)}
g₈: 2/3⋅X₀+2/3⋅X₃ {O(n)}
Sizebounds
(g₂,g), X₀: X₀ {O(n)}
(g₂,g), X₁: X₁ {O(n)}
(g₂,g), X₂: X₂ {O(n)}
(g₂,g), X₃: X₃ {O(n)}
(g₄,h), X₀: 2⋅X₃+3⋅X₀ {O(n)}
(g₄,h), X₁: X₁ {O(n)}
(g₄,h), X₂: X₂ {O(n)}
(g₄,h), X₃: X₃ {O(n)}
(g₆,g), X₀: 2⋅X₃+3⋅X₀ {O(n)}
(g₆,g), X₁: X₁ {O(n)}
(g₆,g), X₂: X₂ {O(n)}
(g₆,g), X₃: X₃ {O(n)}
(g₈,g), X₀: 2⋅X₃+3⋅X₀ {O(n)}
(g₈,g), X₁: X₁ {O(n)}
(g₈,g), X₂: X₂ {O(n)}
(g₈,g), X₃: X₃ {O(n)}