To save content items to your account,
please confirm that you agree to abide by our usage policies.
If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account.
Find out more about saving content to .
To save content items to your Kindle, first ensure no-reply@cambridge.org
is added to your Approved Personal Document E-mail List under your Personal Document Settings
on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part
of your Kindle email address below.
Find out more about saving to your Kindle.
Note you can select to save to either the @free.kindle.com or @kindle.com variations.
‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi.
‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.
Turing Award-winner Leslie Lamport shares the key lessons he has learned about concurrent and distributed computing over decades of writing and reasoning about their algorithms. Algorithms are not programs, and they shouldn't be written in a programming language. Instead, this book explores how to write them and reason about them by using mathematics. It explains the principles underlying abstract programs, which should be implemented to avoid concurrency errors. Designing an abstract program before writing any code can lead to better, more reliable programs. The book has very few mathematical prerequisites, with an appendix summarizing the necessary knowledge. The examples are written in TLA+ and are available online. This is a fascinating read for any graduate students and researchers in theoretical computer science, concurrency, and distributed systems.
Computable structure theory quantifies and studies the relative complexity of mathematical structures. This text, in conjunction with the author's previous volume, represents the first full monograph on computable structure theory in two decades. It brings new results of the author together with many older results that were previously scattered across the literature and presents them all in a coherent framework. Geared towards graduate students and researchers in mathematical logic, the book enables the reader to learn all the main results and techniques in the area for application in their own research. While the previous volume focused on countable structures whose complexity can be measured within arithmetic, this second volume delves into structures beyond arithmetic, moving into the realm of the hyperarithmetic and the infinitary languages.
This up-to-date introduction to type theory and homotopy type theory will be essential reading for advanced undergraduate and graduate students interested in the foundations and formalization of mathematics. The book begins with a thorough and self-contained introduction to dependent type theory. No prior knowledge of type theory is required. The second part gradually introduces the key concepts of homotopy type theory: equivalences, the fundamental theorem of identity types, truncation levels, and the univalence axiom. This prepares the reader to study a variety of subjects from a univalent point of view, including sets, groups, combinatorics, and well-founded trees. The final part introduces the idea of higher inductive type by discussing the circle and its universal cover. Each part is structured into bite-size chapters, each the length of a lecture, and over 200 exercises provide ample practice material.
We define the category of polynomial functors by introducing its morphisms, called dependent lenses or lenses for short, and we show how they model interaction protocols. We introduce several methods for working with these lenses, including visual tools such as corolla forests and polybox pictures. We explain how these lenses represent bidirectional communication between polynomials and describe how they compose. By the end of the chapter, readers will have a comprehensive understanding of how polynomial functors and their morphisms can be used to model complex interactive behaviors.
We review relevant concepts from and properties of the categories of sets and of endofunctors on the category of sets relevant to our work. We discuss representable functors on the category of sets, introducing our exponential notation for them, and we state and prove the Yoneda lemma for these with the help of an exercise. We then examine sums (or coproducts) and products of sets and functions through the language of indexed families of sets. In particular, we characterize products of sets in terms of dependent functions, generalizing functions by allowing their codomains to vary depending on their inputs. We study nested sums and products of sets, explaining how distributivity allows us to expand products of sums of sets. By lifting all of this material to endofunctors on the category of sets, and using the fact that its limits and colimits are computed pointwise, we set ourselves up to introduce polynomial functors as sums of representable functors in the next chapter. Throughout the chapter, we emphasize key categorical principles and provide detailed explanations to ensure solid comprehension of these fundamental ideas.
We examine a monoidal structure on the category of polynomial functors, defined through the operation of substituting one polynomial into another. We explain how this composition product transforms polynomials into a richer algebraic structure, enabling the modeling of more complex interactions and processes. The chapter explores the properties of this monoidal structure, how it relates to existing constructions in category theory, and its implications for understanding time evolution and dynamical behavior. We also provide examples and visual representations to clarify how substitution works in practice.
We study the structure and utility of the category formed by small categories and retrofunctors. We analyze key properties of this category, such as limits, colimits, and factorizations, and explain how these structures support various forms of composition and interaction. The chapter delves into the cofree comonoid construction, exploring how it connects to familiar concepts in category theory, and extends our understanding of state-based systems. We also discuss applications of retrofunctors and demonstrate how they can be used to model complex processes in a structured way.
We formally define polynomial endofunctors on the category of sets, referring to them as polynomial functors or simply polynomials. These are constructed as sums of representable functors on the category of sets. We provide concrete examples of polynomials and highlight that the set of representable summands of a polynomial is isomorphic to the set obtained by evaluating the functor at the singleton set, which we term the positions of the polynomial. For each position, the elements of the representing set of the corresponding representable summand are called the directions. Beyond representables, we define three additional special classes of polynomials: constants, linear polynomials, and monomials. We close the chapter by offering three intuitive interpretations of positions and directions: as menus and options available to a decision-making agent, as roots and leaves of specific directed graphs called corolla forests, and as entries in two-cell spreadsheets we refer to as polyboxes.
We show that the category of comonoids, defined with respect to the composition product in the category of polynomial functors, is equivalent to a category of small categories as objects but with an interesting type of morphism called retrofunctors. Unlike traditional functors, retrofunctors operate in a forward-backward manner, offering a different kind of relationship between categories. We introduce this concept of retrofunctors, provide examples to illustrate their behavior, and explain their role in modeling state systems.
We model discrete-time dynamical systems using a specific class of lenses between polynomials whose domains are equipped with a bijection between their positions and their directions. We introduce Moore machines and deterministic state automata as key examples, showing how these morphisms describe state transitions and interactions. We also explain how to build new dynamical systems from existing ones using operations like products, parallel composition, and compositions of these maps. This chapter demonstrates how polynomial functors can be used to represent and analyze discrete-time dynamical behavior in a clear, structured way.
We describe a range of additional category-theoretic structures on the category of polynomial functors. These include concepts like adjunctions, epi-mono factorizations, and cartesian closure. We also cover limits and colimits of polynomials and explore vertical-cartesian factorizations of morphisms. The chapter highlights how these structures provide new tools for working with polynomial functors and extend their usefulness in modeling various types of interactions and constructions.