def __init__(self, R, p): """ Initialize ``self``. EXAMPLES:: sage: L = lie_algebras.pwitt(GF(5), 5); L The 5-Witt Lie algebra over Finite Field of size 5 sage: TestSuite(L).run() We skip the grading test as we need to be able to echelonize a matrix over the base ring as part of the test:: sage: L = lie_algebras.pwitt(Zmod(6), 6) sage: TestSuite(L).run(skip="_test_grading") """ if R(p) != 0: raise ValueError("{} is not 0 in {}".format(p, R)) cat = LieAlgebras(R).FiniteDimensional().WithBasis().Graded() FinitelyGeneratedLieAlgebra.__init__(self, R, index_set=list(range(p)), category=cat) IndexedGenerators.__init__(self, list(range(p)), prefix='d', bracket='[') self._p = p
def __init__(self, g, kac_moody): """ Initalize ``self``. EXAMPLES:: sage: asl = lie_algebras.Affine(QQ, ['A',4,1]) sage: TestSuite(asl).run() """ self._g = g self._cartan_type = g.cartan_type().affine() R = g.base_ring() names = list(g.variable_names()) + ['e0', 'f0', 'c'] if kac_moody: names += ['d'] self._kac_moody = kac_moody names = tuple(names) self._ordered_indices = names cat = LieAlgebras(R).WithBasis() FinitelyGeneratedLieAlgebra.__init__(self, R, names, names, category=cat)
def __init__(self, R, p): """ Initialize ``self``. EXAMPLES:: sage: L = lie_algebras.pwitt(GF(5), 5); L The 5-Witt Lie algebra over Finite Field of size 5 sage: TestSuite(L).run() sage: L = lie_algebras.pwitt(Zmod(6), 6) sage: TestSuite(L).run() # not tested -- universal envelope doesn't work sage: L._test_jacobi_identity() """ if R(p) != 0: raise ValueError("{} is not 0 in {}".format(p, R)) cat = LieAlgebras(R).FiniteDimensional().WithBasis() FinitelyGeneratedLieAlgebra.__init__(self, R, index_set=list(range(p)), category=cat) IndexedGenerators.__init__(self, list(range(p)), prefix='d', bracket='[') self._p = p
def __init__(self, R, s_coeff, names, index_set, category=None, prefix=None, bracket=None, latex_bracket=None, string_quotes=None, **kwds): """ Initialize ``self``. EXAMPLES:: sage: L = LieAlgebra(QQ, 'x,y', {('x','y'): {'x':1}}) sage: TestSuite(L).run() """ default = (names != tuple(index_set)) if prefix is None: if default: prefix = 'L' else: prefix = '' if bracket is None: bracket = default if latex_bracket is None: latex_bracket = default if string_quotes is None: string_quotes = default #self._pos_to_index = dict(enumerate(index_set)) self._index_to_pos = {k: i for i,k in enumerate(index_set)} if "sorting_key" not in kwds: kwds["sorting_key"] = self._index_to_pos.__getitem__ cat = LieAlgebras(R).WithBasis().FiniteDimensional().or_subcategory(category) FinitelyGeneratedLieAlgebra.__init__(self, R, names, index_set, cat) IndexedGenerators.__init__(self, self._indices, prefix=prefix, bracket=bracket, latex_bracket=latex_bracket, string_quotes=string_quotes, **kwds) self._M = FreeModule(R, len(index_set)) # Transform the values in the structure coefficients to elements def to_vector(tuples): vec = [R.zero()]*len(index_set) for k,c in tuples: vec[self._index_to_pos[k]] = c vec = self._M(vec) vec.set_immutable() return vec self._s_coeff = {(self._index_to_pos[k[0]], self._index_to_pos[k[1]]): to_vector(s_coeff[k]) for k in s_coeff.keys()}
def __init__(self, R, p): """ Initialize ``self``. EXAMPLES:: sage: L = lie_algebras.pwitt(GF(5), 5); L The 5-Witt Lie algebra over Finite Field of size 5 sage: TestSuite(L).run() sage: L = lie_algebras.pwitt(Zmod(6), 6) sage: TestSuite(L).run() # not tested -- universal envelope doesn't work sage: L._test_jacobi_identity() """ cat = LieAlgebras(R).FiniteDimensional().WithBasis() FinitelyGeneratedLieAlgebra.__init__(self, R, index_set=range(p), category=cat) IndexedGenerators.__init__(self, range(p), prefix='d', bracket='[') self._p = p
def __init__(self, lie, basis_name): """ Initialize ``self``. EXAMPLES:: sage: L.<x, y> = LieAlgebra(QQ) sage: L.Hall() doctest:warning ... FutureWarning: The Hall basis has not been fully proven correct, but currently no bugs are known See http://trac.sagemath.org/16823 for details. Free Lie algebra generated by (x, y) over Rational Field in the Hall basis """ self._basis_name = basis_name IndexedGenerators.__init__(self, lie._indices, prefix='', bracket=False) FinitelyGeneratedLieAlgebra.__init__(self, lie.base_ring(), names=lie._names, index_set=lie._indices, category=FreeLieAlgebraBases(lie))