# Algebra --- Classical Algebra, using Explicit Structures and Locales

This directory contains proofs in classical algebra. It is intended
as a base for any algebraic development in Isabelle. Emphasis is on
reusability. This is achieved by modelling algebraic structures
as first-class citizens of the logic (not axiomatic type classes, say).
The library is expected to grow in future releases of Isabelle.
Contributions are welcome.
## GroupTheory, including Sylow's Theorem

These proofs are mainly by Florian Kammüller. (Later, Larry
Paulson simplified some of the proofs.) These theories were indeed
the original motivation for locales.
Here is an outline of the directory's contents:

- Theory
`Group`

defines semigroups, monoids,
groups, commutative monoids, commutative groups, homomorphisms and the
subgroup relation. It also defines the product of two groups
(This theory was reimplemented by Clemens Ballarin).
- Theory
`FiniteProduct`

extends
commutative groups by a product operator for finite sets (provided by
Clemens Ballarin).
- Theory
`Coset`

defines
the factorization of a group and shows that the factorization a normal
subgroup is a group.
- Theory
`Bij`

defines bijections over sets and operations on them and shows that they
are a group. It shows that automorphisms form a group.
- Theory
`Exponent`

the
combinatorial argument underlying Sylow's first theorem.
- Theory
`Sylow`

contains a proof of the first Sylow theorem.

## Rings and Polynomials

- Theory
`CRing`

defines Abelian monoids and groups. The difference to commutative
structures is merely notational: the binary operation is
addition rather than multiplication. Commutative rings are
obtained by inheriting properties from Abelian groups and
commutative monoids. Further structures in the algebraic
hierarchy of rings: integral domain.
- Theory
`Module`

introduces the notion of a R-left-module over an Abelian group, where
R is a ring.
- Theory
`UnivPoly`

constructs univariate polynomials over rings and integral domains.
Degree function. Universal Property.

## Development of Polynomials using Type Classes

A development of univariate polynomials for HOL's ring classes
is available at `HOL/Library/Polynomial`

.

[Jacobson1985] Nathan Jacobson, Basic Algebra I, Freeman, 1985.

[Ballarin1999] Clemens Ballarin, Computer Algebra and Theorem Proving,
Author's PhD thesis, 1999. Also University of Cambridge, Computer Laboratory Technical Report number 473.

Clemens Ballarin.