000 04000nam a2200481 i 4500
001 9781450399746
003 ACM
005 20260609133907.0
008 230111s2023 nyu 001 0deng d
020 _a3568325
020 _a9781450399746
_qebook
020 _a9781450399722
_qepub
020 _z9781450399739
_qhardcover
020 _z9781450399715
_qpaperback
024 7 _a10.1145/3568325
_2doi
100 0 _aMisra, Jayadev
_eauthor.
245 1 0 _aEffective Theories in Programming Practice/
_cJayadev Misra.
250 _aFirst Edition
264 1 _a[New York, NY, USA] :
_bAssociation for Computing Machinery;
_c[2022].
300 _a1 PDF (xx, 542pages)
_bLuaTEX
490 1 _aACM books,
_x2374-6777 ;
_v#47
505 8 _aPreface
505 8 _a1 Introduction -- 1.1 Motivation for This Book -- 1.2 Lessons from Programming Theory -- 1.3 Formalism: The Good, the Bad and the Ugly
505 8 _a2 Set Theory, Logic and Proofs -- 2.1 Set -- 2.2 Function -- 2.3 Relation -- 2.4 Order Relations: Totaland Partial -- 2.5 Propositional Logic -- 2.6 Predicate Calculus -- 2.7 Formal Proofs -- 2.8 Examples of Proof Construction -- 2.9 Exercises
505 8 _a3 Induction and Recursion -- 3.1 Introduction -- 3.2 Examples of Proof by Induction -- 3.3 Methodologies for Applying Induction -- 3.4 Advanced Examples -- 3.5 Noetherian or Well-founded Induction -- 3.6 Structural Induction -- 3.7 Exercises
505 8 _a4 Reasoning About Programs -- 4.1 Overview -- 4.2 Fundamental Ideas -- 4.3 Formal Treatment of Partial Correctness -- 4.4 A Modest Programming Language -- 4.5 Proof Rules -- 4.6 More on Invariant -- 4.7 Formal Treatment of Termination -- 4.8 Reasoning about Performance of Algorithms -- 4.9 Order of Functions -- 4.10 Recurrence Relations -- 4.11 Proving Programs in Practice -- 4.12 Exercises -- 4.A Appendix: Proof of Theorem -- 4.B Appendix: Termination in Chameleons Problem
505 8 _a5 Program Development -- 5.1 Binary Search -- 5.2 Saddleback Search -- 5.3 Dijkstra's Proof of the am-gm Inequality -- 5.4 Quicksort -- 5.5 Heapsort -- 5.6 Knuth-Morris-Pratt String-matching Algorithm -- 5.7 A Sieve Algorithm for Prime Numbers -- 5.8 Stable Matching -- 5.9 Heavy-hitters: A Streaming Algorithm -- 5.10 Exercises
505 8 _a6 Graph Algorithms -- 6.1 Introduction -- 6.2 Background -- 6.3 Specific Graph Structures -- 6.4 Combinatorial Applications of Graph Theory -- 6.5 Reachability in Graphs -- 6.6 Graph Traversal Algorithms -- 6.7 Connected Components of Graphs -- 6.8 Transitive Closure -- 6.9 Single Source Shortest Path -- 6.10 Minimum Spanning Tree -- 6.11 Maximum Flow -- 6.12 Goldberg-Tarjan Algorithm for Maximum Flow -- 6.13 Exercises -- 6.A Appendix: Proof of the Reachability Program -- 6.B Appendix: Depth-first Traversal
505 8 _a7 Recursive and Dynamic Programming -- 7.1 What is Recursive Programming -- 7.2 Programming Notation -- 7.3 Reasoning About Recursive Programs -- 7.4 Recursive Programming Methodology -- 7.5 Recursive Data Types -- 7.6 Dynamic Programming -- 7.7 Exercises -- 7.A Appendices
505 8 _a8 Parallel Recursion -- 8.1 Parallelism and Recursion -- 8.2 Powerlist -- 8.3 Pointwise Function Application -- 8.4 Proofs -- 8.5 Advanced Examples Using Powerlists -- 8.6 Multi-dimensional Powerlist -- 8.7 Other Work on Powerlist -- 8.8 Exercises -- 8.A Appendices
505 8 _aBibliography
505 8 _aAuthors' Biographies
505 8 _aIndex
506 _aAbstract freely available; full-text restricted to subscribers or individual document purchasers.
530 _aAlso available in print.
538 _aMode of access: World Wide Web
538 _aSystem requirements: Adobe Acrobat Reader
650 0 _aEffective Theories in Programming Practice(Computer Science)
655 0 _aElectronic books.
776 0 8 _iPrint version:
_z9781450399739
_z9781450399715
830 0 _aACM books - Collection 2 ;
_v#47.
856 4 0 _3Abstract with links to full text
_uhttps://doi.org/10.1145/3568325
999 _c942
_d942