Goto Chapter: Top 1 2 3 4 5 Bib Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

3 Primary Decomposition
 3.1 Properties
 3.2 Attributes

3 Primary Decomposition

3.1 Properties

3.1-1 IsPrimeZeroDim
‣ IsPrimeZeroDim( I )( property )

Returns: a LeftSubmodule

Determines if the zerodimensional ideal I is a prime ideal and eventually saves an element, which proofs that I is not prime.

gap> LoadPackage( "PrimaryDecomposition" );
true
gap> A := HomalgFieldOfRationalsInSingular( ) * "x";
Q[x]
gap> I1 := LeftSubmodule( "x^2 + 1", A );
<A principal torsion-free ideal given by a cyclic generator>
gap> IsPrimeZeroDim( I1 );
true
gap> I2 := LeftSubmodule( "(x-1)^2", A );
<A principal torsion-free ideal given by a cyclic generator>
gap> IsPrimeZeroDim( I2 );
false
gap> I2!.AZeroDivisor;
|[ x ]|
gap> I2!.ANilpotentElement;
|[ x ]|

3.1-2 IsPrimaryZeroDim
‣ IsPrimaryZeroDim( I )( property )

Returns: a LeftSubmodule

Determines if the zerodimensional ideal I is a primary ideal.

gap> LoadPackage( "PrimaryDecomposition" );
true
gap> A := HomalgFieldOfRationalsInSingular( ) * "x";
Q[x]
gap> I := LeftSubmodule( "x^2 - 2*x + 1", A );
<A principal torsion-free ideal given by a cyclic generator>
gap> IsPrimaryZeroDim( I );
true
gap> IsPrimeZeroDim( I );
false
gap> A := HomalgFieldOfRationalsInSingular( ) * " x,y,z";
Q[x,y,z]
gap> I := LeftSubmodule( "x^3-x, y*x^2-y,y^2-x^2,z-x*y", A );
<A torsion-free ideal given by 4 generators>
gap> IsPrimaryZeroDim( I );
false
gap> IsBound( I!.AZeroDivisor );
true
gap> I!.AZeroDivisor;
|[ x ]|
gap> A := HomalgRingOfIntegersInSingular( 3, "t,s" ) * "x,y";
GF(3)(t,s)[x,y]
gap> I := LeftSubmodule( "x- s*t, y-s", A );
<A torsion-free ideal given by 2 generators>
gap> IsPrimaryZeroDim( I^3 );
true

3.2 Attributes

3.2-1 PrimaryDecompositionZeroDim
‣ PrimaryDecompositionZeroDim( I )( attribute )

Returns: a list

Computes the primary decomposition of a zerodimensional ideal I.

gap> LoadPackage( "PrimaryDecomposition" );
true
gap> Q := HomalgFieldOfRationalsInSingular( );
Q
gap> A := Q["x,y,z"];
Q[x,y,z]
gap> I := LeftSubmodule( "y*z-x, x*z-y, y^2-z^2, x*y-z, x^2-z^2, z^3-z", A );
<A torsion-free ideal given by 6 generators>
gap> decI := PrimaryDecompositionZeroDim( I );
[ <A torsion-free ideal given by 3 generators>,
  <A torsion-free ideal given by 3 generators>,
  <A torsion-free ideal given by 3 generators>,
  <A torsion-free ideal given by 3 generators>,
  <A torsion-free ideal given by 3 generators> ]
gap> Perform( decI, Display );
z-1,
y+1,
x+1

An ideal generated by the 3 entries of the above matrix
z+1,
y-1,
x+1

An ideal generated by the 3 entries of the above matrix
z+1,
y+1,
x-1

An ideal generated by the 3 entries of the above matrix
z-1,
y-1,
x-1

An ideal generated by the 3 entries of the above matrix
z,
y,
x

An ideal generated by the 3 entries of the above matrix
gap> k := HomalgRingOfIntegersInSingular( 3, "t,r,s", Q );
GF(3)(t,r,s)
gap> A := k["x,y"];
GF(3)(t,r,s)[x,y]
gap> I1 := LeftSubmodule( "x-t, y", A );
<A torsion-free ideal given by 2 generators>
gap> I2 := LeftSubmodule( "x-s*t, y-s", A );
<A torsion-free ideal given by 2 generators>
gap> I := Intersect( I1^2, I2 );
<A torsion-free ideal given by 3 generators>
gap> decI := PrimaryDecompositionZeroDim( I );
[ <A torsion-free ideal given by 2 generators>,
  <A torsion-free ideal given by 3 generators> ]
gap> Perform( decI, Display );
y+(-s),
x+(-t*s)

An ideal generated by the 2 entries of the above matrix
y^2,
x*y+(-t)*y,
x^2+(t)*x+(t^2)

An ideal generated by the 3 entries of the above matrix
gap> Display( I1^2 );
x^2+(t)*x+(t^2),
x*y+(-t)*y,     
x*y+(-t)*y,     
y^2             

An ideal generated by the 4 entries of the above matrix
gap> A := k["x,y,z"];
GF(3)(t,r,s)[x,y,z]
gap> I1 := LeftSubmodule( "x-t, y, z-s", A );
<A torsion-free ideal given by 3 generators>
gap> I2 := LeftSubmodule( "x-s*t, y-s, z", A );
<A torsion-free ideal given by 3 generators>
gap> I3 := LeftSubmodule( "x-s*t^2, y-t-s, z-s^2", A );
<A torsion-free ideal given by 3 generators>
gap> I := Intersect( I1, I2^2, I3^2 );
<A torsion-free ideal given by 6 generators>
gap> decI := PrimaryDecompositionZeroDim( I );
[ <A torsion-free ideal given by 6 generators>,
  <A torsion-free ideal given by 6 generators>,
  <A torsion-free ideal given by 3 generators> ]
gap> Perform( decI, Display );
z^2+(s^2)*z+(s^4),
y*z+(-s^2)*y+(-t-s)*z+(t*s^2+s^3),
x*z+(-s^2)*x+(-t^2*s)*z+(t^2*s^3),
y^2+(t+s)*y+(t^2-t*s+s^2),
x*y+(-t-s)*x+(-t^2*s)*y+(t^3*s+t^2*s^2),
x^2+(t^2*s)*x+(t^4*s^2)

An ideal generated by the 6 entries of the above matrix
z^2,
y*z+(-s)*z,
x*z+(-t*s)*z,
y^2+(s)*y+(s^2),
x*y+(-s)*x+(-t*s)*y+(t*s^2),
x^2+(t*s)*x+(t^2*s^2)

An ideal generated by the 6 entries of the above matrix
z+(-s),
y,
x+(-t)

An ideal generated by the 3 entries of the above matrix
gap> I2^2 = decI[2];
true
gap> I3^2 = decI[1];
true
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 5 Bib Ind

generated by GAPDoc2HTML