Structured Formal Development with Quotient Types in Isabelle/HOL

  • Maksym Bortin
  • Christoph Lüth
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6167)


General purpose theorem provers provide sophisticated proof methods, but lack some of the advanced structuring mechanisms found in specification languages. This paper builds on previous work extending the theorem prover Isabelle with such mechanisms. A way to build the quotient type over a given base type and an equivalence relation on it, and a generalised notion of folding over quotiented types is given as a formalised high-level step called a design tactic. The core of this paper are four axiomatic theories capturing the design tactic. The applicability is demonstrated by derivations of implementations for finite multisets and finite sets from lists in Isabelle.


Theorem Prover Formal Development Theory Fold Proof Obligation Axiomatic Theory 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Bird, R., de Moor, O.: Algebra of Programing. Prentice Hall, Englewood Cliffs (1997)Google Scholar
  2. 2.
    Bortin, M., Johnsen, E.B., Lüth, C.: Structured formal development in Isabelle. Nordic Journal of Computing 13, 2–21 (2006)zbMATHMathSciNetGoogle Scholar
  3. 3.
    Burstall, R.M., Goguen, J.A.: Putting theories together to make specifications. In: Proc. Fifth International Joint Conference on Artificial Intelligence IJCAI 1977, pp. 1045–1058 (1977)Google Scholar
  4. 4.
    Burstall, R.M., Goguen, J.A.: The semantics of CLEAR, a specification language. In: Bjorner, D. (ed.) Abstract Software Specifications. LNCS, vol. 86, pp. 292–332. Springer, Heidelberg (1980)Google Scholar
  5. 5.
    Chicli, L., Pottier, L., Simpson, C.: Mathematical quotients and quotient types in Coq. In: Geuvers, H., Wiedijk, F. (eds.) TYPES 2002. LNCS, vol. 2646, pp. 95–107. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  6. 6.
    Diaconescu, R., Futatsugi, K.: CafeOBJ Report. World Scientific, Singapore (1998)zbMATHGoogle Scholar
  7. 7.
    Doornbos, H., Backhouse, R.C.: Induction and recursion on datatypes. In: Möller, B. (ed.) MPC 1995. LNCS, vol. 947, pp. 242–256. Springer, Heidelberg (1995)Google Scholar
  8. 8.
    Farmer, W.M., Guttman, J.D., Thayer, F.J.: Little theories. In: Kapur, D. (ed.) CADE 1992. LNCS, vol. 607, pp. 567–581. Springer, Heidelberg (1992)Google Scholar
  9. 9.
    Goguen, J.A.: A categorical manifesto. Tech. Rep. PRG-72, Oxford University Computing Laboratory, Programming Research Group, Oxford, England (1989)Google Scholar
  10. 10.
    Hofmann, M.: A simple model for quotient types. In: Dezani-Ciancaglini, M., Plotkin, G. (eds.) TLCA 1995. LNCS, vol. 902, pp. 216–234. Springer, Heidelberg (1995)CrossRefGoogle Scholar
  11. 11.
    Hofmann, M., Sannella, D.: On behavioural abstraction and behavioural satisfaction in higher-order logic. Theoretical Computer Science 167, 3–45 (1996)zbMATHCrossRefMathSciNetGoogle Scholar
  12. 12.
    Homeier, P.V.: A design structure for higher order quotients. In: Hurd, J., Melham, T. (eds.) TPHOLs 2005. LNCS, vol. 3603, pp. 130–146. Springer, Heidelberg (2005)Google Scholar
  13. 13.
    Mossakowski, T., Autexier, S., Hutter, D.: Development graphs — proof management for structured specifications. Journal of Logic and Algebraic Programming 67(1-2), 114–145 (2006)zbMATHCrossRefMathSciNetGoogle Scholar
  14. 14.
    Mosses, P.D. (ed.): CASL Reference Manual. LNCS, vol. 2960. Springer, Heidelberg (2004)zbMATHGoogle Scholar
  15. 15.
    Nipkow, T., Paulson, L.C., Wenzel, M.: Isabelle/HOL — A Proof Assistant for Higher-Order Logic. LNCS, vol. 2283. Springer, Heidelberg (2002)zbMATHGoogle Scholar
  16. 16.
    Nogin, A.: Quotient types: A modular approach. In: Carreño, V.A., Muñoz, C.A., Tahar, S. (eds.) TPHOLs 2002. LNCS, vol. 2410, pp. 263–280. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  17. 17.
    Paulson, L.C.: Defining functions on equivalence classes. ACM Trans. Comput. Log. 7(4), 658–675 (2006)MathSciNetGoogle Scholar
  18. 18.
    Sannella, D., Burstall, R.: Structured theories in LCF. In: Protasi, M., Ausiello, G. (eds.) CAAP 1983. LNCS, vol. 159, pp. 377–391. Springer, Heidelberg (1983)Google Scholar
  19. 19.
    Slotosch, O.: Higher order quotients and their implementation in Isabelle/HOL. In: Gunter, E.L., Felty, A.P. (eds.) TPHOLs 1997. LNCS, vol. 1275, pp. 291–306. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  20. 20.
    Smith, D.R., Lowry, M.R.: Algorithm theories and design tactics. Science of Computer Programming 14, 305–321 (1990)zbMATHCrossRefMathSciNetGoogle Scholar
  21. 21.
    Srinivas, Y.V., Jullig, R.: Specware: Formal support for composing software. In: Möller, B. (ed.) MPC 1995. LNCS, vol. 947, Springer, Heidelberg (1995)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Maksym Bortin
    • 1
  • Christoph Lüth
    • 2
  1. 1.Department of Mathematics and Computer ScienceUniversität Bremen 
  2. 2.Deutsches Forschungszentrum für Künstliche Intelligenz, Bremen 

Personalised recommendations