skip to main content
research-article

Maintaining verified software

Published:23 September 2013Publication History
Skip Abstract Section

Abstract

Maintaining software in the face of evolving dependencies is a challenging problem, and in addition to good release practices there is a need for automatic dependency analysis tools to avoid errors creeping in. Verified software reveals more semantic information in the form of mechanized proofs of functional specifications, and this can be used for dependency analysis. In this paper we present a scheme for automatic dependency analysis of verified software, which for each program checks that the collection of installed libraries is sufficient to guarantee its functional correctness. We illustrate the scheme with a case study of Haskell packages verified in higher order logic. The dependency analysis reduces the burden of maintaining verified Haskell packages by automatically computing version ranges for the packages they depend on, such that any combination provides the functionality required for correct operation.

References

  1. K. Claessen and J. Hughes. QuickCheck: a lightweight tool for random testing of Haskell programs. ACM SIGPLAN Notices, 35 (9): 268--279, Sept. 2000. URL http://www.md.chalmers.se/ rjmh/QuickCheck/. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. D. Coutts, I. Potoczny-Jones, and D. Stewart. Haskell: Batteries included. In A. Gill, editor, Haskell '08: Proceedings of the first ACM SIGPLAN symposium on Haskell, pages 125--126. ACM, Sept. 2008. URL http://www.cse.unsw.edu.au/ dons/papers/CPJS08.html. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. E. Dolstra and A. Löh. NixOS: A purely functional Linux distribution. In J. Hook and P. Thiemann, editors, Proceedings of the 13th ACM SIGPLAN International Conference on Functional programming (ICFP 2008), pages 367--378. ACM, Sept. 2008. URL http://doi.acm.org/10.1145/1411204.1411255. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. W. M. Farmer. The seven virtues of simple type theory. Journal of Applied Logic, 6: 267--286, 2008. URL http://imps.mcmaster.ca/wmfarmer/publications.html.Google ScholarGoogle ScholarCross RefCross Ref
  5. M. Gordon, R. Milner, and C. Wadsworth. Edinburgh LCF, volume 78 of Lecture Notes in Computer Science. Springer, 1979.Google ScholarGoogle Scholar
  6. F. Haftmann. From higher-order logic to Haskell: There and back again. In J. P. Gallagher and J. Voigtländer, editors, Proceedings of the ACM SIGPLAN workshop on Partial Evaluation and Program Manipulation (PEPM 2010), pages 155--158. ACM, Jan. 2010. URL http://www4.in.tum.de/haftmann/pdf/from_hol_to_haskell_haftmann.pdf. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. J. Harrison. HOL light: A tutorial introduction. In M. Srivas and A. Camilleri, editors, Proceedings of the First International Conference on Formal Methods in Computer-Aided Design (FMCAD '96), volume 1166 of Lecture Notes in Computer Science, pages 265--269. Springer, 1996. URL http://www.cl.cam.ac.uk/users/jrh/papers/demo.html. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. B. Huffman. Formal verification of monad transformers. In P. Thiemann and R. B. Findler, editors, Proceedings of the 17th ACM SIGPLAN International Conference on Functional Programming (ICFP 2012). ACM, Sept. 2012. URL http://web.cecs.pdx.edu/ brianh/icfp2012.html. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. J. Hurd. The OpenTheory standard theory library. In M. Bobaru, K. Havelund, G. J. Holzmann, and R. Joshi, editors, Third International Symposium on NASA Formal Methods (NFM 2011), volume 6617 of Lecture Notes in Computer Science, pages 177--191. Springer, Apr. 2011. URL http://gilith.com/research/papers. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. M. M. Lehman. Programs, life cycles, and laws of software evolution. Proceedings of the IEEE, 68 (9): 1060--1076, 1980. URL https://cs.uwaterloo.ca/a78khan/cs446/additional-material/scribe/27-refactoring/Lehman-LawsOfSoftwareEvolution.pdf.Google ScholarGoogle ScholarCross RefCross Ref
  11. R. Milner, M. Tofte, R. Harper, and D. MacQueen. The Definition of Standard ML. MIT Press, Cambridge, MA, USA, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. B. O'Sullivan, J. Goerzen, and D. Stewart. Real World Haskell. O'Reilly Media, Inc., 1st edition, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. K. Slind. Reasoning about Terminating Functional Programs. PhD thesis, Technical University of Munich, 1999.Google ScholarGoogle Scholar

Index Terms

  1. Maintaining verified software

    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

    • Published in

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 48, Issue 12
      Haskell '13
      December 2013
      149 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/2578854
      Issue’s Table of Contents
      • cover image ACM Conferences
        Haskell '13: Proceedings of the 2013 ACM SIGPLAN symposium on Haskell
        September 2013
        158 pages
        ISBN:9781450323833
        DOI:10.1145/2503778

      Copyright © 2013 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 23 September 2013

      Check for updates

      Qualifiers

      • research-article
    • Article Metrics

      • Downloads (Last 12 months)7
      • Downloads (Last 6 weeks)0

      Other Metrics

    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!