We use cookies to distinguish you from other users and to provide you with a better experience on our websites. Close this message to accept cookies or find out how to manage your cookie settings.
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 [email protected]
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.
This is the first book to revisit the theory of rewriting in the context of strict higher categories, through the unified approach provided by polygraphs, and put it in the context of homotopical algebra. The first half explores the theory of polygraphs in low dimensions and its applications to the computation of the coherence of algebraic structures. Illustrated with algorithmic computations on algebraic structures, the only prerequisite in this section is basic category theory. The theory is introduced step-by-step, with detailed proofs. The second half introduces and studies the general notion of n-polygraph, before addressing the homotopy theory of these polygraphs. It constructs the folk model structure on the category on strict higher categories and exhibits polygraphs as cofibrant objects. This allows the formulation of higher-dimensional generalizations of the coherence results developed in the first half. Graduate students and researchers in mathematics and computer science will find this work invaluable.
In a technologically advanced and competitive landscape dominated by major tech companies and burgeoning start-ups, the key asset lies in boosting monthly active users. Traditionally, product design has relied on fragmented insights from personal experience, common sense, or isolated experiments. This work endeavours to establish a theoretical framework for predicting and influencing the digital behaviour of technology users. Drawing on over a century of scientific research in behaviour, cognition, and physiology, this presents a comprehensive approach to customizing digital stimuli. The objective is to enhance user interactions with digital and virtual environments. Through real and cost-effective examples, diagrams, and formulas, the text offers theoretical knowledge and a practical methodology to elevate digital product designs, setting them apart from the competition. With the potential to reshape the digital design landscape, this book emerges as a game-changer, promising to revolutionize how digital products and services are conceived and delivered.
Providing an in-depth treatment of an exciting research area, this text's central topics are initial algebras and terminal coalgebras, primary objects of study in all areas of theoretical computer science connected to semantics. It contains a thorough presentation of iterative constructions, giving both classical and new results on terminal coalgebras obtained by limits of canonical chains, and initial algebras obtained by colimits. These constructions are also developed in enriched settings, especially those enriched over complete partial orders and complete metric spaces, connecting the book to topics like domain theory. Also included are an extensive treatment of set functors, and the first book-length presentation of the rational fixed point of a functor, and of lifting results which connect fixed points of set functors with fixed points of endofunctors on other categories. Representing more than fifteen years of work, this will be the leading text on the subject for years to come.
The latest version of 'Programming in Ada' covers the full details of the core language Ada 2022 as approved by ISO in 2023, including new features that aid program proof and the efficient use of multicore architectures. The book is arranged in four parts. The first part introduces the key ideas to the newcomer with a working example illustrating the basic ideas. The algorithmic features, structural features such as OOP and multitasking, and details of the standard library and interaction with the external environment are all covered in subsequent parts. This comprehensive guide includes several working examples and is enhanced by a range of supplementary online materials, including a dozen complete executable programs, five of which illustrate important new features. 'Programming in Ada' is a must-have for anyone looking to learn Ada programming language, and will serve as a definitive reference for years to come.
Developing the theory up to the current state-of-the art, this book studies the minimal model of the Largest Suslin Axiom (LSA), which is one of the most important determinacy axioms and features prominently in Hugh Woodin's foundational framework known as the Ultimate L. The authors establish the consistency of LSA relative to large cardinals and develop methods for building models of LSA from other foundational frameworks such as Forcing Axioms. The book significantly advances the Core Model Induction method, which is the most successful method for building canonical inner models from various hypotheses. Also featured is a proof of the Mouse Set Conjecture in the minimal model of the LSA. It will be indispensable for graduate students as well as researchers in mathematics and philosophy of mathematics who are interested in set theory and in particular, in descriptive inner model theory.
Introducing Stone–Priestley duality theory and its applications to logic and theoretical computer science, this book equips graduate students and researchers with the theoretical background necessary for reading and understanding current research in the area. After giving a thorough introduction to the algebraic, topological, logical, and categorical aspects of the theory, the book covers two advanced applications in computer science, namely in domain theory and automata theory. These topics are at the forefront of active research seeking to unify semantic methods with more algorithmic topics in finite model theory. Frequent exercises punctuate the text, with hints and references provided.
The Java programming language has been one of the most powerful tools available to computer programmers since its inception in 1995. It has also consistently changed since then, making it a vast and powerful resource for object-oriented programming today. This lucid textbook introduces the student not only to the nuances of object-oriented programming, but also to the many syntaxes and semantics of the modern Java language. Each concept of programming is explained, and then illustrated with small but effective ready-to-run programs. Important points to be noted have been emphasized and hints have been given at the end of each discussion so that programmers are careful to avoid common pitfalls. Finally, a number of practice problems taken from real world scenarios encourage the student to think in terms of problem solving, consolidating the knowledge gained.
How should we treat the liar and kindred paradoxes? A Theory of Truth argues that we should diverge from classical logic, and presents a new formal theory of truth. The theory does not incorporate contradictions and is not substructural, but deviates from classical logic significantly, and endorses principles like 'No sentence is both true and false' and 'No sentence is neither true nor false'. The book starts with an introduction to the paradoxes, suitable for newcomers to the subject, before presenting its approach. Four versions of the theory are covered, extending the theory to a determinacy operator and to a full first-order language with quantifiers. Each includes all Tarskian biconditionals that can be formulated in its language. The author uses original methods to prove the consistency of each version and compares the theory to alternative non-classical theories, including Field's paracomplete approach, Ripley's nontransitive system and Zardini's contraction-free calculus.
String diagrams are powerful graphical methods for reasoning in elementary category theory. Written in an informal expository style, this book provides a self-contained introduction to these diagrammatic techniques, ideal for graduate students and researchers. Much of the book is devoted to worked examples highlighting how best to use string diagrams to solve realistic problems in elementary category theory. A range of topics are explored from the perspective of string diagrams, including adjunctions, monad and comonads, Kleisli and Eilenberg–Moore categories, and endofunctor algebras and coalgebras. Careful attention is paid throughout to exploit the freedom of the graphical notation to draw diagrams that aid understanding and subsequent calculations. Each chapter contains plentiful exercises of varying levels of difficulty, suitable for self-study or for use by instructors.
In concurrent and distributed systems, processes can complete tasks together by playing their parts in a joint plan. The plan, or protocol, can be written as a choreography: a formal description of overall behaviour that processes should collaborate to implement, like authenticating a user or purchasing an item online. Formality brings clarity, but not only that. Choreographies can contribute to important safety and liveness properties. This book is an ideal introduction to theory of choreographies for students, researchers, and professionals in computer science and applied mathematics. It covers languages for writing choreographies and their semantics, and principles for implementing choreographies correctly. The text treats the study of choreographies as a discipline in its own right, following a systematic approach that starts from simple foundations and proceeds to more advanced features in incremental steps. Each chapter includes examples and exercises aimed at helping with understanding the theory and its relation to practice.
Constructive mathematics – mathematics in which 'there exists' always means 'we can construct' – is enjoying a renaissance. fifty years on from Bishop's groundbreaking account of constructive analysis, constructive mathematics has spread out to touch almost all areas of mathematics and to have profound influence in theoretical computer science. This handbook gives the most complete overview of modern constructive mathematics, with contributions from leading specialists surveying the subject's myriad aspects. Major themes include: constructive algebra and geometry, constructive analysis, constructive topology, constructive logic and foundations of mathematics, and computational aspects of constructive mathematics. A series of introductory chapters provides graduate students and other newcomers to the subject with foundations for the surveys that follow. Edited by four of the most eminent experts in the field, this is an indispensable reference for constructive mathematicians and a fascinating vista of modern constructivism for the increasing number of researchers interested in constructive approaches.
Formal languages and automata have long been fundamental to theoretical computer science, but students often struggle to understand these concepts in the abstract. This book provides a rich source of compelling exercises designed to help students grasp the subject intuitively through practice. The text covers important topics such as finite automata, regular expressions, push-down automata, grammars, and Turing machines via a series of problems of increasing difficultly. Problems are organised by topic, many with multiple follow-ups, and each section begins with a short recap of the basic notions necessary to make progress. Complete solutions are given for all exercises, making the book well suited for self-study as well as for use as a course supplement. Developed over the course of the editors' two decades of experience teaching the acclaimed Automata, Formal Languages, and Computation course at the University of Warsaw, it is an ideal resource for students and instructors alike.
Computer scientists often need to learn new programming languages quickly. The best way to prepare for this is to understand the foundational principles that underlie even the most complicated industrial languages. This text for an undergraduate programming languages course distills great languages and their design principles down to easy-to-learn 'bridge' languages implemented by interpreters whose key parts are explained in the text. The book goes deep into the roots of both functional and object-oriented programming, and it shows how types and modules, including generics/polymorphism, contribute to effective programming. The book is not just about programming languages; it is also about programming. Through concepts, examples, and more than 300 practice exercises that exploit the interpreter, students learn not only what programming-language features are but also how to do things with them. Substantial implementation projects include Milner's type inference, both copying and mark-and-sweep garbage collection, and arithmetic on arbitrary-precision integers.
Software engineering is as much about teamwork as it is about technology. This introductory textbook covers both. For courses featuring a team project, it offers tips and templates for aligning classroom concepts with the needs of the students' projects. Students will learn how software is developed in industry by adopting agile methods, discovering requirements, designing modular systems, selecting effective tests, and using metrics to track progress. The book also covers the 'why' behind the 'how-to', to prepare students for advances in industry practices. The chapters explore ways of eliciting what users really want, how clean architecture divides and conquers the inherent complexity of software systems, how test coverage is essential for detecting the inevitable defects in code, and much more. Ravi Sethi provides real-life case studies and examples to demonstrate practical applications of the concepts. Online resources include sample project materials for students, and lecture slides for instructors.
This book proves some important new theorems in the theory of canonical inner models for large cardinal hypotheses, a topic of central importance in modern set theory. In particular, the author 'completes' the theory of Fine Structure and Iteration Trees (FSIT) by proving a comparison theorem for mouse pairs parallel to the FSIT comparison theorem for pure extender mice, and then using the underlying comparison process to develop a fine structure theory for strategy mice. Great effort has been taken to make the book accessible to non-experts so that it may also serve as an introduction to the higher reaches of inner model theory. It contains a good deal of background material, some of it unpublished folklore, and includes many references to the literature to guide further reading. An introductory essay serves to place the new results in their broader context. This is a landmark work in inner model theory that should be in every set theorist's library.
This fast-moving tutorial introduces you to OCaml, an industrial-strength programming language designed for expressiveness, safety, and speed. Through the book's many examples, you'll quickly learn how OCaml stands out as a tool for writing fast, succinct, and readable systems code using functional programming. Real World OCaml takes you through the concepts of the language at a brisk pace, and then helps you explore the tools and techniques that make OCaml an effective and practical tool. You'll also delve deep into the details of the compiler toolchain and OCaml's simple and efficient runtime system. This second edition brings the book up to date with almost a decade of improvements in the OCaml language and ecosystem, with new chapters covering testing, GADTs, and platform tooling. This title is also available as open access on Cambridge Core, thanks to the support of Tarides. Their generous contribution will bring more people to OCaml.
This new book on mathematical logic by Jeremy Avigad gives a thorough introduction to the fundamental results and methods of the subject from the syntactic point of view, emphasizing logic as the study of formal languages and systems and their proper use. Topics include proof theory, model theory, the theory of computability, and axiomatic foundations, with special emphasis given to aspects of mathematical logic that are fundamental to computer science, including deductive systems, constructive logic, the simply typed lambda calculus, and type-theoretic foundations. Clear and engaging, with plentiful examples and exercises, it is an excellent introduction to the subject for graduate students and advanced undergraduates who are interested in logic in mathematics, computer science, and philosophy, and an invaluable reference for any practicing logician's bookshelf.
Using a unique pedagogical approach, this text introduces mathematical logic by guiding students in implementing the underlying logical concepts and mathematical proofs via Python programming. This approach, tailored to the unique intuitions and strengths of the ever-growing population of programming-savvy students, brings mathematical logic into the comfort zone of these students and provides clarity that can only be achieved by a deep hands-on understanding and the satisfaction of having created working code. While the approach is unique, the text follows the same set of topics typically covered in a one-semester undergraduate course, including propositional logic and first-order predicate logic, culminating in a proof of Gödel's completeness theorem. A sneak peek to Gödel's incompleteness theorem is also provided. The textbook is accompanied by an extensive collection of programming tasks, code skeletons, and unit tests. Familiarity with proofs and basic proficiency in Python is assumed.
This is the first of two volumes by Professor Cherlin presenting the state of the art in the classification of homogeneous structures in binary languages and related problems in the intersection of model theory and combinatorics. Researchers and graduate students in the area will find in these volumes many far-reaching results and interesting new research directions to pursue. In this volume, Cherlin develops a complete classification of homogeneous ordered graphs and provides a full proof. He then proposes a new family of metrically homogeneous graphs, a weakening of the usual homogeneity condition. A general classification conjecture is presented, together with general structure theory and applications to a general classification conjecture for such graphs. It also includes introductory chapters giving an overview of the results and methods of both volumes, and an appendix surveying recent developments in the area. An extensive accompanying bibliography of related literature, organized by topic, is available online.
This is the second of two volumes by Professor Cherlin presenting the state of the art in the classification of homogeneous structures in binary languages and related problems in the intersection of model theory and combinatorics. Researchers and graduate students in the area will find in these volumes many far-reaching results and interesting new research directions to pursue. This volume continues the analysis of the first volume to 3-multi-graphs and 3-multi-tournaments, expansions of graphs and tournaments by the addition of a further binary relation. The opening chapter provides an overview of the volume, outlining the relevant results and conjectures. The author applies and extends the results of Volume I to obtain a detailed catalogue of such structures and a second classification conjecture. The book ends with an appendix exploring recent advances and open problems in the theory of homogeneous structures and related subjects.