This textbook provides undergraduate students with an introduction to the basic theoretical models of computability. Students who have already some experience with elementary discrete mathematics ...will find this a well-paced first course. Plenty of exercises are provided, ranging from the easy to the challenging.
There are many kinds of books on formal logic. Some have philosophers as their intended audience, some mathematicians, some computer scien tists. Although there is a common core to all such books, ...they will be very different in emphasis, methods, and even appearance. This book is intended for computer scientists. But even this is not precise. Within computer science formal logic turns up in a number of areas, from pro gram verification to logic programming to artificial intelligence. This book is intended for computer scientists interested in automated theo rem proving in classical logic. To be more precise yet, it is essentially a theoretical treatment, not a how-to book, although how-to issues are not neglected. This does not mean, of course, that the book will be of no interest to philosophers or mathematicians. It does contain a thorough presentation of formal logic and many proof techniques, and as such it contains all the material one would expect to find in a course in formal logic covering completeness but, not incompleteness issues. The first item to be addressed is, What are we talking about and why are we interested in it? We are primarily talking about truth as used in mathematical discourse, and our interest in it is, or should be, self evident. Truth is a semantic concept, so we begin with models and their properties. These are used to define our subject.
Much current research in computer science is concerned with two questions: is a program correct? And how can we improve a correct program preserving correctness? This latter question is known as the ...refinement of programs and the purpose of this book is to consider these questions in a formal setting. In fact, correctness turns out to be a special case of refinement and so the focus is on refinement. Although a reasonable background knowledge is assumed from mathematics and CS, the book is a self-contained introduction suitable for graduate students and researchers coming to this subject for the first time. There are numerous exercises provided of varying degrees of challenge.
Paxos, Viewstamped Replication, and Zab are replication protocols that ensure
high-availability in asynchronous environments with crash failures. Various
claims have been made about similarities and ...differences between these
protocols. But how does one determine whether two protocols are the same, and
if not, how significant the differences are?
We propose to address these questions using refinement mappings, where
protocols are expressed as succinct specifications that are progressively
refined to executable implementations. Doing so enables a principled
understanding of the correctness of the different design decisions that went
into implementing the various protocols. Additionally, it allowed us to
identify key differences that have a significant impact on performance.