[Next][Prev] [Right] [Left] [Up] [Index] [Root]

Elements of Modules

Subsections

Creation of Elements

M ! v : ModOrd, SeqEnum -> ModOrdElt
M ! v : ModOrd, ModOrdElt -> ModOrdElt
M ! v : ModOrd, ModElt -> ModOrdElt
Coerce v into an element of M. v can be a sequence of length dimension of M, a module element or vector or an element of another module over an order which is compatible with M.

Example ModOrd_coerce-quo (H65E4)

Let Mod and its submodules and quotient modules be as in the sub and quotient module example above.

> m := 4*Mod.1;
> m;
V: ([4, 0] [0, 0] [0, 0])
> Q1!m;
([0, 0] [0, 0] [0, 0])
> Q2!m;
([4, 0] [0, 0] [0, 0])
> m := Mod!m;
> Q3!m;
([4, 0] [0, 0] [0, 0])
> Q4!m;
([4, 0] [0, 0] [0, 0])

> S1!m; >> S1!m; ^ Runtime error in '!': Illegal coercion > S1!Mod!V!0; ([0, 0] [0, 0] [0, 0]) > S2!Mod!Mod.2; ([0, 0] [1, 0] [0, 0]) > S3!Mod!(4*Mod.1); ([4, 0] [0, 0] [0, 0])

Arithmetic with Elements

Basic arithmetic can be performed with elements of a module over an order.

x + y : ModOrdElt, ModOrdElt -> ModOrdElt
The sum of the module elements.
x - y : ModOrdElt, ModOrdElt -> ModOrdElt
The difference of the module elements.
u * c : ModOrdElt, RngElt -> ModOrdElt
c * u : RngElt, ModOrdElt -> ModOrdElt
The product of the module element u and the ring element c.
u / c : ModOrdElt, RngElt -> ModOrdElt
The product of u and 1/c if it lies in the parent module of u.
I * u : RngOrdIdl, ModOrdElt -> ModOrd
u * I : ModOrdElt, RngOrdIdl -> ModOrd
The module containing elements which are products of u and an element lying in I.

Other Functions on Elements

Elements of modules over order can be tested for equality and represented as a sequence.

x eq y : ModOrdElt, ModOrdElt -> Bool
Return true if x and y are the same element of a module.
ElementToSequence(a) : ModOrdElt -> SeqEnum
Eltseq(a) : ModOrdElt -> SeqEnum
The module element a expressed as a sequence.
 [Next][Prev] [Right] [Left] [Up] [Index] [Root]