Skip to main content

A System for Axiomatic Programming

  • Conference paper
Intelligent Computer Mathematics (CICM 2012)

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 7362))

Included in the following conference series:

Abstract

We present the design and implementation of a system for axiomatic programming, and its application to mathematical software construction. Key novelties include a direct support for user-defined axioms establishing local equalities between types, and overload resolution based on equational theories and user-defined local axioms. We illustrate uses of axioms, and their organization into concepts, in structured generic programming as practiced in computational mathematical systems.

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

Access this chapter

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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Augustsson, L.: Implementing Haskell Overloading. In: Functional Programming Languages and Computer Architecture, pp. 65–73 (1993)

    Google Scholar 

  2. Davenport, J.H.: Private communication (May 2009)

    Google Scholar 

  3. Davenport, J.H., Gianni, P., Trager, B.M.: Scratchpad’s View of Algebra II: A Categorical View of Factorization. In: ISSAC 1991: Proceedings of the 1991 International Symposium on Symbolic and Algebraic Computation, pp. 32–38. ACM Press, New York (1991)

    Chapter  Google Scholar 

  4. Davenport, J.H., Trager, B.M.: Scratchpad’s View of Algebra I: Basic Commutative Algebra. In: Miola, A. (ed.) DISCO 1990. LNCS, vol. 429, pp. 40–54. Springer, Heidelberg (1990)

    Chapter  Google Scholar 

  5. Dehnert, J.C., Stepanov, A.: Fundamentals of Generic Programming. In: Jazayeri, M., Musser, D.R., Loos, R.G.K. (eds.) Dagstuhl Seminar 1998. LNCS, vol. 1766, pp. 1–11. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  6. Reis, G.D.: Generic Programming in C++: The next level. In: The Association of C and C++ Users Spring Conference (April 2002)

    Google Scholar 

  7. Reis, G.D., Stroustrup, B.: Specifying C++ Concepts. In: Conference Record of POPL 2006: The 33th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Charleston, South Carolina, USA, pp. 295–308 (2006)

    Google Scholar 

  8. Reis, G.D., Stroustrup, B.: General Constant Expressions for System Programming Languages. In: Proceedings of the 25th Symposium on Applied Computing, Sierre, Switzerland, pp. 2133–2138. ACM Press (March 2010)

    Google Scholar 

  9. Reis, G.D., Stroustrup, B., Meredith, A.: Axioms: Semantics Aspects of C++ Concepts. Technical Report N2887=09-0077, ISO/IEC SC22/JTC1/WG21 (June 2009), http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2887.pdf

  10. Gregor, D., Järvi, J., Siek, J., Stroustrup, B., Reis, G.D., Lumsdaine, A.: Concepts: Linguistic Support for Generic Programming in C++. In: OOPSLA 2006: Proceedings of the 21st Annual ACM SIGPLAN Conference on Object-Oriented Programming Languages, Systems, and Applications, pp. 291–310. ACM Press, New York (2006)

    Chapter  Google Scholar 

  11. Hall, C.V., Hammond, K., Jones, S.P., Wadler, P.L.: Type classes in Haskell. ACM Transactions on Programming Languages and Systems 18(2), 109–138 (1996)

    Article  Google Scholar 

  12. International Organization for Standards. International Standard ISO/IEC 14882. Programming Languages — C++, 2nd edn. (2003)

    Google Scholar 

  13. Jenks, R.D., Sutor, R.S.: AXIOM: The Scientific Computation System. Springer (1992)

    Google Scholar 

  14. Jenks, R.D., Trager, B.M.: A Language for Computational Algebra. SIGPLAN Not. 16(11), 22–29 (1981)

    Article  Google Scholar 

  15. Musser, D.A., Stepanov, A.A.: Generic Programming. In: Gianni, P. (ed.) ISSAC 1988. LNCS, vol. 358, pp. 13–25. Springer, Heidelberg (1989)

    Chapter  Google Scholar 

  16. Musser, D.R., Stepanov, A.: Algorithm-oriented Generic Libraries. Software–Practice and Experience 24(7), 623–642 (1994)

    Article  Google Scholar 

  17. Jones, S.P.: Haskell 98 Language and Libraries, The Revised Report. Cambridge University Press (2003)

    Google Scholar 

  18. Stepanov, A., Lee, M.: The Standard Template Library. Technical Report N0482=94-0095, ISO/IEC SC22/JTC1/WG21 (May 1994)

    Google Scholar 

  19. Stepanov, A., McJones, P.: Elements of Programming. Addison-Wesley (2009)

    Google Scholar 

  20. Stroustrup, B.: The Design and Evolution of C++. Addison-Wesley (1994)

    Google Scholar 

  21. Stroustrup, B.: The C++ Programming Language, special edn. Addison-Wesley (2000)

    Google Scholar 

  22. Stroustrup, B.: Simplifying the use of concepts. Technical Report N2906, ISO/IEC SC22/JTC1/WG21 (June 2009)

    Google Scholar 

  23. Stroustrup, B.: The C++0x ”Remove Concepts” Decision. Dr. Dobb’s Journal (2009), http://www.ddj.com/cpp/218600111?pgno=1 , Republished with permission in Overload Journal 92 (August 2009)

  24. Sutton, A., Stroustrup, B.: Design of Concept Libraries for C++. In: Sloane, A., Aßmann, U. (eds.) SLE 2011. LNCS, vol. 6940, pp. 97–118. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  25. Tucker Taft, S., Duff, R.A., Brukardt, R.L., Plödereder, E. (eds.): Consolidated Ada Reference Manual. LNCS, vol. 2219. Springer, Heidelberg (2001)

    MATH  Google Scholar 

  26. Wadler, P., Blott, S.: How to make ad-hoc polymorphism less ad hoc. In: Proceedings of the 16th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Austin, Texas, USA, pp. 60–76 (1989)

    Google Scholar 

  27. Watt, S.: What Happened to Languages for Symbolic Mathematical Computation? In: Proceedings of Programming Languages for Mechanized Mathematics (PLMMS), Hagenberg, Austria, June 29-30, pp. 81–90. RISC-Linz (2007)

    Google Scholar 

  28. Weibel, T., Gonnet, G.H.: An Assume Facility for CAS, with a Sample Implementation for Maple. In: Fitch, J. (ed.) DISCO 1992. LNCS, vol. 721, pp. 95–103. Springer, Heidelberg (1993)

    Chapter  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

Dos Reis, G. (2012). A System for Axiomatic Programming. In: Jeuring, J., et al. Intelligent Computer Mathematics. CICM 2012. Lecture Notes in Computer Science(), vol 7362. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-31374-5_20

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-31374-5_20

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-31373-8

  • Online ISBN: 978-3-642-31374-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics