Package sage :: Package algebras :: Module free_algebra_quotient :: Class FreeAlgebraQuotient
[hide private]
[frames] | no frames]

Class FreeAlgebraQuotient

source code

                      object --+                        
                               |                        
structure.sage_object.SageObject --+                    
                                   |                    
             structure.parent.Parent --+                
                                       |                
    structure.parent_base.ParentWithBase --+            
                                           |            
        structure.parent_gens.ParentWithGens --+        
                                               |        
                                 rings.ring.Ring --+    
                                                   |    
                                  rings.ring.Algebra --+
                                                       |
                                              object --+
                                                       |
                                                      FreeAlgebraQuotient
Known Subclasses:
quaternion_algebra.QuaternionAlgebra_generic

Instance Methods [hide private]
 
__init__(self, A, mons, mats, names)
Returns a quotient algebra defined via the action of a free algebra A on a (finitely generated) free module.
source code
 
__eq__(self, right) source code
 
__call__(self, x)
File: sage/rings/ring.pyx (starting at line 37) Coerce x into the ring.
source code
 
_coerce_impl(self, x)
Return the coercion of x into this free algebra quotient.
source code
 
_repr_(self) source code
 
__contains__(self, x)
y in x
source code
 
gen(self, i)
The i-th generator of the algebra.
source code
 
ngens(self)
The number of generators of the algebra.
source code
 
dimension(self)
The rank of the algebra (as a free module).
source code
 
matrix_action(self) source code
 
rank(self)
The rank of the algebra (as a free module).
source code
 
module(self)
The free module of the algebra.
source code
 
monoid(self)
The free monoid of generators of the algebra.
source code
 
monomial_basis(self)
The free monoid of generators of the algebra as elements of a free monoid.
source code
 
free_algebra(self)
The free algebra generating the algebra.
source code

Inherited from rings.ring.Algebra: __new__, characteristic

Inherited from rings.ring.Ring: __getitem__, __hash__, __iter__, __len__, __mul__, __rmul__, __rxor__, __xor__, _ideal_class_, base_extend, category, ideal, is_atomic_repr, is_commutative, is_exact, is_field, is_finite, is_integral_domain, is_noetherian, is_prime_field, is_ring, is_subring, one_element, order, principal_ideal, random_element, unit_ideal, zero_element, zero_ideal, zeta, zeta_order

Inherited from rings.ring.Ring (private): _r_action

Inherited from structure.parent_gens.ParentWithGens: __getslice__, __getstate__, __setstate__, _is_valid_homomorphism_, gens, gens_dict, hom, inject_variables, injvar, latex_name, latex_variable_names, list, objgen, objgens, variable_name, variable_names

Inherited from structure.parent_base.ParentWithBase: Hom, base, base_extend_canonical, base_extend_canonical_sym, base_extend_recursive, base_ring

Inherited from structure.parent.Parent: _coerce_, coerce_map_from, coerce_map_from_impl, construction, get_action, get_action_impl, has_coerce_map_from, has_coerce_map_from_impl, init_coerce

Inherited from structure.sage_object.SageObject: __repr__, _axiom_, _axiom_init_, _gap_, _gap_init_, _gp_, _gp_init_, _interface_, _interface_init_, _interface_is_cached_, _kash_, _kash_init_, _macaulay2_, _macaulay2_init_, _magma_, _magma_init_, _maple_, _maple_init_, _mathematica_, _mathematica_init_, _maxima_, _maxima_init_, _octave_, _octave_init_, _pari_, _pari_init_, _r_init_, _sage_, _singular_, _singular_init_, db, dump, dumps, plot, rename, reset_name, save, version

Inherited from object: __delattr__, __getattribute__, __reduce__, __reduce_ex__, __setattr__, __str__

Properties [hide private]

Inherited from structure.parent.Parent (private): _has_coerce_map_from

Inherited from object: __class__

Method Details [hide private]

__init__(self, A, mons, mats, names)
(Constructor)

source code 

Returns a quotient algebra defined via the action of a free algebra A
on a (finitely generated) free module.  The input for the quotient algebra
is a list of monomials (in the underlying monoid for A) which form a free
basis for the module of A, and a list of matrices, which give the action
of the free generators of A on this monomial basis.

EXAMPLES:

Quaternion algebra defined in terms of three generators:

    sage: n = 3
    sage: A = FreeAlgebra(QQ,n,'i')
    sage: F = A.monoid()
    sage: i, j, k = F.gens()
    sage: mons = [ F(1), i, j, k ]
    sage: M = MatrixSpace(QQ,4)
    sage: mats = [M([0,1,0,0, -1,0,0,0, 0,0,0,-1, 0,0,1,0]),  M([0,0,1,0, 0,0,0,1, -1,0,0,0, 0,-1,0,0]),  M([0,0,0,1, 0,0,-1,0, 0,1,0,0, -1,0,0,0]) ]
    sage: H3.<i,j,k> = FreeAlgebraQuotient(A,mons,mats)
    sage: x = 1 + i + j + k
    sage: x
    1 + i + j + k
    sage: x**128
    -170141183460469231731687303715884105728 + 170141183460469231731687303715884105728*i + 170141183460469231731687303715884105728*j + 170141183460469231731687303715884105728*k
    
Same algebra defined in terms of two generators, with some
penalty on already slow arithmetic.

    sage: n = 2
    sage: A = FreeAlgebra(QQ,n,'x')
    sage: F = A.monoid()
    sage: i, j = F.gens()
    sage: mons = [ F(1), i, j, i*j ]
    sage: r = len(mons)
    sage: M = MatrixSpace(QQ,r)
    sage: mats = [M([0,1,0,0, -1,0,0,0, 0,0,0,-1, 0,0,1,0]), M([0,0,1,0, 0,0,0,1, -1,0,0,0, 0,-1,0,0]) ]
    sage: H2.<i,j> = A.quotient(mons,mats)
    sage: k = i*j
    sage: x = 1 + i + j + k
    sage: x
    1 + i + j + i*j
    sage: x**128
    -170141183460469231731687303715884105728 + 170141183460469231731687303715884105728*i + 170141183460469231731687303715884105728*j + 170141183460469231731687303715884105728*i*j
    

Overrides: rings.ring.Algebra.__init__

__call__(self, x)
(Call operator)

source code 
File: sage/rings/ring.pyx (starting at line 37)

Coerce x into the ring.

Overrides: rings.ring.Ring.__call__
(inherited documentation)

_coerce_impl(self, x)

source code 

Return the coercion of x into this free algebra quotient.

The algebras that coerce into this quotient ring canonically, are:

   * this quotient algebra
   * anything that coerces into the algebra of which this is the quotient

Overrides: structure.parent.Parent._coerce_impl

__contains__(self, x)
(In operator)

source code 
y in x

Overrides: structure.parent.Parent.__contains__
(inherited documentation)

gen(self, i)

source code 

The i-th generator of the algebra.

Overrides: structure.parent_gens.ParentWithGens.gen

ngens(self)

source code 

The number of generators of the algebra.

Overrides: structure.parent_gens.ParentWithGens.ngens