def __init__(self, R, names=None): """ Initialize ``self``. TESTS:: sage: A = algebras.FreePreLie(QQ, '@'); A Free PreLie algebra on one generator ['@'] over Rational Field sage: TestSuite(A).run() sage: A = algebras.FreePreLie(QQ, None); A Free PreLie algebra on one generator ['o'] over Rational Field sage: F = algebras.FreePreLie(QQ, 'xy') sage: TestSuite(F).run() # long time """ if names is None: Trees = RootedTrees() key = RootedTree.sort_key self._alphabet = Alphabet(['o']) else: Trees = LabelledRootedTrees() key = LabelledRootedTree.sort_key self._alphabet = names # Here one would need LabelledRootedTrees(names) # so that one can restrict the labels to some fixed set cat = MagmaticAlgebras(R).WithBasis().Graded() & LieAlgebras( R).WithBasis().Graded() CombinatorialFreeModule.__init__(self, R, Trees, latex_prefix="", sorting_key=key, category=cat)
def __init__(self, R, names=None): """ Initialize ``self``. TESTS:: sage: A = algebras.FreePreLie(QQ, '@'); A Free PreLie algebra on one generator ['@'] over Rational Field sage: TestSuite(A).run() sage: F = algebras.FreePreLie(QQ, 'xy') sage: TestSuite(F).run() # long time sage: F = algebras.FreePreLie(QQ, ZZ) sage: elts = F.some_elements()[:-1] # Skip the last element sage: TestSuite(F).run(some_elements=elts) # long time """ if names.cardinality() == 1: Trees = RootedTrees() else: Trees = LabelledRootedTrees() # Here one would need LabelledRootedTrees(names) # so that one can restrict the labels to some fixed set self._alphabet = names cat = MagmaticAlgebras(R).WithBasis().Graded() CombinatorialFreeModule.__init__(self, R, Trees, latex_prefix="", category=cat)