On 19.07.20 01:01, John H Palmieri wrote:


On Saturday, July 18, 2020 at 2:57:21 PM UTC-7, Christian Nassau wrote:

    Hi Sverre,

    I don't think it's a good idea to have different zeroes in an
    algebraic structure that is also categorized as an abelian group,
    unless you take the point that a "graded abelian group" should not
    be an "abelian group".

    But let me also point out that something similar to what you want
    already exists: you can take a homogeneous component of the
    Steenrod algebra and look at its zero:

        sage: A=SteenrodAlgebra(2)
        sage: A[18]
        Vector space spanned by (Sq(0,1,0,1), Sq(3,0,0,1), Sq(1,1,2),
        Sq(4,0,2), Sq(2,3,1), Sq(5,2,1), Sq(8,1,1), Sq(11,0,1),
        Sq(0,6), Sq(3,5), Sq(6,4), Sq(9,3), Sq(12,2), Sq(15,1),
        Sq(18)) over Finite Field of size 2
        sage: A[18].zero() == A.zero()
        True
        sage: A[18].zero() == A[17].zero()
        False

    This suggests that "A[18].zero().degree()" could give 18, and the
    fact that it currently gives a ValueError might be considered a bug.


It could equally well give zero. Should A[18] remember that it's in degree 18, or should is just be an ungraded module?

I don't think zero makes much sense here. The suggestion seems to be to have in Sage an A[n] that represents homotopy classes of maps from a fixed suspension of HF2 to HF2. If this is the goal then elements of A[n] should always have x.degree() = n, and we would also need a multiplication A[n] * A[m] -> A[n+m]. Currently that product map does not exist in Sage:

   sage: A=SteenrodAlgebra(2)
   sage: A[3].an_element() * A[4].an_element()
   ---------------------------------------------------------------------------
   TypeError                                 Traceback (most recent
   call last)


   TypeError: unsupported operand parent(s) for *: 'Vector space
   spanned by (Sq(0,1), Sq(3)) over Finite Field of size 2' and 'Vector
   space spanned by (Sq(1,1), Sq(4)) over Finite Field of size 2'

Also, a quick test suggests that the M[n] notation is not part of a general framework in Sage, and that degrees of inhomogeneous elements are handled somewhat liberally in other places.  This might just reflect a "cultural" difference between topologists and combinatorialists, of course:

   sage: S=SymmetricFunctions(QQ)
   sage: S.an_element().degree()
   2
   sage: for x in S.an_element().monomials():
   ....:     print (x, x.degree())
   ....:
   s[] 0
   s[1] 1
   s[2] 2
   sage: S.zero().degree()
   0
   sage: S.graded_algebra() is S
   True






--
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/7d4b8529-56ff-d40b-da5d-99186f109ae0%40nullhomotopie.de.

Reply via email to