# How to make a vector space with basis a *graded* one, and how to do linear algebra on its homogeneous parts?

I was sent here from StackOverflow.

I have a vector space with given basis (it is also a Hopf algebra, but this is not part of the problem). How do I make it into a graded vector space? E. g., I know that in order to make it into an algebra, I have to define a function called product_on_basis somewhere in its definition, and that in order to make it into a coalgebra, I have to define a function called coproduct_on_basis; but what function do I have to define in order to make it into a graded vector space? How can I find out the name of this function? (It is not given in http://www.sagemath.org/doc/reference... . I know the names of the functions for the multiplication and the comultiplication from python2.6/site-packages/sage/categories/examples/hopf_algebras_with_basis.py , but I don't see such a .py file for graded vector spaces.)

Once this is done, I would like to do linear algebra on the graded components. They are each finite-dimensional, with basis a part of the combinatorial basis of the big space, so there shouldn't be any problem. I have defined two maps and want to know, e. g., whether the image of one lies inside the image of the other. Is there an abstract way to do this in Sage or do I have to translate these maps into matrices?

Context (not important): I have (successfully, albeit stupidly) implemented the Malvenuto-Reutenauer Hopf algebra of permutations:

html version resp. sws file

Now I want to check some of its properties. This checking cannot be automated on the whole space, but it is a finite problem on each of its graded components, so I would like to check it, say, on the fifth one.

edit retag close merge delete

Sort by ยป oldest newest most voted

You can get some information from the answers to this question.

more

Okay, John, thanks - I did it at last. I didn't expect that writing everything as a matrix would be as simple as it turned out to be.

( 2012-02-27 22:35:54 +0200 )edit

I think CombinatorialFreeModule and CombinatorialAlgebra are the places to start.

The most sophisticated graded Hopf algebras implemented in Sage are, I think, the Steenrod Algebras (Also see the online source code), so that implementation may give you some ideas too.

Good luck -- I am personally interested in computations with differential graded algebras so I would love to see how you implement your classes.

more

Thanks for the link to the Steenrod algebra! I got the function, it's unsurprisingly called def homogeneous_component(self, n). I still would like to know how to find out such names in general, rather than by analyzing the source code of Sage. And I still would like to know how to do linear algebra.

( 2012-01-27 17:23:26 +0200 )edit

BTW version 2 is up (at the same addresses), but I doubt you can pick up any good programming habits from me...

( 2012-01-27 17:25:47 +0200 )edit
1

For this issue, I think you're going to have to look at the source code. Graded objects are not well-developed in Sage. If you follow the link in my answer, you will also find a patch which implements an example of a graded algebra, whose explicit purpose is to be a model on which other people can base their work.

( 2012-01-27 21:19:14 +0200 )edit
1

As far as doing linear algebra, I think that CombinatorialFreeModule is not that great, unfortunately. So I think converting to matrices is the right way to go.

( 2012-01-27 21:20:23 +0200 )edit