Causal Reasoning About Distributed Programs
Total Page:16
File Type:pdf, Size:1020Kb
W&M ScholarWorks Dissertations, Theses, and Masters Projects Theses, Dissertations, & Master Projects 1991 Causal reasoning about distributed programs William Samuel Lloyd College of William & Mary - Arts & Sciences Follow this and additional works at: https://scholarworks.wm.edu/etd Part of the Computer Sciences Commons Recommended Citation Lloyd, William Samuel, "Causal reasoning about distributed programs" (1991). Dissertations, Theses, and Masters Projects. Paper 1539623806. https://dx.doi.org/doi:10.21220/s2-mzq4-e171 This Dissertation is brought to you for free and open access by the Theses, Dissertations, & Master Projects at W&M ScholarWorks. It has been accepted for inclusion in Dissertations, Theses, and Masters Projects by an authorized administrator of W&M ScholarWorks. For more information, please contact [email protected]. INFORMATION TO USERS This manuscript has been reproduced from the microfilm master. UMI films the text directly from the original or copy submitted. Thus, some thesis and dissertation copies are in typewriter face, while others may be from any type of computer printer. The quality of this reproduction is dependent upon the quality of the copy submitted. Broken or indistinct print, colored or poor quality illustrations and photographs, print bleedthrough, substandard margins, and improper alignment can adversely affect reproduction. In the unlikely event that the author did not send UMI a complete manuscript and there are missing pages, these will be noted. Also, if unauthorized copyright material had to be removed, a note will indicate the deletion. Oversize materials (e.g., maps, drawings, charts) are reproduced by sectioning the original, beginning at the upper left-hand corner and continuing from left to right in equal sections with small overlaps. Each original is also photographed in one exposure and is included in reduced form at the back of the book. Photographs included in the original manuscript have been reproduced xerographically in this copy. Higher quality 6" x 9" black and white photographic prints are available for any photographs or illustrations appearing in this copy for an additional charge. Contact UMI directly to order. University Microfilms International A Beil & Howell Information Company 300 North Zeeb Road. Ann Arbor, Ml 48106-1346 USA 313/761-4700" 800/521-0600 Order Number 0212340 Causal reasoning about distributed programs Lloyd, William Samuel, Ph.D. The College of William and Mary, 1991 UMI 300 N. Zeeb Rd. Ann Arbor, MI 48106 CAUSAL REASONING ABOUT DISTRIBUTED PROGRAMS A Dissertation Presented to The Faculty of the Department of Computer Science The College of William and Mary in Virginia In Partial Fulfillment Of the Requirements for the Degree of Doctor of Philosophy by William Samuel Lloyd 1991 APPROVAL SHEET This dissertation is submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy Author Approved, July 1991 / ■ Jo4m P. Kearns,r Dissertation Director fukkamala Oldii Dominionuoiiuuiuu University ujuveibiiy Williamlliam L. Bynum ( r Stefan Feyock ^ «fohn H. Drew DEDICATION I dedicate this dissertation to my wife, Vicki. C ontents 1 Introduction 2 1.1 Introduction . ; .................. 2 1.2 Integrating Specification, Testing and Verification ............................................ 6 1.3 Outline of the T hesis........................................ 8 1.4 Background and Related Work ........................ 9 1.4.1 Overview ........................................................................................... 9 1.4.2 Program Specification and Verification ..................................................... 9 1.4.3 Vector Time .......................................... 14 1.4.4 Testing ................................................................................... 15 2 Developing Correct Distributed Programs 19 2.1 Specifying Distributed Software .................................................................... 19 2.1.1 Axiomatic and Constructive Specification ..................................................19 2.1.2 The Transition Axiom M ethod .......................... 21 2.2 Specification Satisfaction .................................... 33 2.2.1 Program Proofs and Program T esting ........................................................33 2.2.2 Testing to Validate Proof Annotations ........................................................35 2.2.3 Reasoning About Global State in Distributed Program s ........................ 38 2.2.4 Tracing Causal Relations ................................................................. 44 2.2.5 Satisfying Transition Axiom Specifications ................................................. 48 iv 3 Proof Systems for CSP 50 3.1 Integrating Proofs Into the Development Methodology ...................................... 50 3.2 Informal Description of CSP ...................................................... 51 3.3 Untraceable Proofs of Distributed Programs ........................................... 54 3.4 An Example, and the Problem It Reveals .............................................57 3.5 A Traceable Proof System ............... 60 3.6 A Causal Proof System for CSP . .........................................................................63 3.7 Two Examples: MUTEX and Minset . ................................................................68 3.7.1 Annotation of M UTEX .................................................................................68 3.7.2 Annotation of Minset ................ 71 3.8 The Value of the Proof System ............................................................................... 74 4 Soundness and Completeness of the CSP System 76 4.1 An Example of a Formal Program Proof ..................................................... 77 4.2 An Operational Semantics for C S P ......................................................................... 77 4.3 Proof of Soundness ........................................................... 82 4.3.1 Consistency of the Axioms and Proof Rules ......... .......... 84 4.3.2 Assertion Functions and Soundness of an Annotation ........................... 93 4.4 Relative Completeness of the Proof System ........................................................102 4.4.1 Functions pre, post, and glue ............................................................ 104 4.4.2 pre, post, and glue as Assertion Functions ......................................I l l 4.4.3 Relative Completeness of the Proof System ............................................ 121 5 Proof Systems for Asynchronous Programming 123 5.1 Introduction .............. 123 5.2 Untraceable Annotations of Datagram Program s ..............................................124 5.2.1 A Model of Datagram Processing ................................ ............................124 5.2.2 An Untraceable Proof System for Datagram Processing ....................... 125 v 5.2.3 Our Objections to This Model and Proof System ....................... 127 5.2.4 A Sample Annotation Using a and p........................................................... 128 5.3 Causal Annotations of Programs Which Use Datagram s ..................................133 5.3.1 Causal Semantics and Proof Rules for Datagrams ................................... 133 5.3.2 A Causal Annotation of PRODCON .............................................135 5.4 Untraceable Annotations of Virtual Circuit Programs . ..................................139 5.4.1 A Model of Virtual Circuit Processing ......................................................139 5.4.2 An Annotation Using a and p....................................................................... 140 5.5 Causal Annotations of Virtual Circuit Program s ...............................................141 5.5.1 Causal Semantics and Proof Rules for Virtual C ircu its..........................141 5.5.2 A Causal Annotation of VCPRODCON ................................... 144 5.6 Soundness and Completeness of These Proof Systems ................................... 144 6 Testing to Validate an Annotation 151 6.1 Introduction ....................................................... 151 6.2 An Example: Validating our Causal Annotation of M inset ..............................152 6.3 Another Example: Finding An Error in M inset .................................................157 6.4 Annotation Validation as a Practical Test Strategy ....................................... 158 7 Conclusions 161 vi ACKNOWLEDGEMENTS I am grateful to Professor Phil Kearns for his intellectual, emotional and financial support. List of Figures 1.1 Time line for a test run of a sequential program. .................................... 3 1.2 Time lines for a test run of a distributed program .............................................. 4 2.1 State transitions and changes in the value of / in the grant/release system. 24 2.2 Lower level specification for the grant/release system .............................................26 2.3 Mapping the lower level state functions to the values of / .....................................28 2.4 Liveness axioms for the lower level specification ..................................... 31 2.5 Equivalences between values of F and state function values ..................................32 2.6 Proof that the lower level specification guarantees (/ = III ) «-»(/ = II) V ( / = 7) ...................................................................................................................32 2.7 Process 7T,- of the toy program MUTEX. ‘ ................................................................