| Preface | p. v |
| List of definitions etc. | p. xvii |
| Probabilistic guarded commands | p. 1 |
| Introduction to pGCL | p. 3 |
| Sequential program logic | p. 4 |
| The programming language pGCL | p. 7 |
| An informal computational model for pGCL | p. 11 |
| Behind the scenes: elementary probability theory | p. 16 |
| Basic syntax and semantics of pGCL | p. 18 |
| Healthiness and algebra for pGCL | p. 28 |
| Healthiness example: modular reasoning | p. 32 |
| Interaction of probabilistic- and demonic choice | p. 34 |
| Summary | p. 35 |
| Chapter notes | p. 36 |
| Probabilistic loops: invariants and variants | p. 37 |
| Introduction: loops via recursion | p. 38 |
| Probabilistic invariants | p. 39 |
| Probabilistic termination | p. 40 |
| Invariance and termination together: the loop rule | p. 42 |
| Three examples of probabilistic loops | p. 44 |
| The Zero-One Law for termination | p. 53 |
| Probabilistic variant arguments for termination | p. 54 |
| Termination example: self-stabilisation | p. 56 |
| Uncertain termination | p. 61 |
| Proper post-expectations | p. 63 |
| Bounded vs. unbounded expectations | p. 68 |
| Informal proof of the loop rule | p. 74 |
| Chapter notes | p. 77 |
| Case studies in termination | p. 79 |
| Rabin's choice coordination | p. 79 |
| The dining philosophers | p. 88 |
| The general random ""jump"" | p. 99 |
| Chapter notes | p. 105 |
| Probabilistic data refinement: the steam boiler | p. 107 |
| Introduction: refinement of datatypes | p. 107 |
| Data refinement and simulations | p. 108 |
| Probabilistic datatypes: a worked example | p. 110 |
| A safety-critical application: the steam boiler | p. 117 |
| Summary | p. 123 |
| Chapter notes | p. 124 |
| Semantic structures | p. 127 |
| Theory for the demonic model | p. 129 |
| Deterministic probabilistic programs | p. 130 |
| The sample space, random variables and expectations | p. 133 |
| Probabilistic deterministic transformers | p. 135 |
| Relational demonic semantics | p. 137 |
| Regular transformers | p. 141 |
| Healthiness conditions for probabilistic programs | p. 145 |
| Characterising regular programs | p. 149 |
| Complementary and consistent semantics | p. 154 |
| Review: semantic structures | p. 157 |
| Chapter notes | p. 164 |
| The geometry of probabilistic programs | p. 165 |
| Embedding distributions in Euclidean space | p. 166 |
| Standard deterministic programs | p. 166 |
| Probabilistic deterministic programs | p. 167 |
| Demonic programs | p. 168 |
| Refinement | p. 169 |
| Nontermination and sub-distributions | p. 171 |
| Expectations and touching planes | p. 172 |
| Refinement seen geometrically | p. 174 |
| The geometry of the healthiness conditions | p. 175 |
| Sublinearity corresponds to convexity | p. 176 |
| Truncated subtraction | p. 177 |
| A geometrical proof for recursion | p. 177 |
| Chapter notes | p. 180 |
| Proved rules for probabilistic loops | p. 181 |
| Introduction | p. 182 |
| Partial loop correctness | p. 184 |
| Total loop correctness | p. 186 |
| Full proof of the loop rule | p. 189 |
| Probabilistic variant arguments | p. 191 |
| Finitary completeness of variants | p. 193 |
| Do-it-yourself semantics | p. 195 |
| Summary | p. 214 |
| Chapter notes | p. 216 |
| The transformer hierarchy | p. 217 |
| Introduction | p. 217 |
| Infinite state spaces | p. 219 |
| Deterministic programs | p. 221 |
| Demonic programs | p. 224 |
| Angelic programs | p. 227 |
| Standard programs | p. 231 |
| Summary | p. 238 |
| Chapter notes | p. 242 |
| Advanced topics | p. 243 |
| Quantitative temporal logic: an introduction | p. 245 |
| Modal and temporal logics | p. 245 |
| Standard temporal logic: a review | p. 247 |
| Quantitative temporal logic | p. 252 |
| Temporal operators as games | p. 254 |
| Summary | p. 262 |
| Chapter notes | p. 263 |
| The quantitative algebra of qTL | p. 265 |
| The role of algebra | p. 265 |
| Quantitative temporal expectations | p. 268 |
| Quantitative temporal algebra | p. 277 |
| Examples: demonic random walkers and stumblers | p. 283 |
| Summary | p. 289 |
| Chapter notes | p. 291 |
| The quantitative modal -calculus qM, and games | p. 293 |
| Introduction to the -calculus | p. 293 |
| Quantitative -calculus for probability | p. 295 |
| Logical formulae and transition systems | p. 295 |
| Two interpretations of qM | p. 298 |
| Example | p. 301 |
| Proof of equivalence of interpretations | p. 304 |
| Summary | p. 308 |
| Chapter notes | p. 310 |
| Appendices, bibliography and indexes | p. 311 |
| Alternative approaches | p. 313 |
| Probabilistic Hoare-triples | p. 313 |
| A programming logic of distributions | p. 316 |
| Supplementary material | p. 321 |
| Some algebraic laws of probabilistic programs | p. 321 |
| Loop rule for demonic iterations | p. 328 |
| Further facts about probabilistic wp and wlp | p. 331 |
| Infinite state spaces | p. 332 |
| Linear-programming lemmas | p. 341 |
| Further lemmas for eventually | p. 342 |
| Bibliography | p. 345 |
| Index of citations | p. 357 |
| General index | p. 361 |
| Table of Contents provided by Publisher. All Rights Reserved. |