How to define module multiplication?

30 views
Skip to first unread message

John H Palmieri

unread,
Sep 19, 2023, 7:34:05 PM9/19/23
to sage-support
The mod 2 cohomology of a simplicial complex has the structure of a module over the mod 2 Steenrod algebra. I would like to be able to do this in Sage:

    sage: x  = (some element in a cohomology ring)
    sage: a = (some element of SteenrodAlgebra(2))
    sage: a * x

I have tried telling Sage that instances of CohomologyRing should be left modules over the Steenrod algebra (using the category framework) and then defining _mul_, _rmul_, _lmul_. I have had no luck: I just get

    TypeError: unsupported operand parent(s) for *: 'mod 2 Steenrod algebra, milnor basis' and 'Cohomology ring of RP^6 over Finite Field of size 2'

What should I be doing instead?

--
John

Kwankyu

unread,
Sep 20, 2023, 5:08:15 AM9/20/23
to sage-support
Is you element in the cohomology ring an instance of ModuleElement?

Kwankyu

unread,
Sep 20, 2023, 5:11:52 AM9/20/23
to sage-support
sage.rings.function_field.differential defines the space of differentials of a function field, which is a left module over the function field. You may consult the code there.

John H Palmieri

unread,
Sep 20, 2023, 1:51:40 PM9/20/23
to sage-support
Very good, thank you. The "_acted_upon_" method was what I was missing.

  John
Reply all
Reply to author
Forward
0 new messages