Preprocessing

Found invariant 1 ≤ X₂ ∧ 1 ≤ X₁+X₂ ∧ X₁ ≤ X₂ ∧ 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₂ ∧ X₁ ≤ 1 ∧ X₁ ≤ 1+X₀ ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ 0 ≤ X₀ for location h

Found invariant 1 ≤ X₂ ∧ 2 ≤ X₁+X₂ ∧ X₁ ≤ X₂ ∧ 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₂ ∧ X₁ ≤ 1 ∧ X₁ ≤ 1+X₀ ∧ 1 ≤ X₁ ∧ 1 ≤ X₀+X₁ ∧ 0 ≤ X₀ for location j

Found invariant 1 ≤ X₂ ∧ 2 ≤ X₁+X₂ ∧ X₁ ≤ X₂ ∧ 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₂ ∧ X₁ ≤ 1 ∧ X₁ ≤ 1+X₀ ∧ 1 ≤ X₁ ∧ 1 ≤ X₀+X₁ ∧ 0 ≤ X₀ for location k

Found invariant 0 ≤ X₀ for location g

Found invariant 1 ≤ X₂ ∧ 2 ≤ X₁+X₂ ∧ X₁ ≤ X₂ ∧ 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₂ ∧ X₁ ≤ 1 ∧ X₁ ≤ 1+X₀ ∧ 1 ≤ X₁ ∧ 1 ≤ X₀+X₁ ∧ 0 ≤ X₀ for location i

Probabilistic Analysis

Probabilistic Program after Preprocessing

Start: f
Program_Vars: X₀, X₁, X₂
Temp_Vars:
Locations: f, g, h, i, j, k
Transitions:
g₀:f(X₀,X₁,X₂) -{0}> t₁:g(0,X₁,X₂) :|:
g₂:g(X₀,X₁,X₂) -{0}> [1/2]:t₃:h(X₀,1,X₂) :+: [1/2]:t₄:g(1+X₀,X₁,X₂) :|: 1+X₀ ≤ X₂ ∧ 0 ≤ X₀
g₅:h(X₀,X₁,X₂) -{0}> [1/3]:t₆:i(X₀,X₁,X₂) :+: [1/3]:t₇:j(X₀,X₁,X₂) :+: [1/3]:t₈:k(X₀,X₁,X₂) :|: 1 ≤ X₁ ∧ X₁ ≤ 1+X₀ ∧ X₁ ≤ 1 ∧ 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₂ ∧ 1 ≤ X₁+X₂ ∧ 1 ≤ X₂ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ 0 ≤ X₁ ∧ X₁ ≤ X₂
g₉:h(X₀,X₁,X₂) -{0}> t₁₀:g(1+X₀,X₁,X₂) :|: X₁ ≤ 0 ∧ X₁ ≤ 1+X₀ ∧ X₁ ≤ 1 ∧ 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₂ ∧ 1 ≤ X₁+X₂ ∧ 1 ≤ X₂ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ 0 ≤ X₁ ∧ X₁ ≤ X₂
g₁₁:i(X₀,X₁,X₂) -{3}> t₁₂:h(X₀,0,X₂) :|: X₁ ≤ 1+X₀ ∧ X₁ ≤ 1 ∧ 1 ≤ X₀+X₁ ∧ 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₂ ∧ 2 ≤ X₁+X₂ ∧ 0 ≤ X₀ ∧ X₁ ≤ X₂
g₁₃:j(X₀,X₁,X₂) -{5}> t₁₄:h(X₀,1,X₂) :|: X₁ ≤ 1+X₀ ∧ X₁ ≤ 1 ∧ 1 ≤ X₀+X₁ ∧ 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₂ ∧ 2 ≤ X₁+X₂ ∧ 0 ≤ X₀ ∧ X₁ ≤ X₂
g₁₅:k(X₀,X₁,X₂) -{7}> t₁₆:h(X₀,1,X₂) :|: X₁ ≤ 1+X₀ ∧ X₁ ≤ 1 ∧ 1 ≤ X₀+X₁ ∧ 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₂ ∧ 2 ≤ X₁+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}
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}
g₁₅: inf {Infinity}

Sizebounds

(g₀,g), X₀: 0 {O(1)}
(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; i; j; k]

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

new bound:

X₂ {O(n)}

MPRF:

• g: [X₂-X₀]
• h: [X₂-1-X₀]
• i: [X₂-1-X₀]
• j: [X₂-1-X₀]
• k: [X₂-1-X₀]

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

new bound:

X₂ {O(n)}

MPRF:

• g: [X₂-X₀]
• h: [X₂-X₀]
• i: [X₂-X₀]
• j: [X₂-X₀]
• k: [X₂-X₀]

