Skip to main content

Verifying Functional Formalizations – A Type-Theoretical Case Study in PVS

  • Chapter
The Beauty of Functional Code

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 8106))

  • 1183 Accesses

Abstract

In this case study we investigate the use of PVS for developing type theoretical concepts and verifying the correctness of a typing algorithm. PVS turns out to be very useful for the efficient development of a sound basic theory about polymorphic typing. The PVS formalization is also intended as the first step towards a functional training vehicle for the education of compiler construction.

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

Access this chapter

eBook
USD 16.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 16.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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Aydemir, B.E., Bohannon, A., Fairbairn, M., Nathan Foster, J., Pierce, B.C., Sewell, P., Vytiniotis, D., Washburn, G., Weirich, S., Zdancewic, S.: Mechanized metatheory for the masses: The poplMark challenge. In: Hurd, J., Melham, T.F. (eds.) TPHOLs 2005. LNCS, vol. 3603, pp. 50–65. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  2. Barendregt, H.P.: Lambda calculi with types. In: Abramsky, S., M. Gabbai, D.M., Maibaum, T.S.E. (eds.) Handbook of Logic in Computer Science, vol. 2, pp. 117–309. Oxford Univ. Press (1992)

    Google Scholar 

  3. Barendsen, E., Smetsers, J.E.W.: Uniqueness typing for functional languages with graph rewriting semantics. MSCS 6, 579–612 (1996)

    MathSciNet  MATH  Google Scholar 

  4. Barendsen, E., Smetsers, J.E.W.: Graph rewriting aspects of functional programming. In: Ehrig, H., Engels, G., Kreowski, H.-J., Rozenberg, G. (eds.) Handbook of Graph Grammars and Computing by Graph Transformation, vol. 2, pp. 63–102. World Scientific Publishing (1999)

    Google Scholar 

  5. Berghofer, S.: A solution to the poplmark challenge in Isabelle/Hol. Technical report, Department of Computer Science, Technical University of Munich, Germany (2006)

    Google Scholar 

  6. Clément, D., Despeyroux, T., Kahn, G., Despeyroux, J.: A simple applicative language: mini-ml. In: LFP 1986: Proceedings of the 1986 ACM Conference on LISP and Functional Programming, pp. 13–27. ACM, New York (1986)

    Chapter  Google Scholar 

  7. Hohmuth, M., Tews, H.: The semantics of C++ data types: Towards verifying low-level system components. In: Basin, D., Wolff, B. (eds.) TPHOLs 2003, pp. 127–144. Technical Report No. 187. Institut für Informatik Universität Freiburg (2003)

    Google Scholar 

  8. Jacobs, B., Smetsers, S., Schreur, R.W.: Code-carrying theories. Form. Asp. Comput. 19(2), 191–203 (2007)

    Article  MATH  Google Scholar 

  9. Lee, D.K., Crary, K., Harper, R.: Towards a mechanized metatheory of standard ml. In: Hofmann, M., Felleisen, M. (eds.) POPL, pp. 173–184. ACM (2007)

    Google Scholar 

  10. Lensink, L., Smetsers, S., van Eekelen, M.: Machine checked formal proof of a scheduling protocol for smartcard personalization. In: Leue, S., Merino, P. (eds.) FMICS 2007. LNCS, vol. 4916, pp. 115–132. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  11. Leroy, X.: A formally verified compiler back-end. J. Autom. Reason. 43(4), 363–446 (2009)

    Article  MathSciNet  MATH  Google Scholar 

  12. Milner, R.: A theory of type polymorphism in programming. J. Comput. Syst. Sci. 17(3), 348–375 (1978)

    Article  MathSciNet  MATH  Google Scholar 

  13. Mitchell, J.C.: Foundations for Programming Languages. MIT Press (1996)

    Google Scholar 

  14. Naraschewski, W., Nipkow, T.: Type inference verified: Algorithm \(\mathcal{W}\) in Isabelle/HOL. Journal of Automated Reasoning 23, 299–318 (1999)

    Article  MathSciNet  MATH  Google Scholar 

  15. Nazareth, D., Nipkow, T.: Formal verification of algorithm \(\mathcal{W}\): The monomorphic case. In: von Wright, J., Harrison, J., Grundy, J. (eds.) TPHOLs 1996. LNCS, vol. 1125, pp. 331–346. Springer, Heidelberg (1996)

    Chapter  Google Scholar 

  16. Nipkow, T., Paulson, L.C., Wenzel, M.T.: Isabelle/HOL. LNCS, vol. 2283. Springer, Heidelberg (2002)

    MATH  Google Scholar 

  17. Owre, S., Shankar, N., Rushby, J.M., Stringer-Calvert, D.W.J.: PVS language reference (version 2.4). Technical report, Computer Science Laboratory, SRI International, Menlo Park, CA (November 2001)

    Google Scholar 

  18. Robinson, J.A.: A machine-oriented logic based on the resolution principle. Journal of the ACM 12, 23–41 (1965)

    Article  MathSciNet  MATH  Google Scholar 

  19. Urban, C., Tasson, C.: Nominal techniques in isabelle/HOL. In: Nieuwenhuis, R. (ed.) CADE 2005. LNCS (LNAI), vol. 3632, pp. 38–53. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  20. van Weelden, A.: Putting Types to Good Use. PhD thesis, Radboud University Nijmegen (2007)

    Google Scholar 

  21. Wand, M.: A simple algorithm and proof for type inference. Fundamenta Infomaticae X, 115–122 (1987)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Smetsers, S., Barendsen, E. (2013). Verifying Functional Formalizations – A Type-Theoretical Case Study in PVS. In: Achten, P., Koopman, P. (eds) The Beauty of Functional Code. Lecture Notes in Computer Science, vol 8106. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-40355-2_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-40355-2_5

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-40354-5

  • Online ISBN: 978-3-642-40355-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics