{"product_id":"program-proofs-isbn-9780262546232","title":"Program Proofs","description":"\u003cb\u003eThis comprehensive and highly readable textbook teaches how to formally reason about computer programs using an incremental approach and the verification-aware programming language Dafny.\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e\u003ci\u003eProgram Proofs\u003c\/i\u003e shows students what it means to write specifications for programs, what it means for programs to satisfy those specifications, and how to write proofs that connect specifications and programs. Writing with clarity and humor, K. Rustan M. Leino first provides an overview of the basic theory behind reasoning about programs. He then gradually builds up to complex concepts and applications, until students are facing real programs using objects, data structures, and non-trivial recursion. To emphasize the practical nature of program proofs, all material and examples use the verification-aware programming language Dafny, but no previous knowledge of Dafny is assumed.\u003cbr\u003e\u003cbr\u003e\u003cul\u003e\n\u003cli\u003eWritten in a highly readable and student-friendly style\u003c\/li\u003e\n\u003cli\u003eBuilds up to complex concepts in an incremental manner \u003c\/li\u003e\n\u003cli\u003eComprehensively covers how to write proofs and how to specify and verify both functional programs and imperative programs\u003c\/li\u003e\n\u003cli\u003eUses real program text from a real programming language, not psuedo code\u003c\/li\u003e\n\u003cli\u003eFeatures engaging illustrations and hands-on learning exercises \u003c\/li\u003e\n\u003c\/ul\u003ePreface ix\u003cbr\u003eNotes for Teachers xv\u003cbr\u003e0. Introduction 1\u003cbr\u003ePart 0. Learning the Ropes\u003cbr\u003e1. Basics 9\u003cbr\u003e2. Making It Formal 25\u003cbr\u003e3. Recursion and Termination 63\u003cbr\u003e4. Inductive Datatypes 83\u003cbr\u003e5. Lemmas and Proofs 95\u003cbr\u003ePart 1. Functional Programs\u003cbr\u003e6. Lists 137\u003cbr\u003e7. Unary Numbers 161\u003cbr\u003e8. Sorting 175\u003cbr\u003e9. Abstraction 189\u003cbr\u003e10. Data-Structure Invariants 207\u003cbr\u003ePart 2. Imperative Programs\u003cbr\u003e11. Loops 235\u003cbr\u003e12. Recursive Specifications, Iterative Programs 257\u003cbr\u003e13. Arrays and Searching 275\u003cbr\u003e14. Modifying Arrays 321\u003cbr\u003e15. In-situ Sorting 337\u003cbr\u003e16. Objects 351\u003cbr\u003e17. Dynamic Heap Data Structures 387\u003cbr\u003eA. Dafny Syntax Cheat Sheet 427\u003cbr\u003eB. Boolean Algebra 433\u003cbr\u003eC. Answers to Select Exercises 445\u003cbr\u003eReferences 459\u003cbr\u003eIndex 467\u003cb\u003eK. Rustan M. Leino\u003c\/b\u003e is a Senior Principal Applied Scientist in the Automated Reasoning Group at Amazon Web Services, an ACM Fellow, an IFIP Fellow, and a recipient of the CAV Award.","brand":"The MIT Press","offers":[{"title":"Default Title","offer_id":46299920400613,"sku":"NP9780262546232","price":70.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1842\/7735\/files\/9780262546232.jpg?v=1767735156","url":"https:\/\/k12savings.com\/products\/program-proofs-isbn-9780262546232","provider":"K12savings","version":"1.0","type":"link"}