Zhe Hou
Griffith University, Brisbane, Australia
ISSN 1868-0941 e-ISSN 1868-095X
Texts in Computer Science
ISBN 978-3-030-87881-8 e-ISBN 978-3-030-87882-5
https://doi.org/10.1007/978-3-030-87882-5
The Editor(s) (if applicable) and The Author(s), under exclusive license to Springer Nature Switzerland AG 2021
This work is subject to copyright. All rights are solely and exclusively licensed by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed.
The use of general descriptive names, registered names, trademarks, service marks, etc. in this publication does not imply, even in the absence of a specific statement, that such names are exempt from the relevant protective laws and regulations and therefore free for general use.
The publisher, the authors and the editors are safe to assume that the advice and information in this book are believed to be true and accurate at the date of publication. Neither the publisher nor the authors or the editors give a warranty, expressed or implied, with respect to the material contained herein or for any errors or omissions that may have been made. The publisher remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
This Springer imprint is published by the registered company Springer Nature Switzerland AG
The registered company address is: Gewerbestrasse 11, 6330 Cham, Switzerland
Preface
It is no coincidence that some universities, such as the University of Pennsylvania and the Australian National University, have a Logic and Computation research group, and many offer courses under the same name. The fields of logic and computation are intrinsically related to each other, although the connection has only been made explicit since 1980.
Despite that there are plenty of excellent courses and material about logic and computation around the world, most of them treat the two topics separately. My personal favourites are John Harrisons Handbook of Practical Logic and Automated Reasoning and Hopcroft, Motwani and Ullmans Introduction to Automata Theory, Languages, and Computation, both of which heavily inspire this book. It is also difficult to find a single course that delivers theories of the two topics with practical exercises in modern tools. This book aims to address the two problems by compressing and unifying important concepts of the two areas and providing exercises in widely-used software applications. We give a transition from logic to computation via linear temporal logic and state machines.
The first half of the course is accompanied by exercises in Isabelle/HOL, which is a popular and user-friendly theorem prover. The second half of the course involves modelling and verification in Process Analysis Toolkit (PAT), a feature-rich model checker based on Hoares Communicating Sequential Processes. This book also provides entry-level tutorials for Isabelle/HOL and PAT. The hybrid skill set of practical theorem proving and model checking should be helpful for the future of readers should they pursue a research career or engineering in formal methods.
This course has 21 hours of lectures and 20 hours of tutorials/labsevery section corresponds to 1 hour of lecture and 1 hour of lab. The final chapter serves as the conclusion of the book and has no exercises. Sections in Part II of this book are noticeably longer than those in Part I, so they may require more hours. In reality, the user can allocate 6 hours of lectures for each of Chaps. ), and many examples of PAT models built into the software, should the user decide to extend the hours of labs. I also recommend devising large group projects on formal verification tasks during the course.
The road map of this book is illustrated below.
This book is written for two sets of audiences. Undergraduate students who are getting a Bachelors degree in computer science should at least pass this course. Higher degree research (HDR) students who excel at this course should have the foundation to pursue a Ph.D. degree in computer science.
Acknowledgements
I would like to thank Rajeev Gor, who guided me with extraordinary patience and gave valuable comments on this book. I also want to thank Paulo de Souza and Jin Song Dong for their incredible support on this textbook project. I want to thank my family most of all because none of the wonderful things would happen without you.
Zhe Hou
Brisbane, Australia
August 2021