Category of Lambda rings

Category of Lambda Rings


sage: from msinvar.lambda_rings import LambdaRings
sage: R=PolynomialRing(QQ, 'x')
sage: LambdaRings.add_ring(R)
sage: x=R.gen(); (1+x).adams(2)
x^2 + 1
class msinvar.lambda_rings.LambdaRings(s=None)[source]

Bases: sage.categories.category_singleton.Category_singleton

The category of lambda-rings – commutative rings with plethystic operations.

To add a parent to the category one needs to call: LambdaRings.add_ring().


sage: from msinvar.lambda_rings import LambdaRings
sage: R=PolynomialRing(QQ,2,'x,y')
sage: LambdaRings.add_ring(R)
sage: x,y=R.gens()
sage: (x+y).adams(2)
x^2 + y^2

We can add an existing parent to lambda-rings, or we can use the init method of a parent. For example, msinvar.tm_polynomials.TMPoly is automatically equipped with a lambda-ring structure.


sage: from msinvar import TMPoly
sage: R1=TMPoly(R,1,'z'); z=R1.gen()
sage: (x*z).adams(2)

The default adams operation is default_adams(). To override it one should define a new method adams() in the parent or in the element class.

For existing parent instances to override the default adams operation one can call:

LambdaRings.add_ring(R, adams)

where adams is the new adams operation.

static add_ring(R, adams=None)[source]

Add R to the category of lambda-rings.

In particular, equip R and its elements with the adams operation.


Return the immediate super categories of self.

msinvar.lambda_rings.default_adams(f, n)[source]

Return the default adams operation.

It raises all variables in f to the n-th power.