The sections on consensus a nd on causality and t i m e are b o t h pitched at an ap p ro p riate level for advanced u n d e r g r a d u a t e s . T h e second section of the book concerns how to simulate one k i n d of s y s t e m w i t h another. This section starts by i nt r oduc i ng some formal machinery, an d proceeds to consider how to i m p l e m e n t broadcast a nd multicast, correctness conditions for shared memory, i m p l e m e n t a t i o n s of r e a d / w r i t e variables, a n d "compiling" algorithms designed to tolerate one kind of failure into algorithms t h a t tolerate other kinds of failures. I covered th e multicast algorithms an d correctness conditions. Because of t he emphasis on formalism, an d the focus on subtle distinctions amo n g failure models, th e r e m a i n
/lp/association-for-computing-machinery/review-of-hilbert-s-tenth-problem-by-yttri-matiyasevich-o67axSqBop