Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article
Open access

Calculational Design of [In]Correctness Transformational Program Logics by Abstract Interpretation

Published: 05 January 2024 Publication History

Abstract

We study transformational program logics for correctness and incorrectness that we extend to explicitly handle both termination and nontermination. We show that the logics are abstract interpretations of the right image transformer for a natural relational semantics covering both finite and infinite executions. This understanding of logics as abstractions of a semantics facilitates their comparisons through their respective abstractions of the semantics (rather that the much more difficult comparison through their formal proof systems). More importantly, the formalization provides a calculational method for constructively designing the sound and complete formal proof system by abstraction of the semantics. As an example, we extend Hoare logic to cover all possible behaviors of nondeterministic programs and design a new precondition (in)correctness logic.

Supplementary Material

Auxiliary Archive (popl24main-p43-p-archive.zip)
The full version of the paper, with appendix, including clickable hyper references to the appendix to directly access auxiliary proofs, examples, related work, etc. This material is also freely available on Zenodo https://zenodo.org/records/10439109 with DOI DOI 10.5281/zenodo.10439108

References

[1]
Peter Aczel. 1977. An Introduction to Inductive Definitions. In Handbook of Mathematical Logic, John Barwise (Ed.). North–Holland, Amsterdam. 739–782. isbn:0-444-86388-5
[2]
Krzysztof R. Apt. 1981. Ten Years of Hoare’s Logic: A Survey - Part I. ACM Trans. Program. Lang. Syst., 3, 4 (1981), 431–483. https://doi.org/10.1145/357146.357150
[3]
Krzysztof R. Apt. 1984. Ten Years of Hoare’s Logic: A Survey Part II: Nondeterminism. Theor . Comput . Sci ., 28 (1984), 83–109. https://doi.org/10.1016/0304-3975(83)90066-X
[4]
Krzysztof R. Apt and Ernst-Rüdiger Olderog. 2019. Fifty years of Hoare’s logic. Formal Aspects Comput ., 31, 6 (2019), 751–807. https://doi.org/10.1007/s00165-019-00501-3
[5]
Krzysztof R. Apt and Ernst-Rüdiger Olderog. 2021. Assessing the Success and Impact of Hoare’s Logic. In Theories of Programming. ACM / Morgan & Claypool, 41–76. https://doi.org/10.1145/3477355.3477359
[6]
Krzysztof R. Apt and Gordon D. Plotkin. 1986. Countable Nondeterminism and Random Assignment. J. ACM, 33, 4 (1986), 724–767. https://doi.org/10.1145/6490.6494
[7]
Ali Asadi, Krishnendu Chatterjee, Hongfei Fu, Amir Kafshdar Goharshady, and Mohammad Mahdavi. 2021. Polynomial reachability witnesses via Stellensätze. In PLDI. ACM, 772–787. https://doi.org/10.1145/3453483.3454076
[8]
Flavio Ascari, Roberto Bruni, and Roberta Gori. 2022. Limits and difficulties in the design of under-approximation abstract domains. In FoSSaCS (Lecture Notes in Computer Science, Vol. 13242). Springer, 21–39. https://doi.org/10.1007/978-3-030-99253-8_2
[9]
Flavio Ascari, Roberto Bruni, Roberta Gori, and Francesco Logozzo. 2023. Sufficient Incorrectness Logic: SIL and Separation SIL. CoRR, abs/2310.18156 (2023), https://doi.org/10.48550/arXiv.2310.18156
[10]
Arnon Avron, Furio Honsell, Ian A. Mason, and Robert Pollack. 1992. Using Typed Lambda Calculus to Implement Formal Systems on a Machine. J. Autom. Reason., 9, 3 (1992), 309–354. https://doi.org/10.1007/BF00245294
[11]
Thomas Ball, Orna Kupferman, and Greta Yorsh. 2005. Abstraction for Falsification. In CAV (Lecture Notes in Computer Science, Vol. 3576). Springer, 67–81. https://doi.org/10.1007/11513988_8
[12]
Merrie Bergmann. 1977. Logic and Sortal Incorrectness. The Review of Metaphysics, 31, 1 (1977), September, 61–79. isbn:00346632 https://www.jstor.org/stable/20127017
[13]
François Le Berre and Alexandre Tessier. 1996. Declarative Incorrectness Diagnosis in Constraint Logic Programming. In APPIA-GULP-PRODE. 379–390.
[14]
Andreas Blass and Yuri Gurevich. 2000. The Underlying Logic of Hoare Logic. Bull. EATCS, 70 (2000), 82–111. https://doi.org/10.1142/4566
[15]
Roberto Bruni, Roberto Giacobazzi, Roberta Gori, and Francesco Ranzato. 2023. A Correctness and Incorrectness Program Logic. J. ACM, 70, 2 (2023), 15:1–15:45. https://doi.org/10.1145/3582267
[16]
Richard Bubel, Dilian Gurov, Reiner Hähnle, and Marco Scaletta. 2023. Trace-based Deductive Verification. In LPAR (EPiC Series in Computing, Vol. 94). EasyChair, 73–95. https://doi.org/10.29007/VDFD
[17]
Rod M. Burstall. 1969. Formal description of program structure and semantics in first order logic. In Machine Intelligence 5, Bernard Meltzer and Donald Michie (Eds.). Edinburgh University Press, 79–98. https://doi.org/10.2307/3612456
[18]
Michael R. Clarkson and Fred B. Schneider. 2010. Hyperproperties. J . Comput . Secur ., 18, 6 (2010), 1157–1210. https://doi.org/10.3233/JCS-2009-0393
[19]
Stephen A. Cook. 1978. Soundness and Completeness of an Axiom System for Program Verification. SIAM J. Comput., 7, 1 (1978), 70–90. https://doi.org/10.1137/0207005
[20]
Stephen A. Cook. 1981. Corrigendum: Soundness and Completeness of an Axiom System for Program Verification. SIAM J. Comput., 10, 3 (1981), 612. https://doi.org/10.1137/0210045
[21]
Patrick Cousot. 1981. Semantic Foundations of Program Analysis. In Program Flow Analysis: Theory and Applications, S.S. Muchnick and N.D. Jones (Eds.). Prentice-Hall, Inc., Englewood Cliffs, New Jersey, 303–342. isbn:978-0137296811
[22]
Patrick Cousot. 2002. Constructive Design of a Hierarchy of Semantics of a Transition System by Abstract Interpretation. Theor . Comput . Sci ., 277, 1–2 (2002), 47–103. https://doi.org/10.1016/S0304-3975(00)00313-3
[23]
Patrick Cousot. 2019. Abstract Semantic Dependency. In SAS (Lecture Notes in Computer Science, Vol. 11822). Springer, 389–410. https://doi.org/10.1007/978-3-030-32304-2_19
[24]
Patrick Cousot. 2019. On Fixpoint/Iteration/Variant Induction Principles for Proving Total Correctness of Programs with Denotational Semantics. In LOPSTR (Lecture Notes in Computer Science, Vol. 12042). Springer, 3–18. https://doi.org/10.1007/978-3-030-45260-5_1
[25]
Patrick Cousot. 2021. Principles of Abstract Interpretation (1 ed.). MIT Press. isbn:978-0262044905
[26]
Patrick Cousot. 2024. Full version of “Calculational Design of [In]Correctness Transformational Program Logics by Abstract Interpretation”, Proc. ACM Program. Lang. 8, POPL (2024), 7:1–10:33, https://doi.org/10.1145/3632849. Zenodo, Dec., 66 pages. https://doi.org/10.5281/zenodo.10439108
[27]
Patrick Cousot and Radhia Cousot. 1977. Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In POPL. ACM, 238–252. https://doi.org/10.1145/512950.512973
[28]
Patrick Cousot and Radhia Cousot. 1979. Constructive Versions of Tarski’s Fixed Point Theorems. Pacific J. of Math., 82, 1 (1979), 43–57. https://doi.org/10.2140/pjm.1979.82.43
[29]
Patrick Cousot and Radhia Cousot. 1979. Systematic Design of Program Analysis Frameworks. In POPL. ACM Press, 269–282. https://doi.org/10.1145/567752.567778
[30]
Patrick Cousot and Radhia Cousot. 1982. Induction principles for proving invariance properties of programs. In Tools & Notions for Program Construction: an Advanced Course, D. Néel (Ed.). Cambridge University Press, Cambridge, UK, 75–119.
[31]
Patrick Cousot and Radhia Cousot. 1992. Inductive Definitions, Semantics and Abstract Interpretation. In POPL. ACM Press, 83–94. https://doi.org/10.1145/143165.143184
[32]
Patrick Cousot and Radhia Cousot. 1995. Compositional and Inductive Semantic Definitions in Fixpoint, Equational, Constraint, Closure-condition, Rule-based and Game-Theoretic Form. In CAV (Lecture Notes in Computer Science, Vol. 939). Springer, 293–308. https://doi.org/10.1007/3-540-60045-0_58
[33]
Patrick Cousot and Radhia Cousot. 2009. Bi-inductive structural semantics. Inf. Comput., 207, 2 (2009), 258–283. https://doi.org/10.1016/J.IC.2008.03.025
[34]
Patrick Cousot and Radhia Cousot. 2014. A Galois connection calculus for abstract interpretation. In POPL. ACM, 3–4. https://doi.org/10.1145/2535838.2537850
[35]
Patrick Cousot, Radhia Cousot, Manuel Fähndrich, and Francesco Logozzo. 2013. Automatic Inference of Necessary Preconditions. In VMCAI (Lecture Notes in Computer Science, Vol. 7737). Springer, 128–148. https://doi.org/10.1007/978-3-642-35873-9_10
[36]
Patrick Cousot, Radhia Cousot, and Francesco Logozzo. 2011. Precondition Inference From Intermittent Assertions and Application to Contracts on Collections. In VMCAI (Lecture Notes in Computer Science, Vol. 6538). Springer, 150–168. https://doi.org/10.1007/978-3-642-18275-4_12
[37]
Patrick Cousot, Radhia Cousot, Francesco Logozzo, and Michael Barnett. 2012. An abstract interpretation framework for refactoring with application to extract methods with contracts. In OOPSLA. ACM, 213–232. https://doi.org/10.1145/2384616.2384633
[38]
Patrick Cousot and Nicolas Halbwachs. 1978. Automatic Discovery of Linear Restraints Among Variables of a Program. In POPL. ACM Press, 84–96. https://doi.org/10.1145/512760.512770
[39]
Thibault Dardinier. 2023. Formalization of Hyper Hoare Logic: A Logic to (Dis-)Prove Program Hyperproperties. Arch . Formal Proofs, 2023 (2023), https://www.isa-afp.org/entries/HyperHoareLogic.html
[40]
Edsko de Vries and Vasileios Koutavas. 2011. Reverse Hoare Logic. In SEFM (Lecture Notes in Computer Science, Vol. 7041). Springer, 155–171. https://doi.org/10.1007/978-3-642-24690-6_12
[41]
Klaus Denecke, Marcel Erné, and Shelly L. Wismath. 2003. Galois Connections and Applications. Kluwer Academic Publishers. https://doi.org/10.1007/978-1-4020-1898-5
[42]
Edsger W. Dijkstra. 1975. Guarded Commands, Nondeterminacy and Formal Derivation of Programs. Commun. ACM, 18, 8 (1975), 453–457. https://doi.org/10.1145/360933.360975
[43]
Edsger W. Dijkstra. 1976. A Discipline of Programming. Prentice-Hall. isbn:013215871X
[44]
Edsger W. Dijkstra. 1982. On subgoal induction. In Selected Writings on Computing: A Personal Perspective. Springer-Verlag New York, 223–224. isbn:978-0-387-90652-2
[45]
Edsger W. Dijkstra and Carel S. Scholten. 1990. Predicate Calculus and Program Semantics. Springer. https://doi.org/10.1007/978-1-4612-3228-5
[46]
James E. Donahue. 1976. Complementary Definitions of Programming Language Semantics (Lecture Notes in Computer Science, Vol. 42). Springer. https://doi.org/10.1007/BFB0025364
[47]
Vijay D’Silva and Caterina Urban. 2015. Conflict-Driven Conditional Termination. In CAV (2) (Lecture Notes in Computer Science, Vol. 9207). Springer, 271–286. https://doi.org/10.1007/978-3-319-21668-3_16
[48]
Yuan Feng and Sanjiang Li. 2023. Abstract interpretation, Hoare logic, and incorrectness logic for quantum programs. Inf . Comput ., 294 (2023), 105077. https://doi.org/10.1016/J.IC.2023.105077
[49]
Gérard Ferrand. 1993. The Notions of Symptom and Error in Declarative Diagnosis of Logic Programs. In AADEBUG (Lecture Notes in Computer Science, Vol. 749). Springer, 40–57. https://doi.org/10.1007/BFb0019
[50]
Robert W. Floyd. 1967. Assigning Meaning to Programs. In Proc. Symp. in Applied Math., J.T. Schwartz (Ed.). 19, Amer. Math. Soc., 19–32. https://doi.org/10.1007/978-94-011-1793-7_4
[51]
Alexey Gotsman, Josh Berdine, and Byron Cook. 2011. Precision and the Conjunction Rule in Concurrent Separation Logic. In MFPS (Electronic Notes in Theoretical Computer Science, Vol. 276). Elsevier, 171–190. https://doi.org/10.1016/J.ENTCS.2011.09.021
[52]
George Grätzer. 1998. General Lattice Theory (2nd ed.). Birkhäuser. isbn:978-3-7643-6996-5
[53]
David Harel. 1979. First-Order Dynamic Logic (Lecture Notes in Computer Science, Vol. 68). Springer. https://doi.org/10.1007/3-540-09237-4
[54]
Robert Harper, Furio Honsell, and Gordon D. Plotkin. 1993. A Framework for Defining Logics. J. ACM, 40, 1 (1993), 143–184. https://doi.org/10.1145/138027.138060
[55]
David Hilbert and Wilhelm Ackermann. 1928, 1949, reprinted 1959. Grundzüge der Theoretischen Logik (6 ed.). Springer. isbn:978-3-642-65401-5 Engl. Trans. “Principles of Mathematical Logic,” Lewis M. Hammond, George G. Leckie, F. Steinhardt, AMS Chelsea, 1958, reprinted 2008
[56]
David Hilbert and Wilhelm Ackermann. 1938. Grundzüge der theoretischen Logik. Springer-Verlag Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-41928-1
[57]
Charles Antony Richard Hoare. 1969. An Axiomatic Basis for Computer Programming. Commun. ACM, 12, 10 (1969), 576–580. https://doi.org/10.1145/363235.363259
[58]
C. A. R. Hoare. 1978. Some Properties of Predicate Transformers. J. ACM, 25, 3 (1978), 461–480. https://doi.org/10.1145/322077.322088
[59]
Michael Karr. 1976. Affine Relationships Among Variables of a Program. Acta Inf., 6 (1976), 133–151. https://doi.org/10.1007/BF00268497
[60]
Jinwoo Kim, Loris D’Antoni, and Thomas W. Reps. 2023. Unrealizability Logic. Proc. ACM Program. Lang., 7, POPL (2023), 659–688. https://doi.org/10.1145/3571216
[61]
Donald E. Knuth. 1997. The Art of Computer Programming, Volume I: Fundamental Algorithms, 3rd Edition. Addison-Wesley. isbn:0201896834
[62]
Quang Loc Le, Azalea Raad, Jules Villard, Josh Berdine, Derek Dreyer, and Peter W. O’Hearn. 2022. Finding real bugs in big programs with incorrectness logic. Proc. ACM Program. Lang., 6, OOPSLA1 (2022), 1–27. https://doi.org/10.1145/3527325
[63]
Xavier Leroy. 2006. Coinductive Big-Step Operational Semantics. In ESOP (Lecture Notes in Computer Science, Vol. 3924). Springer, 54–68. https://doi.org/10.1007/11693024
[64]
John W. Lloyd. 1995. Debugging for a Declarative Programming Language. In Machine Intelligence 15. Oxford University Press, 341–359. https://doi.org/10.1093/oso/9780198538677.003.0019
[65]
David C. Luckham and Norihisa Suzuki. 1977. Proof of Termination within a Weak Logic of Programs. Acta Informatica, 8 (1977), 21–36. https://doi.org/10.1007/BF00276182
[66]
Petar Maksimovic, Caroline Cronjäger, Andreas Lööw, Julian Sutherland, and Philippa Gardner. 2023. Exact Separation Logic: Towards Bridging the Gap Between Verification and Bug-Finding. In ECOOP (LIPIcs, Vol. 263). Schloss Dagstuhl - Leibniz-Zentrum für Informatik, 19:1–19:27. https://doi.org/10.4230/LIPIcs.ECOOP.2023.19
[67]
Zohar Manna. 1971. Mathematical Theory of Partial Correctness. J. Comput. Syst. Sci., 5, 3 (1971), 239–253. https://doi.org/10.1016/S0022-0000(71)80035-1
[68]
Zohar Manna and Amir Pnueli. 1974. Axiomatic Approach to Total Correctness of Programs. Acta Inf., 3 (1974), 243–263. https://doi.org/10.1007/BF00288637
[69]
Marco Milanese and Francesco Ranzato. 2022. Local Completeness Logic on Kleene Algebra with Tests. In SAS (Lecture Notes in Computer Science, Vol. 13790). Springer, 350–371. https://doi.org/10.1007/978-3-031-22308-2_16
[70]
Robin Milner and Mads Tofte. 1991. Co-Induction in Relational Semantics. Theor . Comput . Sci ., 87, 1 (1991), 209–220. https://doi.org/10.1016/0304-3975(91)90033-X
[71]
Antoine Miné. 2014. Backward under-approximations in numeric abstract domains to automatically infer sufficient program conditions. Sci. Comput. Program., 93 (2014), 154–182. https://doi.org/10.1016/J.SCICO.2013.09.014
[72]
Bernhard Möller, Peter W. O’Hearn, and Tony Hoare. 2021. On Algebra of Program Correctness and Incorrectness. In RAMiCS (Lecture Notes in Computer Science, Vol. 13027). Springer, 325–343. https://doi.org/10.1007/978-3-030-88701-8_20
[73]
James Donald Monk. 1969. Introduction to Set Theory. McGraw–Hill. isbn:0070427151, 9780070427150 http://euclid.colorado.edu/~monkd/monk11.pdf
[74]
F. Lockwood Morris and Cliff B. Jones. 1984. An Early Program Proof by Alan Turing. IEEE Ann. Hist. Comput., 6, 2 (1984), 139–143. https://doi.org/10.1109/MAHC.1984.10017
[75]
James H. Morris Jr. and Ben Wegbreit. 1977. Subgoal Induction. Commun. ACM, 20, 4 (1977), 209–222. https://doi.org/10.1145/359461.359466
[76]
Toby Murray. 2020. An Under-Approximate Relational Logic. Arch . Formal Proofs, 2020 (2020), https://www.isa-afp.org/entries/Relational-Incorrectness-Logic.html
[77]
Peter Naur. 1966. Proofs of Algorithms by General Snapshots. BIT, 6 (1966), 310–316. https://doi.org/10.1007/BF01966091
[78]
Nico Naus, Freek Verbeek, Marc Schoolderman, and Binoy Ravindran. 2023. Low-Level Reachability Analysis Based on Formal Logic. In TAP (Lecture Notes in Computer Science, Vol. 14066). Springer, 21–39. https://doi.org/10.1007/978-3-031-38828-6_2
[79]
Peter W. O’Hearn. 2020. Incorrectness logic. Proc. ACM Program. Lang., 4, POPL (2020), 10:1–10:32. https://doi.org/10.1145/3371078
[80]
David Michael Ritchie Park. 1969. Fixpoint Induction and Proofs of Program Properties. In Machine Intelligence Volume 5, Donald Mitchie and Bernard Meltzer (Eds.). Edinburgh Univ . Press, 59–78.
[81]
David Michael Ritchie Park. 1979. On the Semantics of Fair Parallelism. In Abstract Software Specifications (Lecture Notes in Computer Science, Vol. 86). Springer, 504–526. https://doi.org/10.1007/3-540-10007-5_47
[82]
Thomas Piecha and Peter Schroeder-Heister. 2019. General Proof Theory: Introduction. Studia Logica, 107, 1 (2019), 1–5. https://doi.org/10.1007/s11225-018-9818-4
[83]
Gordon D. Plotkin. 1976. A Powerdomain Construction. SIAM J. Comput., 5, 3 (1976), 452–487. https://doi.org/10.1137/0205035
[84]
Gordon D. Plotkin. 1979. Dijkstra’s Predicate Transformers & Smyth’s Power Domaine. In Abstract Software Specifications (Lecture Notes in Computer Science, Vol. 86). Springer, 527–553. https://doi.org/10.1007/3-540-10007-5_48
[85]
Gordon D. Plotkin. 2004. The origins of structural operational semantics. J . Log . Algebraic Methods Program., 60-61 (2004), 3–15. https://doi.org/10.1016/J.JLAP.2004.03.009
[86]
Gordon D. Plotkin. 2004. A structural approach to operational semantics. J . Log . Algebraic Methods Program., 60-61 (2004), 17–139.
[87]
Amir Pnueli. 1979. The Temporal Semantics of Concurrent Programs. In Semantics of Concurrent Computation (Lecture Notes in Computer Science, Vol. 70). Springer, 1–20. https://doi.org/10.1007/BFB0022460
[88]
Christopher M. Poskitt and Detlef Plump. 2023. Monadic second-order incorrectness logic for GP 2. J . Log . Algebraic Methods Program., 130 (2023), 100825. https://doi.org/10.1016/J.JLAMP.2022.100825
[89]
Vaughan R. Pratt. 1976. Semantical Considerations on Floyd-Hoare Logic. In FOCS. IEEE Computer Society, 109–121. https://doi.org/10.1109/SFCS.1976.27
[90]
Azalea Raad, Josh Berdine, Hoang-Hai Dang, Derek Dreyer, Peter W. O’Hearn, and Jules Villard. 2020. Local Reasoning About the Presence of Bugs: Incorrectness Separation Logic. In CAV (2) (Lecture Notes in Computer Science, Vol. 12225). Springer, 225–252. https://doi.org/10.1007/978-3-030-53291-8_14
[91]
Azalea Raad, Josh Berdine, Derek Dreyer, and Peter W. O’Hearn. 2022. Concurrent incorrectness separation logic. Proc. ACM Program. Lang., 6, POPL (2022), 1–29. https://doi.org/10.1145/3498695
[92]
Azalea Raad, Julien Vanegue, Josh Berdine, and Peter W. O’Hearn. 2023. A General Approach to Under-Approximate Reasoning About Concurrent Programs. In CONCUR (LIPIcs, Vol. 279). Schloss Dagstuhl - Leibniz-Zentrum für Informatik, 25:1–25:17. https://doi.org/10.4230/LIPICS.CONCUR.2023.25
[93]
David A. Schmidt. 2007. Extracting Program Logics From Abstract Interpretations Defined by Logical Relations. In MFPS (Electronic Notes in Theoretical Computer Science, Vol. 173). Elsevier, 339–356. https://doi.org/10.1016/J.ENTCS.2007.02.042
[94]
Dana S. Scott and Christopher Strachey. 1971. Towards a Mathematical Semantics for Computer Languages. Oxford University Computer Laboratory, 49. https://www.cs.ox.ac.uk/files/3228/PRG06.pdf
[95]
Ehud Y. Shapiro. 1982. Algorithmic Program Diagnosis. In POPL. ACM Press, 299–308. https://doi.org/10.1145/582153.582185
[96]
Michael B. Smyth. 1978. Power Domains. J. Comput. Syst. Sci., 16, 1 (1978), 23–36. https://doi.org/10.1016/0022-0000(78)90048-X
[97]
Stefan Sokolowski. 1977. Axioms for Total Correctness. Acta Informatica, 9 (1977), 61–71. https://doi.org/10.1007/BF00263765
[98]
Vladimír Svoboda and Jaroslav Peregrin. 2016. Logically Incorrect Arguments. Argumentation, 30 (2016), 263–287. https://doi.org/10.1007/s10503-015-9375-1
[99]
Alfred Tarski. 1933. The semantic conception of truth and the foundations of semantics. Philosophy and Phenomenological Research, 4, 3 (1933), 341–376. https://doi.org/10.2307/2102968
[100]
Alfred Tarski. 1955. A Lattice Theoretical Fixpoint Theorem and Its Applications. Pacific J. of Math., 5 (1955), 285–310. https://doi.org/10.2140/pjm.1955.5.285
[101]
Alan Turing. 1949 [1950]. Checking a Large Routine. In Report of a Conference on High Speed Automatic Calculating Machines. University of Cambridge Mathematical Laboratory, Cambridge, England, 67–69. https://turingarchive.kings.cam.ac.uk/publications-lectures-and-talks-amtb/amt-b-8
[102]
Caterina Urban. 2013. The Abstract Domain of Segmented Ranking Functions. In SAS (Lecture Notes in Computer Science, Vol. 7935). Springer, 43–62. https://doi.org/10.1007/978-3-642-38856-9_5
[103]
Caterina Urban. 2015. FuncTion: An Abstract Domain Functor for Termination - (Competition Contribution). In TACAS (Lecture Notes in Computer Science, Vol. 9035). Springer, 464–466. https://doi.org/10.1007/978-3-662-46681-0_46
[104]
Caterina Urban, Arie Gurfinkel, and Temesghen Kahsai. 2016. Synthesizing Ranking Functions from Bits and Pieces. In TACAS (Lecture Notes in Computer Science, Vol. 9636). Springer, 54–70. https://doi.org/10.1007/978-3-662-49674-9_4
[105]
Caterina Urban and Antoine Miné. 2014. An Abstract Domain to Infer Ordinal-Valued Ranking Functions. In ESOP (Lecture Notes in Computer Science, Vol. 8410). Springer, 412–431. https://doi.org/10.1007/978-3-642-54833-8_22
[106]
Caterina Urban and Antoine Miné. 2014. A Decision Tree Abstract Domain for Proving Conditional Termination. In SAS (Lecture Notes in Computer Science, Vol. 8723). Springer, 302–318. https://doi.org/10.1007/978-3-319-10936-7_19
[107]
Caterina Urban and Antoine Miné. 2015. Proving Guarantee and Recurrence Temporal Properties by Abstract Interpretation. In VMCAI (Lecture Notes in Computer Science, Vol. 8931). Springer, 190–208. https://doi.org/10.1007/978-3-662-46081-8_11
[108]
Julien Vanegue. 2022. Adversarial Logic. In SAS (Lecture Notes in Computer Science, Vol. 13790). Springer, 422–448. https://doi.org/10.1007/978-3-031-22308-2_19
[109]
John von Neumann. 1923. Zur Einführung der transfiniten Zahlen. Acta Scientiarum Mathematicarum (Szeged), 1, 4-4 (1923), 199–208. http://pub.acta.hu/acta/showCustomerArticle.action?id=4981&dataObjectType=article
[110]
Glynn Winskel. 1993. The formal semantics of programming languages - an introduction. MIT Press. isbn:9780262731034
[111]
Peng Yan, Hanru Jiang, and Nengkun Yu. 2022. On incorrectness logic for Quantum programs. Proc. ACM Program. Lang., 6, OOPSLA1 (2022), 1–28. https://doi.org/10.1145/3527316
[112]
Cheng Zhang, Arthur Azevedo de Amorim, and Marco Gaboardi. 2022. On incorrectness logic and Kleene algebra with top and tests. Proc . ACM Program . Lang ., 6, POPL (2022), 1–30. https://doi.org/10.1145/3498690
[113]
Linpeng Zhang and Benjamin Lucien Kaminski. 2022. Quantitative strongest post: a calculus for reasoning about the flow of quantitative information. Proc. ACM Program. Lang., 6, OOPSLA1 (2022), 1–29. https://doi.org/10.1145/3527331
[114]
Noam Zilberstein, Derek Dreyer, and Alexandra Silva. 2023. Outcome Logic: A Unifying Foundation for Correctness and Incorrectness Reasoning. Proc. ACM Program. Lang., 7, OOPSLA1 (2023), 522–550. https://doi.org/10.1145/3586045

