Preprocessing

Eliminate variables [X₂] that do not contribute to the problem

Found invariant 0 ≤ X₀ for location h

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

Costbounds

Overall costbound: 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)}

Run probabilistic analysis on SCC: [f]

Run classical analysis on SCC: [g; h; i]

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

new bound:

X₀ {O(n)}

MPRF:

• g: [X₀]
• h: [X₀]
• i: [X₀]

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

new bound:

X₀ {O(n)}

MPRF:

• g: [X₀]
• h: [1+X₀]
• i: [X₀]

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

new bound:

X₀ {O(n)}

MPRF:

• g: [X₀]
• h: [1+X₀]
• i: [X₀]

MPRF for transition t₈: i(X₀,X₁,X₂) → i(X₀,X₁-1,X₂) :|: 0 ≤ X₀ ∧ 1 ≤ X₁ of depth 1:

new bound:

X₀+X₁ {O(n)}

MPRF:

• g: [X₀+X₁]
• h: [1+X₀+X₁]
• i: [X₀+X₁]

MPRF for transition t₁₀: i(X₀,X₁,X₂) → g(X₀,X₁,X₂) :|: 0 ≤ X₀ ∧ X₁ ≤ 0 of depth 1:

new bound:

X₀ {O(n)}

MPRF:

• g: [X₀]
• h: [X₀]
• i: [1+X₀]

Classical Approximation after Lifting Classical Results

All Bounds
Timebounds

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

Sizebounds

(g₀,g), X₀: X₀ {O(n)}
(g₀,g), X₁: X₁ {O(n)}
(g₀,g), X₂: X₂ {O(n)}
(g₂,h), X₀: 2⋅X₀ {O(n)}
(g₂,h), X₁: 2⋅X₀+2⋅X₁ {O(n)}
(g₂,h), X₂: 2⋅X₂ {O(n)}
(g₂,i), X₀: 2⋅X₀ {O(n)}
(g₂,i), X₁: 2⋅X₀+2⋅X₁ {O(n)}
(g₂,i), X₂: 2⋅X₂ {O(n)}
(g₅,g), X₀: X₀ {O(n)}
(g₅,g), X₁: X₀+X₁ {O(n)}
(g₅,g), X₂: X₂ {O(n)}
(g₇,i), X₀: X₀ {O(n)}
(g₇,i), X₁: X₀+X₁ {O(n)}
(g₇,i), X₂: X₂ {O(n)}
(g₉,g), X₀: X₀ {O(n)}
(g₉,g), X₁: X₀+X₁ {O(n)}
(g₉,g), X₂: X₂ {O(n)}

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

Results of Probabilistic Analysis

All Bounds

Timebounds

Overall timebound:5⋅X₀+X₁+1 {O(n)}
g₀: 1 {O(1)}
g₂: 2⋅X₀ {O(n)}
g₅: X₀ {O(n)}
g₇: X₀+X₁ {O(n)}
g₉: X₀ {O(n)}

Costbounds

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