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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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)
Berghofer, S., Reiter, M.: Formalizing the logic-automaton connection. In: TPHOLs ’09, pp. 147–163. Springer, Heidelberg (2009)
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)
The Coq standard library, http://coq.inria.fr/stdlib/index.html
de Dios, J., Peña, R.: Formal certification of a resource-aware language implementation. In: TPHOLs ’09, pp. 196–211. Springer, Heidelberg (2009)
Genet, T., Tong, V.V.T.: Timbuk 2.2., http://www.irisa.fr/celtique/genet/timbuk/
Haftmann, F., Nipkow, T.: Code generation via higher-order rewrite systems. In: Functional and Logic Programming (FLOPS 2010). LNCS. Springer, Heidelberg (2010)
Hardy, G.H., Ramanujan, S.: The normal number of prime factors of a number. Quart. J. of Math. 48, 76–92 (1917)
Java: The collections framework, http://java.sun.com/javase/6/docs/technotes/guides/collections/
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)
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
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
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
LETHAL tree and hedge automata library, http://lethal.sourceforge.net/
Nipkow, T., Paulson, L.C., Wenzel, M.T. (eds.): Isabelle/HOL. LNCS, vol. 2283. Springer, Heidelberg (2002)
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
Peyton Jones, S.: Bulk types with class. In: FPW ’96 (1996)
Stepanov, A., Lee, M.: The standard template library. Technical Report 95-11(R.1), HP Laboratories (1995)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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
DOI: https://doi.org/10.1007/978-3-642-14052-5_24
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-14051-8
Online ISBN: 978-3-642-14052-5
eBook Packages: Computer ScienceComputer Science (R0)