# Exploring abstract algebra in constructive type theory

Conference paper

First Online:

## Abstract

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.

## Preview

Unable to display preview. Download preview PDF.

## References

- 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.Anthony Bailey. Representing algebra in LEGO. Master's thesis, University of Edinburgh, November 1993.Google Scholar
- 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.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.Nicolas Bourbaki.
*Algebra, Part I*. Elements of Mathematics. Addison-Wesley, 1974.Google Scholar - 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.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.Robert Constable
*et al. Implementing Mathematics with The Nuprl Development System*. Prentice-Hall, NJ, 1986.Google Scholar - 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.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.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.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.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.Douglas J. Howe.
*Automating Reasoning in an Implementation of Constructive Type Theory*. PhD thesis, Cornell University, 1988.Google Scholar - 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.Paul B. Jackson.
*Enhancing the Nuprl Theorem Prover and Applying it to Constructive Algebra*. PhD thesis, Cornell University, 1994. Forthcoming.Google Scholar - 17.Richard D. Jenks and Robert S. Sutor.
*AXIOM: the Scientific Computation System*. Springer-Verlag, 1992.Google Scholar - 18.Serge Lang.
*Algebra*. Addison-Wesley, 2nd edition, 1984.Google Scholar - 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.Ray Mines, Fred Richman, and Wim Ruitenburg.
*A Course in constructive Algebra*. Universitext. Springer-Verlag, 1988.Google Scholar - 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.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.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