did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9781848827448

Verification of Sequential and Concurrent Programs

by ; ;
  • ISBN13:

    9781848827448

  • ISBN10:

    184882744X

  • Edition: 3rd
  • Format: Hardcover
  • Copyright: 2009-10-01
  • Publisher: Springer-Nature New York Inc
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $119.99

Summary

This widely anticipated third edition provides a systematic exploration of one of the most common approaches to program verification, known as the assertional approach. This approach is applied to deterministic and nondeterministic sequential programs of varying complexity, together with both parallel and distributed concurrent programs. The expanded content also includes coverage of the verification of object-oriented programs. For each class of programs, the authors introduce proof systems for the verification of partial and total correctness, justified formally in corresponding soundness theorems. Case studies supplied throughout the book demonstrate the use of the proof systems and formally verify solutions to classical problems, such as producer/consumer and mutual exclusion. This modern update of a classic, reader-friendly textbook is perfect for an introductory course on program verification for advanced undergraduate or graduate students. Outlines for possible courses are suggested in the Preface.

Table of Contents

Endorsementsp. v
Forewordp. vii
Prefacep. ix
Outlines of One-semester Coursesp. xiv
In the Beginning
Introductionp. 3
An Example of a Concurrent Programp. 4
Solution 1p. 4
Solution 2p. 5
Solution 3p. 6
Solution 4p. 8
Solution 5p. 9
Solution 6p. 10
Program Correctnessp. 11
Structure of this Bookp. 13
Automating Program Verificationp. 16
Assertional Methods in Practicep. 17
Preliminariesp. 19
Mathematical Notationp. 21
Setsp. 21
Tuplesp. 22
Relationsp. 23
Functionsp. 23
Sequencesp. 24
Stringsp. 25
Proofsp. 26
Inductionp. 27
Grammarsp. 29
Typed Expressionsp. 29
Typesp. 29
Variablesp. 30
Constantsp. 30
Expressionsp. 31
Subscripted Variablesp. 32
Semantics of Expressionsp. 32
Fixed Structurep. 33
Statesp. 34
Definition of the Semanticsp. 35
Updates of Statesp. 36
Formal Proof Systemsp. 38
Assertionsp. 39
Semantics of Assertionsp. 41
Substitutionp. 42
Substitution Lemmap. 47
Exercisesp. 50
Bibliographic Remarksp. 51
Deterministic Programs
while Programsp. 55
Syntaxp. 57
Semanticsp. 58
Properties of Semanticsp. 62
Verificationp. 63
Partial Correctnessp. 65
Total Correctnessp. 70
Decompositionp. 73
Soundnessp. 73
Proof Outlinesp. 79
Partial Correctnessp. 79
Total Correctnessp. 83
Completenessp. 85
Parallel Assignmentp. 91
Failure Statementp. 94
Auxiliary Axioms and Rulesp. 97
Case Study: Partitioning an Arrayp. 99
Systematic Development of Correct Programsp. 113
Summation Problemp. 115
Case Study: Minimum-Sum Section Problemp. 116
Exercisesp. 121
Bibliographic Remarksp. 124
Recursive Programsp. 127
Syntaxp. 129
Semanticsp. 129
Properties of the Semanticsp. 131
Verificationp. 132
Partial Correctnessp. 132
Total Correctnessp. 134
Decompositionp. 137
Discussionp. 138
Soundnessp. 139
Case Study: Binary Searchp. 144
Partial Correctnessp. 145
Total Correctnessp. 147
Exercisesp. 149
Bibliographic Remarksp. 150
Recursive Programs with Parametersp. 151
Syntaxp. 152
Semanticsp. 154
Verificationp. 157
Partial Correctness: Non-recursive Proceduresp. 158
Partial Correctness: Recursive Proceduresp. 162
Modularityp. 165
Total Correctnessp. 165
Soundnessp. 167
Case Study: Quicksortp. 172
Formal Problem Specificationp. 173
Properties of Partitionp. 173
Auxiliary Proof: Permutation Propertyp. 174
Auxiliary Proof: Sorting Propertyp. 175
Total Correctnessp. 180
Exercisesp. 182
Bibliographic Remarksp. 182
Object-Oriented Programsp. 185
Syntaxp. 187
Local Expressionsp. 187
Statements and Programsp. 188
Semanticsp. 192
Semantics of Local Expressionsp. 192
Updates of Statesp. 194
Semantics of Statements and Programsp. 195
Assertionsp. 197
Substitutionp. 199
Verificationp. 200
Partial Correctnessp. 201
Total Correctnessp. 204
Adding Parametersp. 206
Semanticsp. 207
Partial Correctnessp. 208
Total Correctnessp. 210
Transformation of Object-Oriented Programsp. 211
Soundnessp. 214
Object Creationp. 217
Semanticsp. 218
Assertionsp. 219
Verificationp. 223
Soundnessp. 225
Case Study: Zero Search in Linked Listp. 226
Partial Correctnessp. 226
Total Correctnessp. 229
Case Study: Insertion into a Linked Listp. 232
Exercisesp. 238
Bibliographic Remarksp. 240
Parallel Programs
Disjoint Parallel Programsp. 245
Syntaxp. 247
Semanticsp. 248
Determinismp. 249
Sequentializationp. 252
Verificationp. 253
Parallel Compositionp. 254
Auxiliary Variablesp. 256
Soundnessp. 259
Case Study: Find Positive Elementp. 261
Exercisesp. 264
Bibliographic Remarksp. 266
Parallel Programs with Shared Variablesp. 267
Access to Shared Variablesp. 269
Syntaxp. 270
Semanticsp. 271
Atomicityp. 272
Verification: Partial Correctnessp. 274
Component Programsp. 274
No Compositionality of Input/Output Behaviorp. 275
Parallel Composition: Interference Freedomp. 276
Auxiliary Variables Neededp. 279
Soundnessp. 282
Verification: Total Correctnessp. 284
Component Programsp. 284
Parallel Composition: Interference Freedomp. 286
Soundnessp. 288
Discussionp. 289
Case Study: Find Positive Element More Quicklyp. 291
Allowing More Points of Interferencep. 294
Case Study: Parallel Zero Searchp. 299
Simplifying the programp. 299
Proving partial correctnessp. 300
Exercisesp. 303
Bibliographic Remarksp. 305
Parallel Programs with Synchronizationp. 307
Syntaxp. 309
Semanticsp. 310
Verificationp. 311
Partial Correctnessp. 311
Weak Total Correctnessp. 313
Total Correctnessp. 314
Soundnessp. 316
Case Study: Producer/Consumer Problemp. 319
Case Study: The Mutual Exclusion Problemp. 324
Problem Formulationp. 324
Verificationp. 326
A Busy Wait Solutionp. 327
A Solution Using Semaphoresp. 331
Allowing More Points of Interferencep. 334
Case Study: Synchronized Zero Searchp. 335
Simplifying the Programp. 336
Decomposing Total Correctnessp. 337
Proving Terminationp. 337
Proving Partial Correctnessp. 342
Exercisesp. 344
Bibliographic Remarksp. 345
Nondeterministic and Distributed Programs
Nondeterministic Programsp. 349
Syntaxp. 351
Semanticsp. 352
Properties of Semanticsp. 353
Why Are Nondeterministic Programs Useful?p. 354
Symmetryp. 355
Nondeterminismp. 355
Failuresp. 356
Modeling Concurrencyp. 356
Verificationp. 357
Partial Correctnessp. 357
Total Correctnessp. 357
Soundnessp. 359
Case Study: The Welfare Crook Problemp. 360
Transformation of Parallel Programsp. 363
Exercisesp. 368
Bibliographic Remarksp. 370
Distributed Programsp. 373
Syntaxp. 375
Sequential Processesp. 375
Distributed Programsp. 376
Semanticsp. 380
Transformation into Nondeterministic Programsp. 382
Semantic Relationship Between S and T(S)p. 382
Proof of the Sequentialization Theoremp. 385
Verificationp. 390
Partial Correctnessp. 390
Weak Total Correctnessp. 391
Total Correctnessp. 391
Proof Systemsp. 392
Soundnessp. 393
Case Study: A Transmission Problemp. 396
Decomposing Total Correctnessp. 397
Proving Partial Correctnessp. 397
Proving Absence of Failures and of Divergencep. 399
Proving Deadlock Freedomp. 400
Exercisesp. 402
Bibliographic Remarksp. 405
Fairnessp. 407
The Concept of Fairnessp. 409
Selections and Runsp. 410
Fair Nondeterminism Semanticsp. 412
Transformational Semanticsp. 413
Well-Founded Structuresp. 413
Random Assignmentp. 414
Semanticsp. 415
Verificationp. 415
Schedulersp. 419
The Scheduler FAIRp. 421
The Scheduler ROROp. 424
The Scheduler QUEUEp. 426
Transformationp. 427
Verificationp. 430
Total Correctnessp. 430
Soundnessp. 438
Case Study: Zero Searchp. 442
Case Study: Asynchronous Fixed Point Computationp. 446
Exercisesp. 452
Bibliographic Remarksp. 455
Semanticsp. 457
Axioms and Proof Rulesp. 459
Proof Systemsp. 471
Proof Outlinesp. 475
Referencesp. 477
Indexp. 491
Author Indexp. 497
Symbol Indexp. 501
Table of Contents provided by Ingram. All Rights Reserved.

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program