MPRF for transition t₆: h(X₀,X₁,X₂) -{0}> i(X₀,X₁,X₂) :|: X₁ ≤ 1+X₀ ∧ X₁ ≤ 1 ∧ 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₂ ∧ 1 ≤ X₁+X₂ ∧ 1 ≤ X₂ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ 0 ≤ X₁ ∧ X₁ ≤ X₂ ∧ 1 ≤ X₁ of depth 1:

new bound:

X₂+1 {O(n)}

MPRF:

• g: [1+X₂-X₀]
• h: [X₁+X₂-X₀]
• i: [X₁+X₂-1-X₀]
• j: [1+X₂-X₀]
• k: [X₁+X₂-X₀]

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

new bound:

X₂ {O(n)}

MPRF:

• g: [X₂-X₀]
• h: [X₂-X₀]
• i: [X₂-X₀]
• j: [X₂-X₀]
• k: [X₂-X₀]

MPRF for transition t₁₂: i(X₀,X₁,X₂) -{3}> h(X₀,Temp_Int₁₄₀,X₂) :|: X₁ ≤ 1+X₀ ∧ X₁ ≤ 1 ∧ 1 ≤ X₀+X₁ ∧ 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₂ ∧ 2 ≤ X₁+X₂ ∧ 0 ≤ X₀ ∧ X₁ ≤ X₂ ∧ 1+X₀ ≤ X₂ ∧ 0 ≤ X₀ ∧ X₁ ≤ 1 ∧ 1 ≤ X₁ ∧ Temp_Int₁₄₀ ≤ 0 ∧ 0 ≤ Temp_Int₁₄₀ of depth 1:

new bound:

X₂ {O(n)}

MPRF:

• g: [X₂-X₀]
• h: [X₁+X₂-1-X₀]
• i: [X₂-X₀]
• j: [X₁+X₂-1-X₀]
• k: [X₁+X₂-1-X₀]

Classical Approximation after Lifting Classical Results

All Bounds
Timebounds

Overall timebound:inf {Infinity}
g₀: 1 {O(1)}
g₂: 2⋅X₂ {O(n)}
g₅: inf {Infinity}
g₉: X₂ {O(n)}
g₁₁: X₂ {O(n)}
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}
g₁₅: inf {Infinity}

Sizebounds

(g₀,g), X₀: 0 {O(1)}
(g₀,g), X₁: X₁ {O(n)}
(g₀,g), X₂: X₂ {O(n)}
(g₂,g), X₀: 4⋅X₂ {O(n)}
(g₂,g), X₁: X₁+1 {O(n)}
(g₂,g), X₂: 2⋅X₂ {O(n)}
(g₂,h), X₀: 4⋅X₂ {O(n)}
(g₂,h), X₁: X₁+1 {O(n)}
(g₂,h), X₂: 2⋅X₂ {O(n)}
(g₅,i), X₀: 6⋅X₂ {O(n)}
(g₅,i), X₁: 3 {O(1)}
(g₅,i), X₂: 3⋅X₂ {O(n)}
(g₅,j), X₀: 6⋅X₂ {O(n)}
(g₅,j), X₁: 3 {O(1)}
(g₅,j), X₂: 3⋅X₂ {O(n)}
(g₅,k), X₀: 6⋅X₂ {O(n)}
(g₅,k), X₁: 3 {O(1)}
(g₅,k), X₂: 3⋅X₂ {O(n)}
(g₉,g), X₀: 2⋅X₂ {O(n)}
(g₉,g), X₁: 0 {O(1)}
(g₉,g), X₂: X₂ {O(n)}
(g₁₁,h), X₀: 2⋅X₂ {O(n)}
(g₁₁,h), X₁: 0 {O(1)}
(g₁₁,h), X₂: X₂ {O(n)}
(g₁₃,h), X₀: 2⋅X₂ {O(n)}
(g₁₃,h), X₁: 1 {O(1)}
(g₁₃,h), X₂: X₂ {O(n)}
(g₁₅,h), X₀: 2⋅X₂ {O(n)}
(g₁₅,h), X₁: 1 {O(1)}
(g₁₅,h), X₂: X₂ {O(n)}

Run probabilistic analysis on SCC: [g; h; i; j; k]

Plrf for transition g₅:h(X₀,X₁,X₂) -{0}> [1/3]:t₆:i(X₀,X₁,X₂) :+: [1/3]:t₇:j(X₀,X₁,X₂) :+: [1/3]:t₈:k(X₀,X₁,X₂) :|: 1 ≤ X₁ ∧ X₁ ≤ 1+X₀ ∧ X₁ ≤ 1 ∧ 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₂ ∧ 1 ≤ X₁+X₂ ∧ 1 ≤ X₂ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ 0 ≤ X₁ ∧ X₁ ≤ X₂:

new bound:

3/2⋅X₂ {O(n)}

PLRF:

• g: 3/2⋅X₂-3/2⋅X₀
• h: 3⋅X₁+3/2⋅X₂-3/2-3/2⋅X₀
• i: 6⋅X₁+3/2⋅X₂-15/2-3/2⋅X₀
• j: 3/2⋅X₁+3/2⋅X₂-3/2⋅X₀
• k: 3/2⋅X₁+3/2⋅X₂-3/2⋅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₁₃:j(X₀,X₁,X₂) -{5}> t₁₄:h(X₀,1,X₂) :|: X₁ ≤ 1+X₀ ∧ X₁ ≤ 1 ∧ 1 ≤ X₀+X₁ ∧ 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₂ ∧ 2 ≤ X₁+X₂ ∧ 0 ≤ X₀ ∧ X₁ ≤ X₂:

new bound:

1/2⋅X₂+1/2 {O(n)}

PLRF:

• g: 1/2+1/2⋅X₂-1/2⋅X₀
• h: X₁+1/2⋅X₂-1/2⋅X₀
• i: 1/2⋅X₂-1/2⋅X₀
• j: 2+1/2⋅X₂-1/2⋅X₀
• k: X₁+1/2⋅X₂-1/2⋅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₁₅:k(X₀,X₁,X₂) -{7}> t₁₆:h(X₀,1,X₂) :|: X₁ ≤ 1+X₀ ∧ X₁ ≤ 1 ∧ 1 ≤ X₀+X₁ ∧ 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₂ ∧ 2 ≤ X₁+X₂ ∧ 0 ≤ X₀ ∧ X₁ ≤ X₂:

new bound:

1/2⋅X₂+1/2 {O(n)}

PLRF:

• g: 1/2+1/2⋅X₂-1/2⋅X₀
• h: X₁+1/2⋅X₂-1/2⋅X₀
• i: 1/2⋅X₂-1/2⋅X₀
• j: X₁+1/2⋅X₂-1/2⋅X₀
• k: 2+1/2⋅X₂-1/2⋅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:13/2⋅X₂+2 {O(n)}
g₀: 1 {O(1)}
g₂: 2⋅X₂ {O(n)}
g₅: 3/2⋅X₂ {O(n)}
g₉: X₂ {O(n)}
g₁₁: X₂ {O(n)}
g₁₃: 1/2⋅X₂+1/2 {O(n)}
g₁₅: 1/2⋅X₂+1/2 {O(n)}

Costbounds

Overall costbound: 9⋅X₂+6 {O(n)}
g₀: 0 {O(1)}
g₂: 0 {O(1)}
g₅: 0 {O(1)}
g₉: 0 {O(1)}
g₁₁: 3⋅X₂ {O(n)}
g₁₃: 5/2⋅X₂+5/2 {O(n)}
g₁₅: 7/2⋅X₂+7/2 {O(n)}

Sizebounds

(g₀,g), X₀: 0 {O(1)}
(g₀,g), X₁: X₁ {O(n)}
(g₀,g), X₂: X₂ {O(n)}
(g₂,g), X₀: 4⋅X₂ {O(n)}
(g₂,g), X₁: X₁+1 {O(n)}
(g₂,g), X₂: X₂ {O(n)}
(g₂,h), X₀: 4⋅X₂ {O(n)}
(g₂,h), X₁: 1 {O(1)}
(g₂,h), X₂: X₂ {O(n)}
(g₅,i), X₀: 6⋅X₂ {O(n)}
(g₅,i), X₁: 3 {O(1)}
(g₅,i), X₂: X₂ {O(n)}
(g₅,j), X₀: 6⋅X₂ {O(n)}
(g₅,j), X₁: 3 {O(1)}
(g₅,j), X₂: X₂ {O(n)}
(g₅,k), X₀: 6⋅X₂ {O(n)}
(g₅,k), X₁: 3 {O(1)}
(g₅,k), X₂: X₂ {O(n)}
(g₉,g), X₀: 2⋅X₂ {O(n)}
(g₉,g), X₁: 0 {O(1)}
(g₉,g), X₂: X₂ {O(n)}
(g₁₁,h), X₀: 2⋅X₂ {O(n)}
(g₁₁,h), X₁: 0 {O(1)}
(g₁₁,h), X₂: X₂ {O(n)}
(g₁₃,h), X₀: 2⋅X₂ {O(n)}
(g₁₃,h), X₁: 1 {O(1)}
(g₁₃,h), X₂: X₂ {O(n)}
(g₁₅,h), X₀: 2⋅X₂ {O(n)}
(g₁₅,h), X₁: 1 {O(1)}
(g₁₅,h), X₂: X₂ {O(n)}