Cited By

View all
  • (2024)Quantitative Weakest Hyper Pre: Unifying Correctness and Incorrectness Hyperproperties via Predicate TransformersProceedings of the ACM on Programming Languages10.1145/36897408:OOPSLA2(817-845)Online publication date: 8-Oct-2024
  • (2024)Checking Contracts in Event-BFormal Methods Teaching10.1007/978-3-031-71379-8_6(91-105)Online publication date: 5-Sep-2024
  • (2024)Automated Software Verification of HyperlivenessTools and Algorithms for the Construction and Analysis of Systems10.1007/978-3-031-57249-4_10(196-216)Online publication date: 6-Apr-2024

Index Terms

  1. Calculational Design of [In]Correctness Transformational Program Logics by Abstract Interpretation

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image Proceedings of the ACM on Programming Languages
      Proceedings of the ACM on Programming Languages  Volume 8, Issue POPL
      January 2024
      2820 pages
      EISSN:2475-1421
      DOI:10.1145/3554315
      Issue’s Table of Contents
      This work is licensed under a Creative Commons Attribution 4.0 International License.

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 05 January 2024
      Published in PACMPL Volume 8, Issue POPL

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. abstract interpretation
      2. correctness
      3. incorrectness
      4. nontermination
      5. rogram logic
      6. semantics
      7. termination
      8. transformer

      Qualifiers

      • Research-article

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)493
      • Downloads (Last 6 weeks)73
      Reflects downloads up to 09 Nov 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2024)Quantitative Weakest Hyper Pre: Unifying Correctness and Incorrectness Hyperproperties via Predicate TransformersProceedings of the ACM on Programming Languages10.1145/36897408:OOPSLA2(817-845)Online publication date: 8-Oct-2024
      • (2024)Checking Contracts in Event-BFormal Methods Teaching10.1007/978-3-031-71379-8_6(91-105)Online publication date: 5-Sep-2024
      • (2024)Automated Software Verification of HyperlivenessTools and Algorithms for the Construction and Analysis of Systems10.1007/978-3-031-57249-4_10(196-216)Online publication date: 6-Apr-2024

      View Options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Get Access

      Login options

      Full Access

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media