HaskellForMaths-0.4.1: Combinatorics, group theory, commutative algebra, non-commutative algebra

Math.Algebras.Commutative

Description

A module defining the algebra of commutative polynomials over a field k

Synopsis

# Documentation

data GlexMonomial v Source

Constructors

 Glex Int [(v, Int)]

Instances

 Monomial GlexMonomial Num k => Coalgebra k (GlexMonomial v) (Num k, Ord v) => Algebra k (GlexMonomial v) Eq v => Eq (GlexMonomial v) Ord v => Ord (GlexMonomial v) Show v => Show (GlexMonomial v) Ord v => DivisionBasis (GlexMonomial v)

glexVar :: Num k => v -> GlexPoly k vSource

glexVar creates a variable in the algebra of commutative polynomials with Glex term ordering. For example, the following code creates variables called x, y and z:

``` [x,y,z] = map glexVar ["x","y","z"] :: GlexPoly Q String
```

class Monomial m whereSource

Methods

var :: v -> Vect Q (m v)Source

powers :: m v -> [(v, Int)]Source

Instances

 Monomial GlexMonomial Monomial SL2

bind :: (Monomial m, Num k, Ord b, Show b, Algebra k b) => Vect k (m v) -> (v -> Vect k b) -> Vect k bSource

In effect, we have (Num k, Monomial m) => Monad (v -> Vect k (m v)), with return = var, and (>>=) = bind. However, we can't express this directly in Haskell, firstly because of the Ord b constraint, secondly because Haskell doesn't support type functions.

class DivisionBasis b whereSource

Methods

dividesB :: b -> b -> BoolSource

divB :: b -> b -> bSource

Instances

 Ord v => DivisionBasis (GlexMonomial v)

(%%) :: (Fractional k, Ord b, Show b, Algebra k b, DivisionBasis b) => Vect k b -> [Vect k b] -> Vect k bSource

(%%) reduces a polynomial with respect to a list of polynomials.