Skip to main content

The Isabelle Collections Framework

  • Conference paper
Interactive Theorem Proving (ITP 2010)

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

Included in the following conference series:

  • 1177 Accesses

  • 38 Citations

Abstract

The Isabelle Collections Framework (ICF) provides a unified framework for using verified collection data structures in Isabelle/HOL formalizations and generating efficient functional code in ML, Haskell, and OCaml. Thanks to its modularity, it is easily extensible and supports switching to different data structures any time. For good integration with applications, a data refinement approach separates the correctness proofs from implementation details. The generated code based on the ICF lies in better complexity classes than the one that uses Isabelle’s default setup (logarithmic vs. linear time). In a case study with tree automata, we demonstrate that the ICF is easy to use and efficient: An ICF based, verified tree automata library outperforms the unverified Timbuk/Taml library by a factor of 14.

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

Access this chapter

Subscribe and save

Springer+
from €37.37 /Month
  • Starting from 10 chapters or articles per month
  • Access and download chapters and articles from more than 300k books and 2,500 journals
  • Cancel anytime
View plans

Buy Now

Chapter
EUR 29.95
Price includes VAT (Spain)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
EUR 85.59
Price includes VAT (Spain)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
EUR 103.99
Price includes VAT (Spain)
  • Compact, lightweight edition
  • Free shipping worldwide - view details

Tax calculation will be finalised at checkout

Purchases are for personal use only

') var buybox = document.querySelector("[data-id=id_"+ timestamp +"]").parentNode var buyingOptions = buybox.querySelectorAll(".buying-option") ;[].slice.call(buyingOptions).forEach(initCollapsibles) var buyboxMaxSingleColumnWidth = 480 function initCollapsibles(subscription, index) { var toggle = subscription.querySelector(".buying-option-price") subscription.classList.remove("expanded") var form = subscription.querySelector(".buying-option-form") var priceInfo = subscription.querySelector(".price-info") var buyingOption = toggle.parentElement if (toggle && form && priceInfo) { toggle.setAttribute("role", "button") toggle.setAttribute("tabindex", "0") toggle.addEventListener("click", function (event) { var expandedBuyingOptions = buybox.querySelectorAll(".buying-option.expanded") var buyboxWidth = buybox.offsetWidth ;[].slice.call(expandedBuyingOptions).forEach(function(option) { if (buyboxWidth buyboxMaxSingleColumnWidth) { toggle.click() } else { if (index === 0) { toggle.click() } else { toggle.setAttribute("aria-expanded", "false") form.hidden = "hidden" priceInfo.hidden = "hidden" } } }) } initialStateOpen() if (window.buyboxInitialised) return window.buyboxInitialised = true initKeyControls() })()

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Ballarin, C.: Interpretation of locales in Isabelle: Theories and proof contexts. In: Borwein, J.M., Farmer, W.M. (eds.) MKM 2006. LNCS (LNAI), vol. 4108, pp. 31–43. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  2. Berghofer, S., Reiter, M.: Formalizing the logic-automaton connection. In: TPHOLs ’09, pp. 147–163. Springer, Heidelberg (2009)

    Google Scholar 

  3. Bulwahn, L., Krauss, A., Haftmann, F., Erkök, L., Matthews, J.: Imperative functional programming with Isabelle/HOL. In: Mohamed, O.A., Muñoz, C., Tahar, S. (eds.) TPHOLs 2008. LNCS, vol. 5170, pp. 134–149. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  4. The Coq standard library, http://coq.inria.fr/stdlib/index.html

  5. de Dios, J., Peña, R.: Formal certification of a resource-aware language implementation. In: TPHOLs ’09, pp. 196–211. Springer, Heidelberg (2009)

    Google Scholar 

  6. Genet, T., Tong, V.V.T.: Timbuk 2.2., http://www.irisa.fr/celtique/genet/timbuk/

  7. Haftmann, F., Nipkow, T.: Code generation via higher-order rewrite systems. In: Functional and Logic Programming (FLOPS 2010). LNCS. Springer, Heidelberg (2010)

    Google Scholar 

  8. Hardy, G.H., Ramanujan, S.: The normal number of prime factors of a number. Quart. J. of Math. 48, 76–92 (1917)

    MATH  Google Scholar 

  9. Java: The collections framework, http://java.sun.com/javase/6/docs/technotes/guides/collections/

  10. Kaufmann, M., Moore, J.S.: An industrial strength theorem prover for a logic based on common lisp. IEEE Transactions on Software Engineering 23, 203–213 (1997)

    Article  Google Scholar 

  11. Kuncak, V.: Binary search trees. In: Klein, G., Nipkow, T., Paulson, L. (eds.) The Archive of Formal Proofs. Formal proof development (2004), http://afp.sf.net/entries/BinarySearchTree.shtml

  12. Lammich, P.: Isabelle collection library. In: Klein, G., Nipkow, T., Paulson, L. (eds.) The Archive of Formal Proofs. Formal proof development (2009), http://afp.sf.net/entries/collections.shtml

  13. Lammich, P.: Tree automata. In: Klein, G., Nipkow, T., Paulson, L. (eds.) The Archive of Formal Proofs. Formal proof development (2009), http://afp.sf.net/entries/Tree-Automata.shtml

  14. LETHAL tree and hedge automata library, http://lethal.sourceforge.net/

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

    MATH  Google Scholar 

  16. Nipkow, T., Pusch, C.: AVL trees. In: Klein, G., Nipkow, T., Paulson, L. (eds.) The Archive of Formal Proofs. Formal proof development (2004), http://afp.sf.net/entries/AVL-Trees.shtml

  17. Peyton Jones, S.: Bulk types with class. In: FPW ’96 (1996)

    Google Scholar 

  18. Stepanov, A., Lee, M.: The standard template library. Technical Report 95-11(R.1), HP Laboratories (1995)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Lammich, P., Lochbihler, A. (2010). The Isabelle Collections Framework. In: Kaufmann, M., Paulson, L.C. (eds) Interactive Theorem Proving. ITP 2010. Lecture Notes in Computer Science, vol 6172. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-14052-5_24

Download citation

Keywords

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Publish with us

Policies and ethics