next | previous | forward | backward | up | index | toc

ringProduct -- compute the product of a list of rings

Synopsis

• Usage:
M = ringProduct(L)
• Inputs:
• Optional inputs:
• Variable => ..., default value null, set the name for new variables created by the function
• Outputs:
• M, a list, a list with a product of the rings input, and information about its structure

Description

Given a list of rings, of finite type over the same coefficient ring, this computes a ring isomorphic to a product of the rings. It returns a list with three entries. First is the ring. Second is the list of orthogonal idempotents. Finally, it lists where the variables of each of the rings in the list go in the new ring.

 i1 : R = QQ[a]; i2 : S = QQ[b]; i3 : T = QQ[c]; i4 : L = ringProduct({R,S}) QQ[aRE0RE0, e0, bRE1RE1, e1] o4 = {---------------------------------------------------------, 2 (e0 + e1 - 1, e1 - e1, bRE1RE1*e1 - bRE1RE1, aRE0RE0*e1) ------------------------------------------------------------------------ MutableList{...2...}, {{aRE0RE0}, {bRE1RE1}}} o4 : List i5 : ringProduct({R,S,T}) QQ[aRE0RE0, e0, bRE1RE1, e1, cRE2R o5 = {----------------------------------------------------------------------- 2 2 (e0 + e1 + e2 - 1, e2 - e2, cRE2RE2*e2 - cRE2RE2, e1*e2, e1 - e1, bRE ------------------------------------------------------------------------ E2, e2] -------------------------------------------, MutableList{...3...}, 1RE1*e1 - bRE1RE1, aRE0RE0*e1 + aRE0RE0*e2) ------------------------------------------------------------------------ {{aRE0RE0}, {bRE1RE1}, {cRE2RE2}}} o5 : List

The third entry in the list correspond to the elements $(x,0)$ and $(0,y)$ in the product of rings.

 i6 : R = QQ[x]; i7 : S = QQ[y,z]; i8 : L = ringProduct({R,S}); i9 : newx = L#2#0#0; i10 : newy = L#2#1#0; i11 : newz = L#2#1#1; i12 : newx*newy==0 o12 = true i13 : newx*newz==0 o13 = true i14 : newy*newz==0 o14 = false

Ways to use ringProduct :

• ringProduct(List)

For the programmer

The object ringProduct is .