Skip to main content

Dependently Typed Programming Based on Automated Theorem Proving

  • Conference paper

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

Abstract

Mella is a minimalistic dependently typed programming language and interactive theorem prover implemented in Haskell. Its main purpose is to investigate the effective integration of automated theorem provers in this pure and simple setting. Such integrations are essential for supporting program development in dependently typed languages. We integrate the equational theorem prover Waldmeister and test it on more than 800 proof goals from the TPTP library. In contrast to previous approaches, the reconstruction of Waldmeister proofs within Mella is quite robust and does not generate a significant overhead to proof search. Mella thus yields a template for integrating more expressive theorem provers in more sophisticated languages.

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

Buying options

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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Armand, M., Faure, G., Grégoire, B., Keller, C., Théry, L., Werner, B.: A Modular Integration of SAT/SMT Solvers to Coq through Proof Witnesses. In: Jouannaud, J.-P., Shao, Z. (eds.) CPP 2011. LNCS, vol. 7086, pp. 135–150. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  2. Armstrong, A., Struth, G., Foster, S.: Dependently typed programming based on automated theorem proving. Technical Report (2011), http://arxiv.org/abs/1112.3833

  3. Aspinall, D.: Proof General: A Generic Tool for Proof Development. In: Graf, S. (ed.) TACAS 2000. LNCS, vol. 1785, pp. 38–42. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  4. Awodey, S., Warren, M.A.: Homotopy theoretic models of identity types. Math. Proc. Camb. Phil. Soc. 146, 45–55 (2009)

    Article  MathSciNet  MATH  Google Scholar 

  5. Bachmair, L., Dershowitz, N., Plaisted, D.A.: Completion without failure. In: Ait-Kaci, H., Nivat, M. (eds.) Resolution of Equations in Algebraic Structures, pp. 1–30. Academic Press (1989)

    Google Scholar 

  6. Barendregt, H.: Introduction to generalized type systems. Journal of functional programming 1(2), 125–154 (1991)

    MathSciNet  MATH  Google Scholar 

  7. Barendregt, H., Barendsen, E.: Autarkic computations in formal proofs. Journal of Automated Reasoning 28(3), 321–336 (2002)

    Article  MathSciNet  MATH  Google Scholar 

  8. Bernardy, J.-P., Jansson, P., Paterson, R.: Parametricity and dependent types. SIGPLAN Not. 45, 345–356 (2010)

    Article  Google Scholar 

  9. Bertot, Y., Castéran, P.: Interactive theorem proving and program development: Coq’Art: the calculus of inductive constructions. Springer (2004)

    Google Scholar 

  10. 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)

    Chapter  Google Scholar 

  11. Bove, A., Dybjer, P., Norell, U.: A Brief Overview of Agda – A Functional Language with Dependent Types. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) TPHOLs 2009. LNCS, vol. 5674, pp. 73–78. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  12. Bove, A., Dybjer, P., Sicard-Ramírez, A.: Combining Interactive and Automatic Reasoning in First Order Theories of Functional Programs. In: Birkedal, L. (ed.) FOSSACS 2012. LNCS, vol. 7213, pp. 104–118. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  13. Charguéraud, A.: The locally nameless representation. Journal of Automated Reasoning (2011), doi:10.1007/s10817-011-9225-2

    Google Scholar 

  14. Dybjer, P.: Inductive families. Formal Aspects of Computing 6, 440–465 (1994)

    Article  MATH  Google Scholar 

  15. Foster, S., Struth, G.: Integrating an Automated Theorem Prover into Agda. In: Bobaru, M., Havelund, K., Holzmann, G.J., Joshi, R. (eds.) NFM 2011. LNCS, vol. 6617, pp. 116–130. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  16. Gonthier, G., Ziliani, B., Nanevski, A., Dreyer, D.: How to make ad hoc proof automation less ad hoc. In: Chakravarty, M.M.T., Hu, Z., Danvy, O. (eds.) ICFP 2011, pp. 163–175. ACM (2011)

    Google Scholar 

  17. PRL Group. Implementing Mathematics with the Nuprl Proof Development System. Computer Science Department, Cornell University (1995), http://www.cs.cornell.edu/info/projects/nuprl/book/doc.html

  18. Hillenbrand, T., Buch, A., Vogt, R., Löchner, B.: Waldmeister: High performance equational deduction. Journal of Automated Reasoning 18(2), 265–270 (1997)

    Article  Google Scholar 

  19. Hurd, J.: System description: The Metis proof tactic. In: Benzmüller, C., Harrison, J., Schürmann, D. (eds.) ESHOL 2005, pp. 103–104 (2005), arXiv.org

    Google Scholar 

  20. Knuth, D., Bendix, P.: Simple word problems in universal algebras. In: Leech, J. (ed.) Computational Problems in Abstract Algebra, pp. 263–297. Pergamon Press (1970)

    Google Scholar 

  21. Löh, A., McBride, C., Swierstra, W.: A Tutorial Implementation of a Dependently Typed Lambda Calculus. In: Altenkirch, T., Uustalu, T. (eds.) Dependently Typed Programming. Fundamenta Informaticae, vol. 102(2), pp. 177–207. IOS Press (2010)

    Google Scholar 

  22. McBride, C.: Epigram: Practical Programming with Dependent Types. In: Vene, V., Uustalu, T. (eds.) AFP 2004. LNCS, vol. 3622, pp. 130–170. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  23. Miquel, A.: Le calcul des constructions implicite: syntaxe et sémantique. These de doctorat, Université Paris, 7 (2001)

    Google Scholar 

  24. Nordstrom, B., Petersson, K., Smith, J.M.: Programming in Martin-Löf’s Type Theory: An Introduction. Oxford University Press, USA (1990)

    Google Scholar 

  25. Norell, U.: Dependently Typed Programming in Agda. In: Koopman, P., Plasmeijer, R., Swierstra, D. (eds.) AFP 2008. LNCS, vol. 5832, pp. 230–266. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  26. Pierce, B.C. (ed.): Advanced topics in types and programming languages. The MIT Press (2005)

    Google Scholar 

  27. Pierce, B.C., Turner, D.N.: Local Type Inference. In: Pugh, W. (ed.) TOPLAS 2000, pp. 1–44. ACM (2000)

    Google Scholar 

  28. Pierce, B.C.: Types and programming languages. The MIT Press (2002)

    Google Scholar 

  29. Rudnicki, P., Urban, J.: Escape to ATP in Mizar. PxTP 2011 (2011)

    Google Scholar 

  30. Rushby, J.M.: Tutorial: Automated formal methods with PVS, SAL and Yices. In: Hung, D.V., Pandya, P. (eds.) SEFM 2006, p. 262. IEEE Press (2006)

    Google Scholar 

  31. Sutcliffe, G.: The TPTP problem library and associated infrastructure: The FOF and CNF parts, v3.5.0. Journal of Automated Reasoning 43(4), 337–362 (2009)

    Article  MATH  Google Scholar 

  32. Sutcliffe, G., Zimmer, J., Schulz, S.: TSTP data-exchange formats for automated theorem proving tools. In: Zhang, W., Sorge, V. (eds.) FroCoS 2004, pp. 201–215. IOS Press (2004)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Armstrong, A., Foster, S., Struth, G. (2012). Dependently Typed Programming Based on Automated Theorem Proving. In: Gibbons, J., Nogueira, P. (eds) Mathematics of Program Construction. MPC 2012. Lecture Notes in Computer Science, vol 7342. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-31113-0_12

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-31113-0_12

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-31112-3

  • Online ISBN: 978-3-642-31113-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics