def __init__(self, R): """ Initialize ``self``. EXAMPLES:: sage: TestSuite(SymmetricFunctionsNonCommutingVariables(QQ).dual()).run() """ self._base = R # Won't be needed once CategoryObject won't override base_ring category = GradedHopfAlgebras(R) # TODO: .Commutative() Parent.__init__(self, category=category.WithRealizations()) # Bases w = self.w() # Embedding of Sym in the homogeneous bases into DNCSym in the w basis Sym = SymmetricFunctions(self.base_ring()) Sym_h_to_w = Sym.h().module_morphism( w.sum_of_partitions, triangular='lower', inverse_on_support=w._set_par_to_par, codomain=w, category=category) Sym_h_to_w.register_as_coercion() self.to_symmetric_function = Sym_h_to_w.section()
def __init__(self, R): """ Initialize ``self``. EXAMPLES:: sage: NCSymD1 = SymmetricFunctionsNonCommutingVariablesDual(FiniteField(23)) sage: NCSymD2 = SymmetricFunctionsNonCommutingVariablesDual(Integers(23)) sage: TestSuite(SymmetricFunctionsNonCommutingVariables(QQ).dual()).run() """ # change the line below to assert(R in Rings()) once MRO issues from #15536, #15475 are resolved assert(R in Fields() or R in Rings()) # side effect of this statement assures MRO exists for R self._base = R # Won't be needed once CategoryObject won't override base_ring category = GradedHopfAlgebras(R) # TODO: .Commutative() Parent.__init__(self, category=category.WithRealizations()) # Bases w = self.w() # Embedding of Sym in the homogeneous bases into DNCSym in the w basis Sym = SymmetricFunctions(self.base_ring()) Sym_h_to_w = Sym.h().module_morphism(w.sum_of_partitions, triangular='lower', inverse_on_support=w._set_par_to_par, codomain=w, category=category) Sym_h_to_w.register_as_coercion() self.to_symmetric_function = Sym_h_to_w.section()
def __init__(self, R): """ The Hopf algebra of quasi-symmetric functions. See ``QuasiSymmetricFunctions`` for full documentation. EXAMPLES:: sage: QuasiSymmetricFunctions(QQ) Quasisymmetric functions over the Rational Field sage: TestSuite(QuasiSymmetricFunctions(QQ)).run() """ assert R in Rings() self._base = R # Won't be needed once CategoryObject won't override base_ring category = GradedHopfAlgebras(R) # TODO: .Commutative() Parent.__init__(self, category=category.WithRealizations()) # Bases Monomial = self.Monomial() Fundamental = self.Fundamental() dualImmaculate = self.dualImmaculate() # Change of bases Fundamental.module_morphism(Monomial.sum_of_finer_compositions, codomain=Monomial, category=category).register_as_coercion() Monomial.module_morphism( Fundamental.alternating_sum_of_finer_compositions, codomain=Fundamental, category=category).register_as_coercion() #This changes dualImmaculate into Monomial dualImmaculate.module_morphism( dualImmaculate._to_Monomial_on_basis, codomain=Monomial, category=category).register_as_coercion() #This changes Monomial into dualImmaculate Monomial.module_morphism(dualImmaculate._from_Monomial_on_basis, codomain=dualImmaculate, category=category).register_as_coercion() # Embedding of Sym into QSym in the monomial bases Sym = SymmetricFunctions(self.base_ring()) Sym_m_to_M = Sym.m().module_morphism( Monomial.sum_of_partition_rearrangements, triangular='upper', inverse_on_support=Monomial._comp_to_par, codomain=Monomial, category=category) Sym_m_to_M.register_as_coercion() self.to_symmetric_function = Sym_m_to_M.section()