#8589 closed enhancement (fixed)
New feature : Hopf algebra structure on group algebras
Reported by: | vferay | Owned by: | sage-combinat |
---|---|---|---|
Priority: | major | Milestone: | sage-4.6.1 |
Component: | combinatorics | Keywords: | |
Cc: | niles, sage-combinat | Merged in: | sage-4.6.1.alpha0 |
Authors: | Valentin Féray | Reviewers: | Nicolas M. Thiéry |
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description
This patch gives its Hopf algebra structure to the group algebra of G
over R
created in the following way
sage: G.algebra(R)
Another feature is a method is_central on elements of the algebra (which works also for monoid algebras so is in the file sage.categories.monoids)
Attachments (2)
Change History (24)
comment:1 follow-up: ↓ 8 Changed 12 years ago by
- Status changed from new to needs_review
comment:2 Changed 12 years ago by
Is line 919 in sage/categories/modules_with_basis.py a typo?
:meth:`rodulesWithBasis.HomCategory.ElementMethods.on_basis`. ^
Also, at the start of sage/groups/perm_gps/permgroup.py, the line
from sage.combinat.family import Family
might be changed to
from sage.sets.family import Family
(since sage.combinat.family says "This is a backward compatibility stub. Use :mod:sage.sets.family
instead").
comment:3 follow-up: ↓ 4 Changed 12 years ago by
You're right! A new version of the patch has been uploaded
Thanks for these comments!
Valentin
comment:4 in reply to: ↑ 3 Changed 12 years ago by
comment:5 follow-up: ↓ 6 Changed 12 years ago by
- Status changed from needs_review to needs_work
Ok I wait until the Algebra functorial constructions are finished to finalize the patch
comment:6 in reply to: ↑ 5 Changed 12 years ago by
comment:7 Changed 12 years ago by
For the record with 4.4.3 and this patch applied,
sage: SymmetricGroup(3).algebra(QQ)
triggers an error about _basis_keys
comment:8 in reply to: ↑ 1 Changed 12 years ago by
- Cc niles added
Hello,
Is there any new progress on this?
I'd like to help, but I think I have to start by understanding Family
:
Replying to vferay:
- The generators of permutation groups were returned as a list and not as a family, which is the case for other types of groups. They are now returned as a family.
DihedralGroup
and CyclicPermutationGroup
both return gens
as lists, and polynomial/power series rings return gens
as tuples . . . could someone tell me if there is an effort under way to convert all of these to Family
, or what sorts of things do already return gens
as a Family
?
Are there other work issues for this patch (other than the bug with 4.4.3 reported by nthiery), or is it otherwise ready for review?
thanks, Niles
comment:9 follow-up: ↓ 10 Changed 12 years ago by
Hello,
finishing this patch is on my todo list of the week.
could someone tell me if there is an effort under way to convert all of these to Family, or
what sorts of things do already return gens as a Family?
If we are only interested with groups, there is no interest to return things as a Family, but it is the natural structure when we work with algebra generators. So the change was to unify this but I confess that I don't remember for which function I wanted to do that.
more soon,
Valentin
comment:10 in reply to: ↑ 9 Changed 12 years ago by
Replying to vferay:
could someone tell me if there is an effort under way to convert all of these to Family, or what sorts of things do already return gens as a Family?
If we are only interested with groups, there is no interest to return things as a Family, but it is the natural structure when we work with algebra generators. So the change was to unify this but I confess that I don't remember for which function I wanted to do that.
The current convention is for algebra_generators, semigroup_generators, and the like to return families.
There definitely is a plan for the long run (at least a wish from the sage-combinat group :-)) to have .gens() return a family as well. But this will require some serious coordination to maintain backward compatibility, and I'd rather have it done in a separate patch.
Valentin: do you really need this feature right now?
comment:11 follow-up: ↓ 12 Changed 12 years ago by
- Cc nthiery added
Hello,
Valentin: do you really need this feature right now?
It was needed in the function algebra_generators() which can be called on a group or semi-group algebra. But I changed this function such that it works in both cases.
I splitted the patch in 2 and keep just the part on group algebra and Hopf algebra (and not the part turning group generators into a family).
Everything seems to work now (I have one error in the test of hopf_algebra_with_basis.py : "... still using old coercion framework) when the patch is applied in the sage-combinat queue. But it seems to depend on other patches (because import it when no other patches are applied lead to a lot of mistakes. Nicolas, do you know which ones and what I should do.
I attach the new version of the patch
comment:12 in reply to: ↑ 11 Changed 12 years ago by
Replying to vferay:
It was needed in the function algebra_generators() which can be called on a group or semi-group algebra. But I changed this function such that it works in both cases.
Thanks. Do you mind fixing instead semigroup_generators?
I splitted the patch in 2 and keep just the part on group algebra and Hopf algebra (and not the part turning group generators into a family).
Thanks.
Everything seems to work now (I have one error in the test of hopf_algebra_with_basis.py : "... still using old coercion framework) when the patch is applied in the sage-combinat queue. But it seems to depend on other patches (because import it when no other patches are applied lead to a lot of mistakes. Nicolas, do you know which ones and what I should do.
After investigation, your patch depends on:
- trac_9648_modulemorphism_codomain_extension-cs.patch # Needs review
- free_module_basis_key_initialisation-nb.patch
#9648 just needs a last pass of proofreading + rerunning the tests with the latest Sage. Do you volunteer for the former?
I just created #10127 for the second. We should be able to finalize it soon with Nicolas B.
With those patches applied, I only get two trivial errors in sage/categories:
sage -t "devel/sage-combinat/sage/categories/groups.py" ********************************************************************** File "/opt/sage-4.5.2/devel/sage-combinat/sage/categories/groups.py", line 69: sage: A.group_generators() Expected: [(2,3,4), (1,2,3)] Got: [(1,2,3), (2,3,4)] sage -t "devel/sage-combinat/sage/categories/algebra_functor.py" ********************************************************************** File "/opt/sage-4.5.2/devel/sage-combinat/sage/categories/algebra_functor.py", line 37: sage: Groups().Algebras(QQ) # todo: update once there will be a category for group algebras Expected: Category of monoid algebras over Rational Field Got: Category of group algebras over Rational Field
Cheers,
Nicolas
comment:13 follow-up: ↓ 14 Changed 12 years ago by
Hi
Thanks. Do you mind fixing instead semigroup_generators?
You mean that you want semigroup_generators to return a list. I assume that this will need to change a few things in all the semigroup file. Another solution is also to overload the algebra_generators function for group algebras.
#9648 just needs a last pass of proofreading + rerunning the tests with the latest Sage. Do you > volunteer for the former?
ok I will try to do that.
With those patches applied, I only get two trivial errors in sage/categories:
the first one does not appear on my computer (?). I corrected the second one.
Valentin
comment:14 in reply to: ↑ 13 Changed 12 years ago by
Replying to vferay:
Thanks. Do you mind fixing instead semigroup_generators?
You mean that you want semigroup_generators to return a list. I assume that this will need to change a few things in all the semigroup file. Another solution is also to overload the algebra_generators function for group algebras.
Oops, I investigated this too quickly. The culprit is actually Groups.ParentMethods?.group_generators which returns self.gens() directly, instead of making the result first into a family.
#9648 just needs a last pass of proofreading + rerunning the tests with the latest Sage. > > Do you volunteer for the former?
ok I will try to do that.
Thanks!
With those patches applied, I only get two trivial errors in sage/categories:
the first one does not appear on my computer (?).
Hmm. Which patches did you have applied when you tried? Which version of Sage?
I corrected the second one.
Thanks!
comment:15 follow-up: ↓ 16 Changed 12 years ago by
Replying to nthiery:
Oops, I investigated this too quickly. The culprit is actually Groups.ParentMethods??.group_generators which returns self.gens() directly, instead of making the > result first into a family.
ok I have changed this function and every test pass...
I think the patch is ready now, I am waiting that the other patches are included in sage to set it as need_review .
With those patches applied, I only get two trivial errors in sage/categories:
the first one does not appear on my computer (?).
Hmm. Which patches did you have applied when you tried? Which version of Sage?
version 4.5.3, patches up to this one were applied. But now, I find the same result as you do (except that now, it has been transformed into a family)...
Valentin
comment:16 in reply to: ↑ 15 Changed 12 years ago by
- Cc sage-combinat added; nthiery removed
- Milestone set to sage-4.6.1
- Reviewers set to Nicolas M. Thiéry
All test pass on 4.5.3, with the following patches applied:
trac_9648_modulemorphism_codomain_extension-cs.patch # Needs review trac_10127_free_module_basis_key_initialisation-nb.patch # Under review trac_8589_feature_group_algebras_vf.patch #-4_5 # Under review trac_8589_feature_group_algebras-reviewer-nt.patch
Generally speaking, the patch is good to go, up to missing documentation and tests for Coalgebras.ElementMethods?.counit. Valentin, please fold in my reviewer's patch, add doc and test, check that the documentation compiles smoothly, and upload here.
Then you can set a positive review on my behalf. Thanks for your work on that!
Niles: feel free to make a last check up!
comment:17 Changed 12 years ago by
- Status changed from needs_work to positive_review
Valentin, please fold in my reviewer's patch, add doc and test, check that the documentation compiles smoothly, and upload here.
Done!
Changed 12 years ago by
Changed 12 years ago by
comment:18 Changed 12 years ago by
- Status changed from positive_review to needs_info
Which of the patches should be applied?
comment:19 Changed 12 years ago by
- Status changed from needs_info to needs_review
The two files are the same. I did wrong manipulation. Sorry for that
comment:20 Changed 12 years ago by
- Status changed from needs_review to positive_review
comment:21 Changed 12 years ago by
- Merged in set to sage-4.6.1.alpha0
- Resolution set to fixed
- Status changed from positive_review to closed
Doing this, I have encountered and solved some problems: