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.
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- M. Gordon, R. Milner, and C. Wadsworth. Edinburgh LCF, volume 78 of Lecture Notes in Computer Science. Springer, 1979.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- R. Milner, M. Tofte, R. Harper, and D. MacQueen. The Definition of Standard ML. MIT Press, Cambridge, MA, USA, 1997. Google Scholar
Digital Library
- B. O'Sullivan, J. Goerzen, and D. Stewart. Real World Haskell. O'Reilly Media, Inc., 1st edition, 2008. Google Scholar
Digital Library
- K. Slind. Reasoning about Terminating Functional Programs. PhD thesis, Technical University of Munich, 1999.Google Scholar
Index Terms
Maintaining verified software
Recommendations
Maintaining verified software
Haskell '13: Proceedings of the 2013 ACM SIGPLAN symposium on HaskellMaintaining 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 ...
Using DEv-PROMELA for Modelling and Verification of Software
SIGSIM-PADS '16: Proceedings of the 2016 ACM SIGSIM Conference on Principles of Advanced Discrete SimulationEfficient modelling and verification of models need an accurate representation of systems. Especially, PROMELA cannot represent time as quantitative properties. That means some properties depending on time cannot be checked with SPIN model-checker. ...
Formal verification of ASMs using MDGs
We present a framework for the formal verification of abstract state machine (ASM) designs using the multiway decision graphs (MDG) tool. ASM is a state based language for describing transition systems. MDG provides symbolic representation of transition ...







Comments