Ideals of non-commutative rings¶
Generic implementation of one- and two-sided ideals of non-commutative rings.
AUTHOR:
- Simon King (2011-03-21), <simon.king@uni-jena.de>, Issue #7797. 
EXAMPLES:
sage: MS = MatrixSpace(ZZ,2,2)
sage: MS*MS([0,1,-2,3])
Left Ideal
(
  [ 0  1]
  [-2  3]
)
 of Full MatrixSpace of 2 by 2 dense matrices over Integer Ring
sage: MS([0,1,-2,3])*MS
Right Ideal
(
  [ 0  1]
  [-2  3]
)
 of Full MatrixSpace of 2 by 2 dense matrices over Integer Ring
sage: MS*MS([0,1,-2,3])*MS
Twosided Ideal
(
  [ 0  1]
  [-2  3]
)
 of Full MatrixSpace of 2 by 2 dense matrices over Integer Ring
>>> from sage.all import *
>>> MS = MatrixSpace(ZZ,Integer(2),Integer(2))
>>> MS*MS([Integer(0),Integer(1),-Integer(2),Integer(3)])
Left Ideal
(
  [ 0  1]
  [-2  3]
)
 of Full MatrixSpace of 2 by 2 dense matrices over Integer Ring
>>> MS([Integer(0),Integer(1),-Integer(2),Integer(3)])*MS
Right Ideal
(
  [ 0  1]
  [-2  3]
)
 of Full MatrixSpace of 2 by 2 dense matrices over Integer Ring
>>> MS*MS([Integer(0),Integer(1),-Integer(2),Integer(3)])*MS
Twosided Ideal
(
  [ 0  1]
  [-2  3]
)
 of Full MatrixSpace of 2 by 2 dense matrices over Integer Ring
See letterplace_ideal for a more
elaborate implementation in the special case of ideals in free
algebras.
- class sage.rings.noncommutative_ideals.IdealMonoid_nc(R)[source]¶
- Bases: - IdealMonoid_c- Base class for the monoid of ideals over a non-commutative ring. - Note - This class is essentially the same as - IdealMonoid_c, but does not complain about non-commutative rings.- EXAMPLES: - sage: MS = MatrixSpace(ZZ,2,2) sage: MS.ideal_monoid() Monoid of ideals of Full MatrixSpace of 2 by 2 dense matrices over Integer Ring - >>> from sage.all import * >>> MS = MatrixSpace(ZZ,Integer(2),Integer(2)) >>> MS.ideal_monoid() Monoid of ideals of Full MatrixSpace of 2 by 2 dense matrices over Integer Ring 
- class sage.rings.noncommutative_ideals.Ideal_nc(ring, gens, coerce=True, side='twosided')[source]¶
- Bases: - Ideal_generic- Generic non-commutative ideal. - All fancy stuff such as the computation of Groebner bases must be implemented in sub-classes. See - LetterplaceIdealfor an example.- EXAMPLES: - sage: MS = MatrixSpace(QQ,2,2) sage: I = MS*[MS.1,MS.2]; I Left Ideal ( [0 1] [0 0], [0 0] [1 0] ) of Full MatrixSpace of 2 by 2 dense matrices over Rational Field sage: [MS.1,MS.2]*MS Right Ideal ( [0 1] [0 0], [0 0] [1 0] ) of Full MatrixSpace of 2 by 2 dense matrices over Rational Field sage: MS*[MS.1,MS.2]*MS Twosided Ideal ( [0 1] [0 0], [0 0] [1 0] ) of Full MatrixSpace of 2 by 2 dense matrices over Rational Field - >>> from sage.all import * >>> MS = MatrixSpace(QQ,Integer(2),Integer(2)) >>> I = MS*[MS.gen(1),MS.gen(2)]; I Left Ideal ( [0 1] [0 0], <BLANKLINE> [0 0] [1 0] ) of Full MatrixSpace of 2 by 2 dense matrices over Rational Field >>> [MS.gen(1),MS.gen(2)]*MS Right Ideal ( [0 1] [0 0], <BLANKLINE> [0 0] [1 0] ) of Full MatrixSpace of 2 by 2 dense matrices over Rational Field >>> MS*[MS.gen(1),MS.gen(2)]*MS Twosided Ideal ( [0 1] [0 0], <BLANKLINE> [0 0] [1 0] ) of Full MatrixSpace of 2 by 2 dense matrices over Rational Field - side()[source]¶
- Return a string that describes the sidedness of this ideal. - EXAMPLES: - sage: # needs sage.combinat sage: A = SteenrodAlgebra(2) sage: IL = A*[A.1+A.2,A.1^2] sage: IR = [A.1+A.2,A.1^2]*A sage: IT = A*[A.1+A.2,A.1^2]*A sage: IL.side() 'left' sage: IR.side() 'right' sage: IT.side() 'twosided' - >>> from sage.all import * >>> # needs sage.combinat >>> A = SteenrodAlgebra(Integer(2)) >>> IL = A*[A.gen(1)+A.gen(2),A.gen(1)**Integer(2)] >>> IR = [A.gen(1)+A.gen(2),A.gen(1)**Integer(2)]*A >>> IT = A*[A.gen(1)+A.gen(2),A.gen(1)**Integer(2)]*A >>> IL.side() 'left' >>> IR.side() 'right' >>> IT.side() 'twosided'