Skip to main content

Relational Decomposition

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 6898))

Abstract

We introduce relational decomposition, a technique for formally reducing termination-insensitive relational program logics to unary logics, that is program logics for one-execution properties. Generalizing the approach of self-composition, we develop a notion of interpolants that decompose along the phrase structure, and relate these interpolants to unary and relational predicate transformers. In contrast to previous formalisms, relational decomposition is applicable across heterogeneous pairs of transition systems. We apply our approach to justify variants of Benton’s Relational Hoare Logic (RHL) for a language with objects, and present novel rules for relating loops that fail to proceed in lockstep. We also outline applications to noninterference and separation logic.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Amtoft, T., Bandhakavi, S., Banerjee, A.: A logic for information flow in object-oriented programs. In: Morrisett and Jones [30], pp. 91–102

    Google Scholar 

  2. Amtoft, T., Hatcliff, J., Rodríguez, E.: Precise and automated contract-based reasoning for verification and certification of information flow properties of programs with arrays. In: Gordon, A.D. (ed.) ESOP 2010. LNCS, vol. 6012, pp. 43–63. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  3. Amtoft, T., Hatcliff, J., Rodríguez, E., Robby, Hoag, J., Greve, D.A.: Specification and Checking of Software Contracts for Conditional Information Flow. In: Cuellar, J., Sere, K. (eds.) FM 2008. LNCS, vol. 5014, pp. 229–245. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  4. Appel, A.W.: Foundational high-level static analysis. In: Gupta, A., Malik, S. (eds.) CAV 2008. LNCS, vol. 5123, Springer, Heidelberg (2008)

    Google Scholar 

  5. Appel, A.W.: Verified software toolchain. In: Barthe, G. (ed.) ESOP 2011. LNCS, vol. 6602, pp. 1–17. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  6. Aspinall, D., Beringer, L., Hofmann, M., Loidl, H.-W., Momigliano, A.: A program logic for resources. Theoretical Computer Science 389(3), 411–445 (2007)

    Article  MathSciNet  MATH  Google Scholar 

  7. Banerjee, A., Naumann, D.: Stack-based access control for secure information flow. Journal of Functional Programming 15, 131–177 (2005)

    Article  MathSciNet  MATH  Google Scholar 

  8. Banerjee, A., Naumann, D.A., Rosenberg, S.: Towards a logical account of declassification. In: Hicks, M.W. (ed.) Proceedings of the 2007 Workshop on Programming Languages and Analysis for Security (PLAS 2007), pp. 61–66. ACM Press, New York (2007)

    Chapter  Google Scholar 

  9. Barnes, J.: High Integrity Software: The SPARK Approach to Safety and Security. Addison-Wesley, Reading (2006)

    Google Scholar 

  10. Barthe, G., Crespo, J.M., Kunz, C.: Relational verification using product programs (2011), http://software.imdea.org/~ckunz/rellog/long-rellog.pdf

  11. Barthe, G., D’Argenio, P., Rezk, T.: Secure Information Flow by Self-Composition. In: Foccardi, R. (ed.) Computer Security Foundations Workshop, pp. 100–114. IEEE Press, Los Alamitos (2004)

    Google Scholar 

  12. Barthe, G., Rezk, T.: Non-interference for a JVM-like language. In: Fähndrich, M. (ed.) Types in Language Design and Implementation, pp. 103–112. ACM Press, New York (2005)

    Google Scholar 

  13. Benton, N.: Simple relational correctness proofs for static analyses and program transformations. In: Jones, N.D., Leroy, X. (eds.) Proceedings of the 31st ACM Symposium on Principles of Programming Languages (POPL 2004), pp. 14–25. ACM Press, New York (2004)

    Google Scholar 

  14. Beringer, L.: Relational decomposition – Isabelle/HOL sources (2011), www.cs.princeton.edu/~eberinge/RelDecompITP2011.tar.gz

  15. Beringer, L., Hofmann, M.: Secure information flow and program logics. In: IEEE Computer Security Foundations Symposium, pp. 233–248. IEEE Press, Los Alamitos (2007)

    Chapter  Google Scholar 

  16. Birkedal, L., Torp-Smith, N., Yang, H.: Semantics of separation-logic typing and higher-order frame rules. In: Proceedings of the 20th IEEE Symposium on Logic in Computer Science (LICS 2005), pp. 260–269. IEEE Press, Los Alamitos (2005)

    Google Scholar 

  17. Craig, W.: Three uses of the Herbrand-Gentzen theorem in relating model theory and proof theory. Journal of Symbolic Logic 22(3), 269–285 (1957)

    Article  MathSciNet  MATH  Google Scholar 

  18. Darvas, A., Hähnle, R., Sands, D.: A theorem proving approach to analysis of secure information flow. In: Gorrieri, R. (ed.) Workshop on Issues in the Theory of Security. IFIP WG 1.7, ACM SIGPLAN and GI FoMSESS (2003)

    Google Scholar 

  19. Gardiner, P.: Power simulation and its relation to traces and failures refinement. Theoretical Computer Science 309(1-3), 157–176 (2003)

    Article  MathSciNet  MATH  Google Scholar 

  20. Goldberg, B., Zuck, L.D., Barrett, C.W.: Into the loops: Practical issues in translation validation for optimizing compilers. Electronic Notes in Theoretical Computer Science 132(1), 53–71 (2005)

    Article  Google Scholar 

  21. Hermenegildo, M.V., Palsberg, J. (eds.): Proceedings of the 37th ACM Symposium on Principles of Programming Languages (POPL 2010). ACM Press, New York (2010)

    Google Scholar 

  22. Hoare, C.A.R., He, J.: The weakest prespecification. Information Processing Letters 24(2), 127–132 (1987)

    Article  MathSciNet  MATH  Google Scholar 

  23. Hoare, C.A.R., He, J., Sanders, J.W.: Prespecification in data refinement. Information Processing Letters 25(2), 71–76 (1987)

    Article  MathSciNet  MATH  Google Scholar 

  24. Hunt, S., Sands, D.: On flow-sensitive security types. In: Morrisett, Jones (eds.) [30], pp. 79–90

    Google Scholar 

  25. Jones, C.B.: Systematic Software Development Using VDM, 2nd edn. Prentice-Hall International, Englewood Cliffs (1990)

    MATH  Google Scholar 

  26. Kleymann, T.: Hoare Logic and VDM: Machine-Checked Soundness and Completeness Proofs. PhD thesis, LFCS, University of Edinburgh (1998)

    Google Scholar 

  27. Lerner, S., Millstein, T.D., Rice, E., Chambers, C.: Automated soundness proofs for dataflow analyses and transformations via local rules. In: Palsberg, J., Abadi, M. (eds.) Proceedings of the 32nd ACM Symposium on Principles of Programming Languages (POPL 2005), pp. 364–377. ACM Press, New York (2005)

    Google Scholar 

  28. Leroy, X.: A formally verified compiler back-end. Journal of Automated Reasoning 43(4), 363–446 (2009)

    Article  MathSciNet  MATH  Google Scholar 

  29. Magill, S., Tsai, M.-H., Lee, P., Tsay, Y.-K.: Automatic numeric abstractions for heap-manipulating programs. In: Hermenegildo, Palsberg [21], pp. 211–222

    Google Scholar 

  30. Morrisett, J.G., Jones, S.L.P. (eds.): Proceedings of the 33rd ACM Symposium on Principles of Programming Languages (POPL 2006). ACM Press, New York (2006)

    Google Scholar 

  31. Naumann, D.A.: From coupling relations to mated invariants for checking information flow. In: Gollmann, D., Meier, J., Sabelfeld, A. (eds.) ESORICS 2006. LNCS, vol. 4189, pp. 279–296. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  32. Necula, G.C.: Translation validation for an optimizing compiler. SIGPLAN Not. 35(5), 83–94 (2000)

    Article  Google Scholar 

  33. Nipkow, T.: Hoare logics for recursive procedures and unbounded nondeterminism. In: Bradfield, J. (ed.) CSL 2002 and EACSL 2002. LNCS, vol. 2471, pp. 103–119. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  34. Saabas, A., Uustalu, T.: Program and proof optimizations with type systems. Journal of Logic and Algebraic Programming 77(1-2), 131–154 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  35. Sabelfeld, A., Myers, A.: Language-based information-flow security. IEEE Journal on Selected Areas in Communication 21, 5–19 (2003)

    Article  Google Scholar 

  36. Tate, R., Stepp, M., Lerner, S.: Generating compiler optimizations from proofs. In: Hermenegildo, Palsberg [21], pp. 389–402

    Google Scholar 

  37. Terauchi, T., Aiken, A.: Secure information flow as a safety problem. In: Hankin, C., Siveroni, I. (eds.) SAS 2005. LNCS, vol. 3672, pp. 352–367. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  38. Volpano, D., Smith, G., Irvine, C.: A sound type system for secure flow analysis. Journal of Computer Security 4(3), 167–187 (1996)

    Article  Google Scholar 

  39. Voronkov, A., Narasamdya, I.: Inter-program properties. In: Palsberg, J., Su, Z. (eds.) SAS 2009. LNCS, vol. 5673, pp. 343–359. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  40. Yang, H.: Relational separation logic. Theoretical Computer Science 375(1-3), 308–334 (2007)

    Article  MathSciNet  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Beringer, L. (2011). Relational Decomposition. In: van Eekelen, M., Geuvers, H., Schmaltz, J., Wiedijk, F. (eds) Interactive Theorem Proving. ITP 2011. Lecture Notes in Computer Science, vol 6898. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-22863-6_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-22863-6_6

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-22862-9

  • Online ISBN: 978-3-642-22863-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics