Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
Skip header Section
Program Logics for Certified CompilersApril 2014
Publisher:
  • Cambridge University Press
  • 40 W. 20 St. New York, NY
  • United States
ISBN:978-1-107-04801-0
Published:21 April 2014
Pages:
367
Skip Bibliometrics Section
Reflects downloads up to 21 Sep 2024Bibliometrics
Skip Abstract Section
Abstract

Separation Logic is the twenty-first-century variant of Hoare Logic that permits verification of pointer-manipulating programs. This book covers practical and theoretical aspects of Separation Logic at a level accessible to beginning graduate students interested in software verification. On the practical side it offers an introduction to verification in Hoare and Separation logics, simple case studies for toy languages, and the Verifiable C program logic for the C programming language. On the theoretical side it presents separation algebras as models of separation logics; step-indexed models of higher-order logical features for higher-order programs; indirection theory for constructing step-indexed separation algebras; tree-shares as models for shared ownership; and the semantic construction (and soundness proof) of Verifiable C. In addition, the book covers several aspects of the CompCert verified C compiler, and its connection to foundationally verified software analysis tools. All constructions and proofs are made rigorous and accessible in the Coq developments of the open-source Verified Software Toolchain.

Cited By

  1. ACM
    Song Y and Lee D (2024). Refinement Composition Logic, Proceedings of the ACM on Programming Languages, 8:ICFP, (573-601), Online publication date: 15-Aug-2024.
  2. ACM
    Erbsen A, Philipoom J, Jamner D, Lin A, Gruetter S, Pit-Claudel C and Chlipala A (2024). Foundational Integration Verification of a Cryptographic Server, Proceedings of the ACM on Programming Languages, 8:PLDI, (1704-1729), Online publication date: 20-Jun-2024.
  3. ACM
    Spies S, Gäher L, Sammler M and Dreyer D (2024). Quiver: Guided Abductive Inference of Separation Logic Specifications in Coq, Proceedings of the ACM on Programming Languages, 8:PLDI, (889-913), Online publication date: 20-Jun-2024.
  4. ACM
    Lesbre D and Lemerre M (2024). Compiling with Abstract Interpretation, Proceedings of the ACM on Programming Languages, 8:PLDI, (368-393), Online publication date: 20-Jun-2024.
  5. ACM
    Nguyen D, Beringer L, Mansky W and Wang S Compositional Verification of Concurrent C Programs with Search Structure Templates Proceedings of the 13th ACM SIGPLAN International Conference on Certified Programs and Proofs, (60-74)
  6. ACM
    Pohjola J, Syeda H, Tanaka M, Winter K, Sau T, Nott B, Ung T, McLaughlin C, Seassau R, Myreen M, Norrish M and Heiser G Pancake Proceedings of the 12th Workshop on Programming Languages and Operating Systems, (1-9)
  7. ACM
    Kanabar H, Vivien S, Abrahamsson O, Myreen M, Norrish M, Pohjola J and Zanetti R (2023). PureCake: A Verified Compiler for a Lazy Functional Language, Proceedings of the ACM on Programming Languages, 7:PLDI, (952-976), Online publication date: 6-Jun-2023.
  8. ACM
    Song Y, Cho M, Lee D, Hur C, Sammler M and Dreyer D (2023). Conditional Contextual Refinement, Proceedings of the ACM on Programming Languages, 7:POPL, (1121-1151), Online publication date: 9-Jan-2023.
  9. ACM
    Zandberg K, Baccelli E, Yuan S, Besson F and Talpin J Femto-containers Proceedings of the 23rd ACM/IFIP International Middleware Conference, (161-173)
  10. ACM
    Pagel J and Zuleger F (2022). Strong-separation Logic, ACM Transactions on Programming Languages and Systems, 44:3, (1-40), Online publication date: 30-Sep-2022.
  11. ACM
    Li Y and Weirich S (2022). Program adverbs and Tlön embeddings, Proceedings of the ACM on Programming Languages, 6:ICFP, (312-342), Online publication date: 29-Aug-2022.
  12. ACM
    Doenges R, Kappé T, Sarracino J, Foster N and Morrisett G Leapfrog: certified equivalence for protocol parsers Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation, (950-965)
  13. ACM
    Appel A Coq’s vibrant ecosystem for verification engineering (invited talk) Proceedings of the 11th ACM SIGPLAN International Conference on Certified Programs and Proofs, (2-11)
  14. ACM
    He P, Westbrook E, Carmer B, Phifer C, Robert V, Smeltzer K, Ştefănescu A, Tomb A, Wick A, Yacavone M and Zdancewic S (2021). A type system for extracting functional specifications from memory-safe imperative programs, Proceedings of the ACM on Programming Languages, 5:OOPSLA, (1-29), Online publication date: 20-Oct-2021.
  15. ACM
    Erbsen A, Gruetter S, Choi J, Wood C and Chlipala A Integration verification across software and hardware for a simple embedded system Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation, (604-619)
  16. ACM
    Sammler M, Lepigre R, Krebbers R, Memarian K, Dreyer D and Garg D RefinedC: automating the foundational verification of C code with refined ownership types Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation, (158-174)
  17. ACM
    Spies S, Gäher L, Gratzer D, Tassarotti J, Krebbers R, Dreyer D and Birkedal L Transfinite Iris: resolving an existential dilemma of step-indexed separation logic Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation, (80-95)
  18. ACM
    Timany A and Birkedal L Reasoning about monotonicity in separation logic Proceedings of the 10th ACM SIGPLAN International Conference on Certified Programs and Proofs, (91-104)
  19. Barthe G, Betarte G, Campo J, Luna C and Pichardie D (2020). System-Level Non-interference of Constant-Time Cryptography. Part II: Verified Static Analysis and Stealth Memory, Journal of Automated Reasoning, 64:8, (1685-1729), Online publication date: 1-Dec-2020.
  20. Brotherston J, Costa D, Hobor A and Wickerson J Reasoning over Permissions Regions in Concurrent Separation Logic Computer Aided Verification, (203-224)
  21. ACM
    Evans A, Campbell B and Soffa M Is rust used safely by software developers? Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering, (246-257)
  22. ACM
    Xia L, Zakowski Y, He P, Hur C, Malecha G, Pierce B and Zdancewic S (2019). Interaction trees: representing recursive and impure programs in Coq, Proceedings of the ACM on Programming Languages, 4:POPL, (1-32), Online publication date: 1-Jan-2020.
  23. ACM
    Song Y, Cho M, Kim D, Kim Y, Kang J and Hur C (2019). CompCertM: CompCert with C-assembly linking and lightweight modular verification, Proceedings of the ACM on Programming Languages, 4:POPL, (1-31), Online publication date: 1-Jan-2020.
  24. ACM
    Barthe G, Blazy S, Grégoire B, Hutin R, Laporte V, Pichardie D and Trieu A (2019). Formal verification of a constant-time preserving C compiler, Proceedings of the ACM on Programming Languages, 4:POPL, (1-30), Online publication date: 1-Jan-2020.
  25. ACM
    Wang S, Cao Q, Mohan A and Hobor A (2019). Certifying graph-manipulating C programs via localizations within data structures, Proceedings of the ACM on Programming Languages, 3:OOPSLA, (1-30), Online publication date: 10-Oct-2019.
  26. Beringer L and Appel A Abstraction and Subsumption in Modular Verification of C Programs Formal Methods – The Next 30 Years, (573-590)
  27. ACM
    Blanchard A, Kosmatov N and Loulergue F Logic against ghosts Proceedings of the 34th ACM/SIGAPP Symposium on Applied Computing, (2186-2195)
  28. Besson F, Blazy S and Wilke P (2019). A Verified CompCert Front-End for a Memory Model Supporting Pointer Arithmetic and Uninitialised Data, Journal of Automated Reasoning, 62:4, (433-480), Online publication date: 1-Apr-2019.
  29. ACM
    O'Hearn P (2019). Separation logic, Communications of the ACM, 62:2, (86-95), Online publication date: 28-Jan-2019.
  30. ACM
    Koh N, Li Y, Li Y, Xia L, Beringer L, Honoré W, Mansky W, Pierce B and Zdancewic S From C to interaction trees: specifying, verifying, and testing a networked server Proceedings of the 8th ACM SIGPLAN International Conference on Certified Programs and Proofs, (234-248)
  31. ACM
    Polikarpova N and Sergey I (2019). Structuring the synthesis of heap-manipulating programs, Proceedings of the ACM on Programming Languages, 3:POPL, (1-30), Online publication date: 2-Jan-2019.
  32. ACM
    Tassarotti J and Harper R (2019). A separation logic for concurrent randomized programs, Proceedings of the ACM on Programming Languages, 3:POPL, (1-30), Online publication date: 2-Jan-2019.
  33. Cao Q, Beringer L, Gruetter S, Dodds J and Appel A (2018). VST-Floyd, Journal of Automated Reasoning, 61:1-4, (367-422), Online publication date: 1-Jun-2018.
  34. ACM
    Almeida J, Barbosa M, Barthe G, Blot A, Grégoire B, Laporte V, Oliveira T, Pacheco H, Schmidt B and Strub P Jasmin Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security, (1807-1823)
  35. ACM
    Bourke T, Brun L, Dagand P, Leroy X, Pouzet M and Rieg L (2017). A formally verified compiler for Lustre, ACM SIGPLAN Notices, 52:6, (586-601), Online publication date: 14-Sep-2017.
  36. ACM
    Bourke T, Brun L, Dagand P, Leroy X, Pouzet M and Rieg L A formally verified compiler for Lustre Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation, (586-601)
  37. ACM
    Krebbers R, Timany A and Birkedal L (2017). Interactive proofs in higher-order concurrent separation logic, ACM SIGPLAN Notices, 52:1, (205-217), Online publication date: 11-May-2017.
  38. ACM
    Krebbers R, Timany A and Birkedal L Interactive proofs in higher-order concurrent separation logic Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages, (205-217)
  39. ACM
    Jung R, Krebbers R, Birkedal L and Dreyer D (2016). Higher-order ghost state, ACM SIGPLAN Notices, 51:9, (256-269), Online publication date: 5-Dec-2016.
  40. ACM
    Jung R, Krebbers R, Birkedal L and Dreyer D Higher-order ghost state Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming, (256-269)
  41. ACM
    Kang J, Kim Y, Hur C, Dreyer D and Vafeiadis V (2016). Lightweight verification of separate compilation, ACM SIGPLAN Notices, 51:1, (178-190), Online publication date: 8-Apr-2016.
  42. Svendsen K, Sieczkowski F and Birkedal L Transfinite Step-Indexing Proceedings of the 25th European Symposium on Programming Languages and Systems - Volume 9632, (727-751)
  43. Malecha G and Bengtson J Extensible and Efficient Automation Through Reflective Tactics Proceedings of the 25th European Symposium on Programming Languages and Systems - Volume 9632, (532-559)
  44. ACM
    Woos D, Wilcox J, Anton S, Tatlock Z, Ernst M and Anderson T Planning for change in a formal verification of the raft consensus protocol Proceedings of the 5th ACM SIGPLAN Conference on Certified Programs and Proofs, (154-165)
  45. ACM
    Ramananandro T, Mountcastle P, Meister B and Lethin R A unified Coq framework for verifying C programs with floating-point computations Proceedings of the 5th ACM SIGPLAN Conference on Certified Programs and Proofs, (15-26)
  46. ACM
    Kang J, Kim Y, Hur C, Dreyer D and Vafeiadis V Lightweight verification of separate compilation Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, (178-190)
  47. Beringer L, Petcher A, Ye K and Appel A Verified correctness and security of OpenSSL HMAC Proceedings of the 24th USENIX Conference on Security Symposium, (207-221)
  48. ACM
    Sergey I, Nanevski A and Banerjee A (2015). Mechanized verification of fine-grained concurrent programs, ACM SIGPLAN Notices, 50:6, (77-87), Online publication date: 7-Aug-2015.
  49. ACM
    Sergey I, Nanevski A and Banerjee A Mechanized verification of fine-grained concurrent programs Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation, (77-87)
  50. ACM
    Stewart G, Beringer L, Cuellar S and Appel A (2015). Compositional CompCert, ACM SIGPLAN Notices, 50:1, (275-287), Online publication date: 11-May-2015.
  51. ACM
    Krishnaswami N, Pradic P and Benton N (2015). Integrating Linear and Dependent Types, ACM SIGPLAN Notices, 50:1, (17-30), Online publication date: 11-May-2015.
  52. ACM
    Jourdan J, Laporte V, Blazy S, Leroy X and Pichardie D (2015). A Formally-Verified C Static Analyzer, ACM SIGPLAN Notices, 50:1, (247-259), Online publication date: 11-May-2015.
  53. ACM
    Appel A (2015). Verification of a Cryptographic Primitive, ACM Transactions on Programming Languages and Systems, 37:2, (1-31), Online publication date: 16-Apr-2015.
  54. Djoudi A and Bardin S BINSEC Proceedings of the 21st International Conference on Tools and Algorithms for the Construction and Analysis of Systems - Volume 9035, (212-217)
  55. ACM
    Stewart G, Beringer L, Cuellar S and Appel A Compositional CompCert Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, (275-287)
  56. ACM
    Krishnaswami N, Pradic P and Benton N Integrating Linear and Dependent Types Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, (17-30)
  57. ACM
    Jourdan J, Laporte V, Blazy S, Leroy X and Pichardie D A Formally-Verified C Static Analyzer Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, (247-259)
  58. ACM
    Cao J, Fu M and Feng X Practical Tactics for Verifying C Programs in Coq Proceedings of the 2015 Conference on Certified Programs and Proofs, (97-108)
  59. Beringer L, Stewart G, Dockins R and Appel A Verified Compilation for Shared-Memory C Proceedings of the 23rd European Symposium on Programming Languages and Systems - Volume 8410, (107-127)
  60. Benton N The Proof Assistant as an Integrated Development Environment Proceedings of the 11th Asian Symposium on Programming Languages and Systems - Volume 8301, (307-314)
Contributors
  • Princeton University
  • Amazon.com, Inc.
  • National University of Singapore
  • Princeton University
  • Galois, Inc
  • Ohio University
  • University of Rennes
  • PSL University

Recommendations