Data Refinement in Isabelle/HOL

  • Florian Haftmann
  • Alexander Krauss
  • Ondřej Kunčar
  • Tobias Nipkow
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7998)


The paper shows how the code generator of Isabelle/HOL supports data refinement, i.e., providing efficient code for operations on abstract types, e.g., sets or numbers. This allows all tools that employ code generation, e.g., Quickcheck or proof by evaluation, to compute with these abstract types. At the core is an extension of the code generator to deal with data type invariants. In order to automate the process of setting up specific data refinements, two packages for transferring definitions and theorems between types are exploited.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Bertot, Y., Castéran, P.: Interactive Theorem Proving and Program Development. Springer (2004)Google Scholar
  2. 2.
    Blanchette, J.C., Bulwahn, L., Nipkow, T.: Automatic Proof and Disproof in Isabelle/HOL. In: Tinelli, C., Sofronie-Stokkermans, V. (eds.) FroCoS 2011. LNCS, vol. 6989, pp. 12–27. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  3. 3.
    Filliâtre, J.-C., Letouzey, P.: Functors for Proofs and Programs. In: Schmidt, D. (ed.) ESOP 2004. LNCS, vol. 2986, pp. 370–384. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  4. 4.
    Greve, D., Kaufmann, M., Manolios, P., Moore, J., Ray, S., Ruiz-Reina, J., Sumners, R., Vroon, D., Wilding, M.: Efficient execution in an automated reasoning environment. J. Functional Programming 18, 15–46 (2008)zbMATHCrossRefGoogle Scholar
  5. 5.
    Haftmann, F., Nipkow, T.: Code Generation via Higher-Order Rewrite Systems. In: Blume, M., Kobayashi, N., Vidal, G. (eds.) FLOPS 2010. LNCS, vol. 6009, pp. 103–117. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  6. 6.
    He, J., Hoare, C.A.R., Sanders, J.W.: Data refinement refined. In: Robinet, B., Wilhelm, R. (eds.) ESOP 1986. LNCS, vol. 213, pp. 187–196. Springer, Heidelberg (1986)CrossRefGoogle Scholar
  7. 7.
    Hoare, C.A.R.: Proof of Correctness of Data Representations. Acta Informatica 1, 271–281 (1972)zbMATHCrossRefGoogle Scholar
  8. 8.
    Huffman, B., Kunčar, O.: Lifting and Transfer: A Modular Design for Quotients in Isabelle/HOL. Presented at the Isabelle Users Workshop at ITP 2012 (2012),
  9. 9.
    Jones, C.B.: Software Development. A Rigourous Approach. Prentice Hall (1980)Google Scholar
  10. 10.
    Kaliszyk, C., Urban, C.: Quotients revisited for Isabelle/HOL. In: Chu, W.C., Wong, W.E., Palakal, M.J., Hung, C.-C. (eds.) Proc. of the 26th ACM Symposium on Applied Computing (SAC 2011), pp. 1639–1644. ACM (2011)Google Scholar
  11. 11.
    Kaufmann, M., Manolios, P., More, J.S.: Computer-Aided Reasoning: ACL2 Case Studies. Kluwer Academic Publishers (2000)Google Scholar
  12. 12.
    Lammich, P.: Automatic data refinement. In: Blazy, S., Paulin-Mohring, C., Pichardie, D. (eds.) ITP 2013. LNCS, vol. 7998, pp. 84–99. Springer, Heidelberg (2013)Google Scholar
  13. 13.
    Lochbihler, A.: Light-weight containers for Isabelle: efficient, extensible and nestable. In: Blazy, S., Paulin-Mohring, C., Pichardie, D. (eds.) ITP 2013. LNCS, vol. 7998, pp. 116–132. Springer, Heidelberg (2013)Google Scholar
  14. 14.
    Lochbihler, A., Bulwahn, L.: Animating the Formalised Semantics of a Java-like Language. In: van Eekelen, M., Geuvers, H., Schmaltz, J., Wiedijk, F. (eds.) ITP 2011. LNCS, vol. 6898, pp. 216–232. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  15. 15.
    Nipkow, T.: Non-Deterministic Data Types: Models and Implementations. Acta Informatica 22, 629–661 (1986)MathSciNetzbMATHCrossRefGoogle Scholar
  16. 16.
    Nipkow, T.: Are Homomorphisms Sufficient for Behavioural Implementations of Deterministic and Nondeterministic Data Types? In: Brandenburg, F.J., Vidal-Naquet, G., Wirsing, M. (eds.) STACS 1987. LNCS, vol. 247, pp. 260–271. Springer, Heidelberg (1987)CrossRefGoogle Scholar
  17. 17.
    Nipkow, T., Paulson, L.C., Wenzel, M.T.: Isabelle/HOL. LNCS, vol. 2283. Springer, Heidelberg (2002)zbMATHCrossRefGoogle Scholar
  18. 18.
    Reif, W., Schellhorn, G., Stenzel, K.: Interactive Correctness Proofs for Software Modules Using KIV. In: COMPASS 1995: Proc. Tenth Annual Conf. Computer Assurance, pp. 151–162. IEEE (1995)Google Scholar
  19. 19.
    Traytel, D., Nipkow, T.: A Verified Decision Procedure for MSO on Words (2013),

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Florian Haftmann
    • 1
  • Alexander Krauss
    • 1
  • Ondřej Kunčar
    • 1
  • Tobias Nipkow
    • 1
  1. 1.Technische Universität MünchenGermany

Personalised recommendations