skip to main content
research-article
Open Access

Quantitative strongest post: a calculus for reasoning about the flow of quantitative information

Published:29 April 2022Publication History
Skip Abstract Section

Abstract

We present a novel strongest-postcondition-style calculus for quantitative reasoning about non-deterministic programs with loops. Whereas existing quantitative weakest pre allows reasoning about the value of a quantity after a program terminates on a given initial state, quantitative strongest post allows reasoning about the value that a quantity had before the program was executed and reached a given final state. We show how strongest post enables reasoning about the flow of quantitative information through programs. Similarly to weakest liberal preconditions, we also develop a quantitative strongest liberal post. As a byproduct, we obtain the entirely unexplored notion of strongest liberal postconditions and show how these foreshadow a potential new program logic - partial incorrectness logic - which would be a more liberal version of O'Hearn's recent incorrectness logic.

References

  1. Alejandro Aguirre and Shin-ya Katsumata. 2020. Weakest Preconditions in Fibrations. In MFPS. https://doi.org/10.1016/j.entcs.2020.09.002 Google ScholarGoogle ScholarCross RefCross Ref
  2. Torben Amtoft and Anindya Banerjee. 2004. Information Flow Analysis in Logical Form. In Static Analysis, Roberto Giacobazzi (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg. 100–115. isbn:978-3-540-27864-1 https://doi.org/10.1007/978-3-540-27864-1_10 Google ScholarGoogle ScholarCross RefCross Ref
  3. R. J. R. Back. 1988. A Calculus of Refinements for Program Derivations. Acta Inf., 25, 6 (1988), Aug., 593–624. issn:0001-5903 https://doi.org/10.1007/BF00291051 Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Kevin Batz, Benjamin Lucien Kaminski, Joost-Pieter Katoen, and Christoph Matheja. 2021. Relatively complete verification of probabilistic programs: an expressive language for expectation-based reasoning. Proc. ACM Program. Lang., 5, POPL (2021), 1–30. https://doi.org/10.1145/3434320 Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Kevin Batz, Benjamin Lucien Kaminski, Joost-Pieter Katoen, Christoph Matheja, and Thomas Noll. 2018. Quantitative Separation Logic. CoRR, abs/1802.10467 (2018), https://doi.org/10.48550/arXiv.1802.10467 arxiv:1802.10467.Google ScholarGoogle Scholar
  6. Roberto Bruni, Roberto Giacobazzi, Roberta Gori, and Francesco Ranzato. 2021. A Logic for Locally Complete Abstract Interpretations. In 2021 36th Annual ACM/IEEE Symposium on Logic in Computer Science (LICS). 1–13. https://doi.org/10.1109/LICS52264.2021.9470608 Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Stephen A. Cook. 1978. Soundness and Completeness of an Axiom System for Program Verification. SIAM J. Comput., 7 (1978), 70–90. https://doi.org/10.1137/0207005 Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. P. Cousot and R. Cousot. 1976. Static determination of dynamic properties of programs. In Proceedings of the Second International Symposium on Programming. Dunod, Paris, France, 106–130.Google ScholarGoogle Scholar
  10. Patrick Cousot and Radhia Cousot. 1977. Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In Conference Record of the Fourth ACM Symposium on Principles of Programming Languages, Los Angeles, California, USA, January 1977, Robert M. Graham, Michael A. Harrison, and Ravi Sethi (Eds.). ACM, 238–252. https://doi.org/10.1145/512950.512973 Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Patrick Cousot, Radhia Cousot, Manuel Fähndrich, and Francesco Logozzo. 2013. Automatic Inference of Necessary Preconditions. In Verification, Model Checking, and Abstract Interpretation, Roberto Giacobazzi, Josh Berdine, and Isabella Mastroeni (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg. 128–148. https://doi.org/10.1007/978-3-642-35873-9_10 Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Edsko de Vries and Vasileios Koutavas. 2011. Reverse Hoare Logic. In Software Engineering and Formal Methods, Gilles Barthe, Alberto Pardo, and Gerardo Schneider (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg. 155–171. isbn:978-3-642-24690-6 https://doi.org/10.1007/978-3-642-24690-6_12 Google ScholarGoogle Scholar
  13. Edsger Wybe Dijkstra. 1975. Guarded Commands, Nondeterminacy and Formal Derivation of Programs. 18, 8 (1975), 453–457. https://doi.org/10.1145/360933.360975 Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Edsger W. Dijkstra and Carel S. Scholten. 1990. Predicate Calculus and Program Semantics. Springer-Verlag, Berlin, Heidelberg. isbn:0387969578 https://doi.org/10.1007/978-1-4612-3228-5 Google ScholarGoogle ScholarCross RefCross Ref
  15. Gidon Ernst and Toby Murray. 2019. SecCSL: Security Concurrent Separation Logic. In Computer Aided Verification, Isil Dillig and Serdar Tasiran (Eds.). Springer International Publishing, Cham. 208–230. isbn:978-3-030-25543-5 https://doi.org/10.1007/978-3-030-25543-5_13 Google ScholarGoogle ScholarCross RefCross Ref
  16. Matthew S. Hecht. 1977. Flow Analysis of Computer Programs. Elsevier.Google ScholarGoogle Scholar
  17. C. A. R. Hoare. 1969. An Axiomatic Basis for Computer Programming. Commun. ACM, 12, 10 (1969), Oct., 576–580. issn:0001-0782 https://doi.org/10.1145/363235.363259 Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Dean Jacobs and David Gries. 1985. General Correctness: A Unification of Partial and Total Correctness. Acta Inf., 22, 1 (1985), April, 67–83. issn:0001-5903 https://doi.org/10.1007/BF00290146 Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Claire Jones. 1990. Probabilistic Non-Determinism. Ph.D. Dissertation. University of Edinburgh, UK.Google ScholarGoogle Scholar
  20. Benjamin Lucien Kaminski. 2019. Advanced weakest precondition calculi for probabilistic programs. Ph.D. Dissertation. RWTH Aachen University, Germany.Google ScholarGoogle Scholar
  21. Benjamin Lucien Kaminski and Joost-Pieter Katoen. 2017. A weakest pre-expectation semantics for mixed-sign expectations. In LICS. IEEE Computer Society, 1–12. https://doi.org/10.48550/arXiv.1703.07682Google ScholarGoogle Scholar
  22. Donald E. Knuth. 1992. Two Notes on Notation. Am. Math. Monthly, 99, 5 (1992), May, 403–422. issn:0002-9890 https://doi.org/10.2307/2325085 Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Dexter Kozen. 1985. A Probabilistic PDL. J. Comput. System Sci., 30, 2 (1985), 162–178. https://doi.org/10.1016/0022-0000(85)90012-1 Google ScholarGoogle ScholarCross RefCross Ref
  24. Annabelle McIver and Carroll Morgan. 2005. Abstraction, Refinement and Proof for Probabilistic Systems. Springer. isbn:978-0-387-40115-7 https://doi.org/10.1007/b138392 Google ScholarGoogle ScholarCross RefCross Ref
  25. Annabelle McIver and Carroll Morgan. 2005. Abstraction, Refinement and Proof for Probabilistic Systems. Springer. https://doi.org/10.1007/b138392 Google ScholarGoogle ScholarCross RefCross Ref
  26. Peter W. O’Hearn. 2004. Resources, Concurrency and Local Reasoning. In CONCUR 2004 - Concurrency Theory, Philippa Gardner and Nobuko Yoshida (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg. 49–67. isbn:978-3-540-28644-8 https://doi.org/10.1007/978-3-540-28644-8_4 Google ScholarGoogle Scholar
  27. Peter W. O’Hearn. 2019. Incorrectness Logic. Proc. ACM Program. Lang., 4, POPL (2019), Article 10, Dec., 32 pages. https://doi.org/10.1145/3371078 Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. P. Ø rbæ k and J. Palsberg. 1997. Trust in the λ -Calculus. J. Funct. Program., 7, 6 (1997), Nov., 557–591. issn:0956-7968 https://doi.org/10.1017/S0956796897002906 Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Azalea Raad, Josh Berdine, Hoang-Hai Dang, Derek Dreyer, Peter O’Hearn, and Jules Villard. 2020. Local Reasoning About the Presence of Bugs: Incorrectness Separation Logic. In Computer Aided Verification, Shuvendu K. Lahiri and Chao Wang (Eds.). Springer International Publishing, Cham. 225–252. isbn:978-3-030-53291-8 https://doi.org/10.1007/978-3-030-53291-8_14 Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. J.C. Reynolds. 2002. Separation logic: a logic for shared mutable data structures. In Proceedings 17th Annual IEEE Symposium on Logic in Computer Science. 55–74. https://doi.org/10.1109/LICS.2002.1029817 Google ScholarGoogle ScholarCross RefCross Ref
  31. H.G. Rice. 1953. Classes of recursively enumerable sets and their decision problems. Trans. Amer. Math. Soc., 74 (1953), 358–366. https://doi.org/10.2307/1990888 Google ScholarGoogle Scholar
  32. Xavier Rival and Kwangkeun Yi. 2020. Introduction to Static Analysis – An Abstract Interpretation Perspective. MIT Press.Google ScholarGoogle Scholar
  33. Geoffrey Smith. 2009. On the foundations of quantitative information flow. In International Conference on Foundations of Software Science and Computational Structures. 288–302. https://doi.org/10.1007/978-3-642-00596-1_21 Google ScholarGoogle ScholarCross RefCross Ref
  34. Alan Turing. 1936. On Computable Numbers, with an Application to the Entscheidungsproblem. Proceedings of the London Mathematical Society, 42, 1 (1936), 230–265. https://doi.org/10.2307/2268810 Google ScholarGoogle ScholarCross RefCross Ref
  35. Alan Mathison Turing. 1949. Checking a Large Routine. In Report of a Conference on High Speed Automatic Calculating Machines. Univ. Math. Lab., Cambridge, 67–69. https://doi.org/10.5555/94938.94952Google ScholarGoogle Scholar
  36. Caterina Urban, Maria Christakis, Valentin Wüstholz, and Fuyuan Zhang. 2019. Perfectly Parallel Fairness Certification of Neural Networks. CoRR, abs/1912.02499 (2019), https://doi.org/10.48550/arXiv.1912.02499 arxiv:1912.02499.Google ScholarGoogle Scholar
  37. Caterina Urban and Peter Müller. 2018. An Abstract Interpretation Framework for Input Data Usage. In ESOP. 683–710. https://doi.org/10.1007/978-3-319-89884-1_24 Google ScholarGoogle ScholarCross RefCross Ref
  38. Dennis M. Volpano and Geoffrey Smith. 1997. A Type-Based Approach to Program Security. In Proceedings of the 7th International Joint Conference CAAP/FASE on Theory and Practice of Software Development (TAPSOFT ’97). Springer-Verlag, Berlin, Heidelberg. 607–621. isbn:3540627812 https://doi.org/10945/35283Google ScholarGoogle Scholar
  39. Gia S. Wulandari and Detlef Plump. 2020. Verifying Graph Programs with First-Order Logic. Electronic Proceedings in Theoretical Computer Science, 330 (2020), Dec, 181–200. issn:2075-2180 https://doi.org/10.4204/eptcs.330.11 Google ScholarGoogle ScholarCross RefCross Ref
  40. Linpeng Zhang and Benjamin Lucien Kaminski. 2022. Quantitative Strongest Post. CoRR, abs/2202.06765 (2022), https://doi.org/10.48550/ARXIV.2202.06765 arXiv:2202.06765.Google ScholarGoogle Scholar

Index Terms

  1. Quantitative strongest post: a calculus for reasoning about the flow of quantitative information

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader
              About Cookies On This Site

              We use cookies to ensure that we give you the best experience on our website.

              Learn more

              Got it!