Exploring abstract algebra in constructive type theory

  • Paul Jackson
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 814)


I describe my implementation of computational abstract algebra in the Nuprl system. I focus on my development of multivariate polynomials. I show how I use Nuprl's expressive type theory to define classes of free abelian monoids and free monoid algebras. These classes are combined to create a class of all implementations of polynomials. I discuss the issues of subtyping and computational content that came up in designing the class definitions. I give examples of relevant theory developments, tactics and proofs. I consider how Nuprl could act as an algebraic ‘oracle’ for a computer algebra system and the relevance of this work for abstract functional programming.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Mark Aagaard and Miriam Leeser. The implementation and proof of a boolean simplification system. Technical Report EE-CEG-90-2, Cornell School of Electrical Engineering, March 1990. In the Oxford Workshop on Designing Correct Circuits, September, 1990.Google Scholar
  2. 2.
    Anthony Bailey. Representing algebra in LEGO. Master's thesis, University of Edinburgh, November 1993.Google Scholar
  3. 3.
    David A. Basin and Robert L. Constable. Metalogical frameworks. In Gérard Huet and Gordon Plotkin, editors, Logical Environments. Cambridge University Press, 1993.Google Scholar
  4. 4.
    David A. Basin and Peter Del Vecchio. Verification of combinational logic in Nuprl. In M. E. Leeser and G. M. Brown, editors, Hardware Specification, Verification, and Synthesis: Mathematical Aspects, pages 333–357. Springer Verlag, 1990. LNCS 408.Google Scholar
  5. 5.
    Nicolas Bourbaki. Algebra, Part I. Elements of Mathematics. Addison-Wesley, 1974.Google Scholar
  6. 6.
    Jawahar Chirimar and Douglas J. Howe. Implementing constructive real analysis: Preliminary report. In Constructivity in Computer Science, volume 613 of Lecture Notes in Computer Science, pages 165–178. Springer-Verlag, 1992.Google Scholar
  7. 7.
    Edmund Clarke and Zhao Xudong. Analytica — a theorem prover in mathematica. In D. Kapur, editor, 11th Conference on Automated Deduction, volume 607 of Lecture Notes in Artifical Intelligence, pages 761–765. Springer-Verlag, 1992.Google Scholar
  8. 8.
    Robert Constable et al. Implementing Mathematics with The Nuprl Development System. Prentice-Hall, NJ, 1986.Google Scholar
  9. 9.
    William M. Farmer, Joshua D. Guttman, and F. Javier Thayer. Little theories. In D. Kapur, editor, 11th Conference on Automated Deduction, volume 607 of Lecture Notes in Artifical Intelligence, pages 567–581. Springer-Verlag, 1992.Google Scholar
  10. 10.
    Elsa L. Gunter. Doing algebra in simple type theory. Technical Report MS-CIS-89-38, Department of computer and Information Science, University of Pennsylvania, 1989.Google Scholar
  11. 11.
    John V. Guttag and James J. Horning. Larch: Languages and Tools for Formal Specification. Texts and Monographs in Computer Science. Springer-Verlag, 1993.Google Scholar
  12. 12.
    John Harrison and Laurent Thèry. Extending the HOL theorem prover with a computer algebra system to reason about the reals. In Proceedings of the HOL '93 Workshop on Higher Order Logic Theorem Proving and its Applications, 1993.Google Scholar
  13. 13.
    Douglas J. Howe. Implementing number theory: An experiment with Nuprl. In Eighth Conference on Automated Deduction, volume 230 of Lecture Notes in Computer Science, pages 404–415. Springer-Verlag, July 1987.Google Scholar
  14. 14.
    Douglas J. Howe. Automating Reasoning in an Implementation of Constructive Type Theory. PhD thesis, Cornell University, 1988.Google Scholar
  15. 15.
    Paul B. Jackson. Nuprl and its use in circuit design. In R.T. Boute V. Stavridou, T.F.Melham, editor, Proceedings of the 1992 International Conference on Theorem Provers in Circuit Design, IFIP Transactions A-10. North-Holland, 1992.Google Scholar
  16. 16.
    Paul B. Jackson. Enhancing the Nuprl Theorem Prover and Applying it to Constructive Algebra. PhD thesis, Cornell University, 1994. Forthcoming.Google Scholar
  17. 17.
    Richard D. Jenks and Robert S. Sutor. AXIOM: the Scientific Computation System. Springer-Verlag, 1992.Google Scholar
  18. 18.
    Serge Lang. Algebra. Addison-Wesley, 2nd edition, 1984.Google Scholar
  19. 19.
    Per Martin-Löf. Constructive mathematics and computer programming. In Sixth International Congress for Logic, Methodology, and Philosophy of Science, pages 153–175, Amsterdam, 1982. North Holland.Google Scholar
  20. 20.
    Ray Mines, Fred Richman, and Wim Ruitenburg. A Course in constructive Algebra. Universitext. Springer-Verlag, 1988.Google Scholar
  21. 21.
    John C. Mitchell and Gordon Plotkin. Abstract types have existential type. In Conference Record of the Twelfth Annual ACM Symposium on Principles of Programming Languages. Association for Computing Machinery, SIGACT, SIGPLAN, 1985.Google Scholar
  22. 22.
    Martin Wirsing. Algebraic specification. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, volume B: Formal Models and Semantics, chapter 13. Elsevier, 1990.Google Scholar
  23. 23.
    Richard Zippel. The Weyl computer algebra substrate. In Alfonso Miola, editor, Design and Implementation of Symbolic Computation Systems, volume 722 of Lecture Notes in Computer Science, pages 303–318. Springer Verlag, 1993.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • Paul Jackson
    • 1
  1. 1.Department of Computer ScienceCornell UniversityIthacaUSA

Personalised recommendations