Preprocessing

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

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

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

Cut unsatisfiable transition [t₁₅∈g₁₄: j→1:h]

Probabilistic Analysis

Probabilistic Program after Preprocessing

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

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

new bound:

X₃ {O(n)}

MPRF:

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

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

new bound:

X₃+1 {O(n)}

MPRF:

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

MPRF for transition t₁₃: j(X₀,X₁,X₂,X₃) → h(X₀,X₁,Temp_Int₁₄₁,X₃) :|: X₀+X₁ ≤ 2 ∧ X₀+X₂ ≤ 2 ∧ X₁+X₂ ≤ 2 ∧ X₀ ≤ 1 ∧ X₀ ≤ 1+X₁ ∧ X₂ ≤ 1+X₁ ∧ X₁ ≤ 1 ∧ X₂ ≤ 1 ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₁ ∧ 1 ≤ X₁+X₂ ∧ 1 ≤ X₁+X₃ ∧ 1 ≤ X₂ ∧ 1 ≤ X₃ ∧ 2 ≤ X₀+X₂ ∧ 2 ≤ X₀+X₃ ∧ 2 ≤ X₂+X₃ ∧ X₁ ≤ X₀ ∧ X₂ ≤ X₀ ∧ X₀ ≤ X₂ ∧ X₀ ≤ X₃ ∧ 0 ≤ X₁ ∧ X₁ ≤ X₂ ∧ X₁ ≤ X₃ ∧ X₂ ≤ X₃ ∧ 1 ≤ X₃ ∧ X₂ ≤ 1 ∧ 1 ≤ X₂ ∧ X₁ ≤ 0 ∧ 0 ≤ X₁ ∧ X₀ ≤ 1 ∧ 1 ≤ X₀ ∧ Temp_Int₁₄₁ ≤ 0 ∧ 0 ≤ Temp_Int₁₄₁ ∧ 1+X₁ ≤ X₀ of depth 1:

new bound:

X₃+1 {O(n)}

MPRF:

• g: [1+X₃]
• h: [X₂+X₃]
• i: [X₂+X₃]
• j: [1+X₃]

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

new bound:

X₃ {O(n)}

MPRF:

• g: [X₃]
• h: [X₃]
• i: [X₃]
• j: [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₇: inf {Infinity}
g₁₀: inf {Infinity}
g₁₂: X₃+1 {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}
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₀+1 {O(n)}
(g₂,h), X₁: X₁ {O(n)}
(g₂,h), X₂: 1 {O(1)}
(g₂,h), X₃: X₃ {O(n)}
(g₄,i), X₀: 2 {O(1)}
(g₄,i), X₁: 2⋅X₁+2 {O(n)}
(g₄,i), X₂: 2 {O(1)}
(g₄,i), X₃: 2⋅X₃ {O(n)}
(g₇,j), X₀: 2 {O(1)}
(g₇,j), X₁: 1 {O(1)}
(g₇,j), X₂: 2 {O(1)}
(g₇,j), X₃: 2⋅X₃ {O(n)}
(g₁₀,h), X₀: 1 {O(1)}
(g₁₀,h), X₁: 1 {O(1)}
(g₁₀,h), X₂: 1 {O(1)}
(g₁₀,h), X₃: X₃ {O(n)}
(g₁₂,h), X₀: 1 {O(1)}
(g₁₂,h), X₁: 0 {O(1)}
(g₁₂,h), X₂: 0 {O(1)}
(g₁₂,h), X₃: X₃ {O(n)}
(g₁₆,g), X₀: 1 {O(1)}
(g₁₆,g), X₁: 0 {O(1)}
(g₁₆,g), X₂: 0 {O(1)}
(g₁₆,g), X₃: X₃ {O(n)}

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

Plrf for transition g₄:h(X₀,X₁,X₂,X₃) -{0}> [1/2]:t₅:i(1,X₁,X₂,X₃) :+: [1/2]:t₆:i(1,X₁,X₂,X₃) :|: 1 ≤ X₂ ∧ X₂ ≤ 1 ∧ 1 ≤ X₂+X₃ ∧ 1 ≤ X₃ ∧ 0 ≤ X₂ ∧ X₂ ≤ X₃:

new bound:

2⋅X₃ {O(n)}

PLRF:

• g: 2⋅X₃
• h: 2⋅X₂+2⋅X₃-2
• i: 2⋅X₃-X₂
• j: 2⋅X₁+2⋅X₃-2⋅X₂

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₇:i(X₀,X₁,X₂,X₃) -{0}> [1/2]:t₈:j(X₀,0,X₂,X₃) :+: [1/2]:t₉:j(X₀,1,X₂,X₃) :|: 1 ≤ X₂ ∧ X₀+X₂ ≤ 2 ∧ X₀ ≤ 1 ∧ X₂ ≤ 1 ∧ 1 ≤ X₀ ∧ 1 ≤ X₃ ∧ 2 ≤ X₀+X₂ ∧ 2 ≤ X₀+X₃ ∧ 2 ≤ X₂+X₃ ∧ X₂ ≤ X₀ ∧ X₀ ≤ X₂ ∧ X₀ ≤ X₃ ∧ X₂ ≤ X₃:

new bound:

2⋅X₃ {O(n)}

PLRF:

• g: 2⋅X₃
• h: 2⋅X₂+2⋅X₃-2
• i: 2+2⋅X₃-2⋅X₂
• j: 2⋅X₁+2⋅X₃-2⋅X₀

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₂,X₃) → t₁₁:h(X₀,X₁,1,X₃) :|: X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ X₀+X₁ ≤ 2 ∧ X₀+X₂ ≤ 2 ∧ X₁+X₂ ≤ 2 ∧ X₀ ≤ 1 ∧ X₀ ≤ 1+X₁ ∧ X₂ ≤ 1+X₁ ∧ X₁ ≤ 1 ∧ X₂ ≤ 1 ∧ 1 ≤ X₀ ∧ 1 ≤ X₀+X₁ ∧ 1 ≤ X₁+X₂ ∧ 1 ≤ X₁+X₃ ∧ 1 ≤ X₂ ∧ 1 ≤ X₃ ∧ 2 ≤ X₀+X₂ ∧ 2 ≤ X₀+X₃ ∧ 2 ≤ X₂+X₃ ∧ X₂ ≤ X₀ ∧ X₀ ≤ X₂ ∧ X₀ ≤ X₃ ∧ 0 ≤ X₁ ∧ X₁ ≤ X₂ ∧ X₁ ≤ X₃ ∧ X₂ ≤ X₃:

