Dear list,

I have been involved in preparing a package by M. Catanzaro and R. Bruner 
lately, which implements finitely presented modules over the mod `p` 
Steenrod algebra.

We have encountered a conflict regarding how to present graded objects, and 
I am writing to the list to get other people's opinion on how to proceed on 
this matter.

Briefly, the issue is that the Steenrod algebra allows inhomogeneous 
elements and our graded modules do not.  Thus, the Steenrod algebra has a 
single zero element with no well defined degree, while our modules could 
potentially have one zero element for each degree.

My wish is to allow degreewise zero elements in our graded modules, so that 
x.degree() would return an integer for every element x.  But because the 
unique zero in the Steenrod algebra has no well defined degree, I am forced 
to let degree() treat all zero elements in our modules the same way and 
return ``None``.

A more precise description of the issue is found in the Sphinx note below.

My questions to the list are: Has similar issues been discussed and/or 
resolved before?  And more specificly: What acceptable changes could be 
made to the Steenrod algebra package to achieve what I want?

Regards,

Sverre Lunøe-Nielsen


.. NOTE::
Our implementation treats a graded module as the disjoint union, rather 
than a
direct sum, of vectorspaces of homogeneous elements.  Elements are 
therefore 
always homogeneous, which also implies that sums between elements of 
different
degrees are not allowed.  This also means that acting by an inhomogeneous
element of the Steenrod algebra makes no sense.

In this setting there is no single zero element, but rather a zero for every
degree.  It follows that, in theory, all elements, including the zero 
elements,
have a well defined degree.

This way of representing a graded object differs from the way the graded 
Steenrod algebra is represented by :class:`sage.algebras.steenrod` where 
inhomogeneous
elements are allowed and there is only a single zero element.  Consequently,
this zero element has no well defined degree.

Thus, because of the module action, we are forced to follow the same 
convention
when it comes to the degree of zero elements in a module:  The method
:meth:`sage.modules.finitely_presented_over_the_steenrod_algebra.module.fp_element.FP_Element.degree'
returns the value ``None`` for zero elements.

An example which highlights this problem is the following::

    sage: F = FPA_Module([0], SteenrodAlgebra(p=2))   # The free module on 
a single generator in degree 0.
    sage: g = F.generator(0)
    sage: x1 = Sq(1)*g
    sage: x2 = Sq(1)*x1

Clearly, the code implementing the module action has all the information it 
needs
to conclude that the element ``x2`` is the zero element in the second 
degree.
However, because of the module action, we cannot distinguish it from the 
element::

    sage: x2_ = (Sq(1) * Sq(1))*g

The latter is equal to the action of the zero element of the Steenrod
algebra on `g`, but since the zero element has no degree in the Steenrod 
algebra,
the module class cannot deduce what degree the zero element `x2_` should 
belong
to.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/50bab31f-182c-448e-bf35-b1bac90a8a75o%40googlegroups.com.

Reply via email to