constructive-algebra-0.3.0: A library of constructive algebra.

Algebra.Ideal

Description

Finitely generated ideals in commutative rings.

Synopsis

# Documentation

data CommutativeRing a => Ideal a Source

Ideals characterized by their list of generators.

Constructors

 Id [a]

Instances

 (CommutativeRing a, Show a) => Show (Ideal a) (CommutativeRing a, Arbitrary a, Eq a) => Arbitrary (Ideal a)

The zero ideal.

Test if an ideal is principal.

eval :: CommutativeRing a => a -> Ideal a -> aSource

Evaluate the ideal at a certain point.

addId :: (CommutativeRing a, Eq a) => Ideal a -> Ideal a -> Ideal aSource

mulId :: (CommutativeRing a, Eq a) => Ideal a -> Ideal a -> Ideal aSource

Multiplication of ideals.

isSameIdeal :: (CommutativeRing a, Eq a) => (Ideal a -> Ideal a -> (Ideal a, [[a]], [[a]])) -> Ideal a -> Ideal a -> BoolSource

Test if an operations compute the correct ideal. The operation should give a witness that the comuted ideal contains the same elements.

If [ x_1, ..., x_n ] `op` [ y_1, ..., y_m ] = [ z_1, ..., z_l ]

Then the witness should give that

z_k = a_k1 * x_1 + ... + a_kn * x_n = b_k1 * y_1 + ... + b_km * y_m

This is used to check that the intersection computed is correct.

zeroIdealWitnesses :: CommutativeRing a => [a] -> [a] -> (Ideal a, [[a]], [[a]])Source

Compute witnesses for two lists for the zero ideal. This is used when computing the intersection of two ideals.