new bound:

X₃ {O(n)}

PLRF:

• g: X₃
• h: X₂+X₃-1
• i: X₃
• j: 1+2⋅X₁+X₃-2⋅X₂

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:8⋅X₃+2 {O(n)}
g₀: 1 {O(1)}
g₂: X₃ {O(n)}
g₄: 2⋅X₃ {O(n)}
g₇: 2⋅X₃ {O(n)}
g₁₀: X₃ {O(n)}
g₁₂: X₃+1 {O(n)}
g₁₆: X₃ {O(n)}

Costbounds

Overall costbound: 3⋅X₃+1 {O(n)}
g₀: 0 {O(1)}
g₂: 0 {O(1)}
g₄: 0 {O(1)}
g₇: 0 {O(1)}
g₁₀: X₃ {O(n)}
g₁₂: X₃+1 {O(n)}
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₀: X₀+1 {O(n)}
(g₂,h), X₁: X₁ {O(n)}
(g₂,h), X₂: 1 {O(1)}
(g₂,h), X₃: X₃ {O(n)}
(g₄,i), X₀: 2 {O(1)}
(g₄,i), X₁: 2⋅X₁+2 {O(n)}
(g₄,i), X₂: 2 {O(1)}
(g₄,i), X₃: X₃ {O(n)}
(g₇,j), X₀: 2 {O(1)}
(g₇,j), X₁: 1 {O(1)}
(g₇,j), X₂: 2 {O(1)}
(g₇,j), X₃: X₃ {O(n)}
(g₁₀,h), X₀: 1 {O(1)}
(g₁₀,h), X₁: 1 {O(1)}
(g₁₀,h), X₂: 1 {O(1)}
(g₁₀,h), X₃: X₃ {O(n)}
(g₁₂,h), X₀: 1 {O(1)}
(g₁₂,h), X₁: 0 {O(1)}
(g₁₂,h), X₂: 0 {O(1)}
(g₁₂,h), X₃: X₃ {O(n)}
(g₁₆,g), X₀: 1 {O(1)}
(g₁₆,g), X₁: 0 {O(1)}
(g₁₆,g), X₂: 0 {O(1)}
(g₁₆,g), X₃: X₃ {O(n)}