ebook img

Logic in computer science: modelling and reasoning about systems PDF

407 Pages·1999·65.359 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Logic in computer science: modelling and reasoning about systems

Recent years have seen the development of powerfult ools for verifying hardware and software systems, and an increase ini nterest Multiple choice questions and answers int hat technology from major companies Answers to selected exercises such as Intel, Siemens, BT, AT&T and IBM. (marked with *) (instructors only) Students need a basic formal training that Figures and source code downloadable for transparencies allows them to gain sufficient proficiency in www.cs.bham.ac.uklresearchllicsl using logic-based verification methods. This book addresses these needs by providing a sound basis in logic and an introduction to the logical frameworks used in modelling, specifying and verifying computer systems. It provides a simple and clear presentation, covering propositional and predicate logic and some specialised logics used for reasoning about the correctness of computer systems. The authors introduce a carefully chosen core of essential termino1ogy:further technicalities are introduced only where they are required by the applications. Numerous examples are given, as well as a full exposition of a powerfult echnique for modelling and verifying computer systems, known as svmbolic model checkina. CAMBRIDGE ! UNIVERSITY PRESS i C) ISBN 0-521-65602-8 ?? Cover illustrations reproduced with permission of Andre Balogh. Logic in Computer Science: Modelling and Reasoning about Systems Logic in Computer Science: Modelling and Reasoning about Systems MICHAEL HUTH Kansas State Unioersity MARK RYAN University of Birmingham CAMBRIDGE UNIVERSITY PRESS PUBLISHED BY THE PRESS SYNDICATE OF THE UNIVERSITY OF CAMBRIDGE The Pitt Building, Trumpington Street, Cambridge, United Kingdom CAMBRIDGE UNIVERSITY PRESS The Edinburgh Building, Cambridge, CB2 2KU, UK 40 West 20th Street, New York, NY 100114211, USA 477 Williamstown Road, Port Melbourne, VIC 3207, Australia Ruiz de Alarcbn 13, 28014 Madrid, Spain Dock House, The Waterfront, Cape Town 8001, South Africa @ M. Huth and M. Ryan 2000 This book is in copyright. Subject to statutory exception and to the provisions of relevant collective licensing agreements, no reproduction of any part may take place without the written permission of Cambridge University Press. First published 2000 Reprinted 2001 (with corrections), 2002 (twice, first with corrections) Printed in the United Kingdom at the University Press, Cambridge Typeface Times 11/13pt. Sj~stem~ T E X ~[UEP H] A catalogue record ,for this book is available ,from the British Library Library of Congress Cataloguing in Publication data Huth, Michael, 1962- Logic in computer science : modelling and reasoning about systems / Michael Huth, Mark Ryan p. cm. Includes bibliographical references (p. ) ISBN 0 521 65200 6. - ISBN 0 521 65602 8 (pbk.) 1. Computer logic. I. Ryan, Mark, 1962- . 11. Title. QA76.9.L63H88 1999 99-15233 CIP ISBN 0 521 65200 6 hardback ISBN 0 521 65602 8 paperback Contents Foreword page ix Preface Acknowledgments xviii 1 Propositional logic 1.1 Declarative sentences 1.2 Natural deduction 1.2.1 Rules for natural deduction 1.2.2 Derived rules 1.2.3 Natural deduction in summary 1.2.4 Provable equivalence 1.2.5 An aside: proof by contradiction 1.3 Propositional logic as a formal language 1.4 Semantics of propositional logic 1.4.1 The meaning of logical connectives 1.4.2 Mathematical induction 1.4.3 Soundness of propositional logic 1.4.4 Completeness of propositional logic 1.5 Normal forms 1.5.1 Semantic equivalence, satisfiability and validity 1.5.2 Conjunctive normal forms and validity 1.5.3 Horn clauses and satisfiability 1.6 Bibliographic notes 2 Predicate logic 2.1 The need for a richer language 2.2 Predicate logic as a formal language 2.2.1 Terms vi Contents 2.2.2 Formulas 2.2.3 Free and bound variables 2.2.4 Substitution 2.3 Proof theory of predicate logic 2.3.1 Natural deduction rules 2.3.2 Quantifier equivalences 2.4 Semantics of predicate logic 2.4.1 Models 2.4.2 Semantic entailment 2.4.3 The semantics of equality 2.5 Undecidability of predicate logic 2.6 Bibliographic notes 3 Verification by model checking 3.1 Motivation for verification 3.2 The syntax of computation tree logic 3.3 Semantics of computation tree logic 3.3.1 Practical patterns of specifications 3.3.2 Important equivalences between CTL formulas 3.4 Example : mutual exclusion 3.4.1 The first modelling attempt 3.4.2 The second modelling attempt 3.5 A model-checking algorithm 3.5.1 The labelling algorithm 3.5.2 The pseudo-code of the model checking algorithm 3.5.3 The 'state explosion' problem 3.6 The SMV system 3.6.1 Modules in SMV 3.6.2 Synchronous and asynchronous composition 3.6.3 Mutual exclusion revisited 3.6.4 The alternating bit protocol 3.7 Model checking with fairness 3.8 Alternatives and extensions of CTL 3.8.1 Linear-time temporal logic 3.8.2 CTL* 3.8.3 The expressive power of CTL 3.9 The fixed-point characterisation of CTL 3.9.1 Monotone functions 3.9.2 The correctness of SATE^ 3.9.3 The correctness of SATEU Contents vii 214 3.10 Bibliographic notes 4 Program verification 4.1 Why should we specify and verify code? 4.2 A framework for software verification 4.2.1 A core programming language 4.2.2 Hoare triples 4.2.3 Partial and total correctness 4.2.4 Program variables and logical variables 4.3 Proof calculus for partial correctness 4.3.1 Proof rules 4.3.2 Proof tableaux 4.3.3 A case study: minimal-sum section 4.4 Proof calculus for total correctness 4.5 Bibliographic notes 5 Modal logics and agents 5.1 Modes of truth 5.2 Basic modal logic 5.2.1 Syntax 5.2.2 Semantics 5.3 Logic engineering 5.3.1 The stock of valid formulas 5.3.2 Important properties of the accessibility relation 5.3.3 Correspondence theory 5.3.4 Some modal logics 5.3.5 Semantic entailment 5.4 Natural deduction 5.5 Reasoning about knowledge in a multi-agent system 5.5.1 Some examples 5.5.2 The modal logic KT45" 5.5.3 Natural deduction for KT45" 5.5.4 Formalising the examples 5.6 Bibliographic notes 6 Binary decision diagrams 6.1 Representing boolean functions 6.1.1 Propositional formulas and truth tables 6.1.2 Binary decision diagrams 6.1.3 Ordered BDDs ... vm Contents 6.2 Algorithms for reduced OBDDs 6.2.1 The algorithm reduce 6.2.2 The algorithm apply 6.2.3 The algorithm restrict 6.2.4 The algorithm exists 6.2.5 Assessment of OBDDs 6.3 Symbolic model checking 6.3.1 Representing subsets of the set of states 6.3.2 Representing the transition relation 6.3.3 Implementing the functions preg and prw 6.3.4 Synthesising OBDDs 6.4 A relational mu-calculus 6.4.1 Syntax and semantics 6.4.2 Coding CTL models and specifications 6.5 Bibliographic notes Bibliography Index

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.