Preprocessing

Found invariant 1 ≤ X₃ ∧ 1 ≤ X₀+X₃ ∧ X₂ ≤ X₁ ∧ 0 ≤ 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(0,X₂,X₂,X₃) :|: 1 ≤ X₃
g₅:h(X₀,X₁,X₂,X₃) → [1/4]:t₆:h(X₀,1+X₁,X₂,X₃) :+: [3/4]:t₇:h(X₀+UNIFORM(1, 3),1+X₁,X₂,X₃) :|: X₀ ≤ X₁ ∧ 0 ≤ 1 ∧ 1 ≤ X₀+X₃ ∧ 1 ≤ X₃ ∧ 0 ≤ X₀ ∧ X₂ ≤ X₁
g₈:h(X₀,X₁,X₂,X₃) → t₉:g(X₀,X₁,X₂,X₃-1) :|: 1+X₁ ≤ X₀ ∧ 1 ≤ X₀+X₃ ∧ 1 ≤ X₃ ∧ 0 ≤ 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]

MPRF for transition t₄: g(X₀,X₁,X₂,X₃) -{0}> h(Temp_Int₉₁,X₂,X₂,X₃) :|: 1 ≤ X₃ ∧ Temp_Int₉₁ ≤ 0 ∧ 0 ≤ Temp_Int₉₁ ∧ 1 ≤ X₃ of depth 1:

new bound:

X₃ {O(n)}

MPRF:

• g: [X₃]
• h: [X₃-1]

MPRF for transition t₉: h(X₀,X₁,X₂,X₃) → g(X₀,X₁,X₂,X₃-1) :|: 1 ≤ X₀+X₃ ∧ 1 ≤ X₃ ∧ 0 ≤ X₀ ∧ X₂ ≤ X₁ ∧ 1+X₁ ≤ X₀ of depth 1:

new bound:

X₃ {O(n)}

MPRF:

• g: [X₃]
• h: [X₃]

Classical Approximation after Lifting Classical Results

All Bounds
Timebounds

Overall timebound:inf {Infinity}
g₁: 1 {O(1)}
g₃: X₃ {O(n)}
g₅: inf {Infinity}
g₈: X₃ {O(n)}

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₀: 0 {O(1)}
(g₃,h), X₁: 2⋅X₂ {O(n)}
(g₃,h), X₂: X₂ {O(n)}
(g₃,h), X₃: X₃ {O(n)}
(g₅,h), X₂: 2⋅X₂ {O(n)}
(g₅,h), X₃: 2⋅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₅:h(X₀,X₁,X₂,X₃) → [1/4]:t₆:h(X₀,1+X₁,X₂,X₃) :+: [3/4]:t₇:h(X₀+UNIFORM(1, 3),1+X₁,X₂,X₃) :|: X₀ ≤ X₁ ∧ 0 ≤ 1 ∧ 1 ≤ X₀+X₃ ∧ 1 ≤ X₃ ∧ 0 ≤ X₀ ∧ X₂ ≤ X₁:

new bound:

4⋅X₂⋅X₃+4⋅X₃⋅X₃ {O(n^2)}

PLRF:

• h: 2⋅X₁+4⋅X₃-2⋅X₀

Use expected size bounds for entry point (g₃:g→[t₄:1:h],h)
Use expected size bounds for entry point (g₃:g→[t₄:1:h],h)
Use expected size bounds for entry point (g₃:g→[t₄:1:h],h)
Use classical time bound for entry point (g₃:g→[t₄:1:h],h)

Results of Probabilistic Analysis

All Bounds

Timebounds

Overall timebound:4⋅X₂⋅X₃+4⋅X₃⋅X₃+2⋅X₃+1 {O(n^2)}
g₁: 1 {O(1)}
g₃: X₃ {O(n)}
g₅: 4⋅X₂⋅X₃+4⋅X₃⋅X₃ {O(n^2)}
g₈: X₃ {O(n)}

Costbounds

Overall costbound: 8⋅X₂⋅X₃+8⋅X₃⋅X₃+X₃ {O(n^2)}
g₁: 0 {O(1)}
g₃: 0 {O(1)}
g₅: 8⋅X₂⋅X₃+8⋅X₃⋅X₃ {O(n^2)}
g₈: 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₀: 0 {O(1)}
(g₃,h), X₁: 2⋅X₂ {O(n)}
(g₃,h), X₂: X₂ {O(n)}
(g₃,h), X₃: X₃ {O(n)}
(g₅,h), X₀: 6⋅X₂⋅X₃+6⋅X₃⋅X₃+X₀ {O(n^2)}
(g₅,h), X₂: X₂ {O(n)}
(g₅,h), X₃: X₃ {O(n)}
(g₈,g), X₀: 6⋅X₂⋅X₃+6⋅X₃⋅X₃+X₀ {O(n^2)}
(g₈,g), X₂: X₂ {O(n)}
(g₈,g), X₃: X₃ {O(n)}