#11111 closed enhancement (fixed)
More support for finite dimensional modules and algebras with basis
Reported by:  Nicolas M. Thiéry  Owned by:  Nicolas M. Thiéry 

Priority:  major  Milestone:  sage6.7 
Component:  categories  Keywords:  days20_5, days64, sd67 
Cc:  Sage Combinat CC user  Merged in:  
Authors:  Florent Hivert, Franco Saliola, Nicolas M. Thiéry  Reviewers:  Franco Saliola, Nicolas M. Thiéry, Aladin Virmaux 
Report Upstream:  N/A  Work issues:  
Branch:  7fb5d0c (Commits, GitHub, GitLab)  Commit:  
Dependencies:  #8678  Stopgaps: 
Description (last modified by )
More support for finite dimensional modules and algebras with basis:
 Echelon form of list of vectors
 Submodules and quotients
 Example of a finite dimensional algebra with basis: the path algebra of the Kronecker quiver
 Category SemisimpleAlgebras?(...)
 Finite group algebras are semisimple in characteristic 0
 Center, radical, and semisimple quotient of a finite dimensional algebra
 Annihilator
 Matrix and inverse of module morphisms
 Some more support for term orders in CombinatorialFreeModule?
 map_support_skip_none in ModulesWithBasis?
Change History (81)
comment:1 Changed 12 years ago by
Authors:  Nicolas M. Thiéry → Florent Hivert, Franco Saliola, Nicolas M. Thiéry 

Description:  modified (diff) 
comment:2 Changed 11 years ago by
comment:3 Changed 11 years ago by
Description:  modified (diff) 

comment:4 Changed 10 years ago by
Description:  modified (diff) 

Summary:  Add features to FiniteDimensionalModulesWithBasis → More support for finite dimensional modules and algebras with basis 
comment:5 Changed 10 years ago by
Dependencies:  → #10963 

comment:6 Changed 9 years ago by
Milestone:  sage5.11 → sage5.12 

comment:7 Changed 9 years ago by
Milestone:  sage6.1 → sage6.2 

comment:8 Changed 8 years ago by
Milestone:  sage6.2 → sage6.3 

comment:9 Changed 8 years ago by
Branch:  → u/nthiery/more_support_for_finite_dimensional_modules_and_algebras_with_basis 

comment:10 Changed 8 years ago by
Branch:  u/nthiery/more_support_for_finite_dimensional_modules_and_algebras_with_basis → public/11111more_support_for_finite_dimensional_modules_and_algebras_with_basis 

comment:11 Changed 8 years ago by
Commit:  → 7abb19767605b3e2a1d10e72748b6e87a537c8fd 

Dependencies:  #10963 → #10963, #8678 
Last 10 new commits:
4d4b599  10668: Fixed refinement of category to handle Parent._abstract_element_class

125aa8e  10668: Simplify the logic of endsets of modular abelian varieties using the new Endsets construction

fc5b0f1  10668: trivial doctest output updates w.r.t. the new printing of homsets

4b67d7c  10668: Explicitly document that Element.__getattr__ can also be useful when refining categories

ad87027  10668: Fixed doctest

9051050  10668: fixed ReST typo

62948b0  8678: Imported and rebased patch from SageCombinat queue

47e0eb9  8678: Imported stuff relevant to morphisms from trac_11111finite_dimensional_modulesnt.patch

553c5de  8678: Imported module_morphism_function_extendfh.patch

7abb197  11111: Imported trac_11111finite_dimensional_modulesnt.patch from the SageCombinat queue (+ minor proofreading)

comment:12 Changed 8 years ago by
After compiling it, I cannot launch sage. The error is the following:
[...] > 16 from sage.categories.non_unital_algebras import NonUnitalAlgebras global sage.categories.non_unital_algebras = undefined global NonUnitalAlgebras = undefined ImportError: No module named non_unital_algebras
comment:13 Changed 8 years ago by
Commit:  7abb19767605b3e2a1d10e72748b6e87a537c8fd → 2a9ccb0b90e235dc305c1ad5bc761208de00739d 

Branch pushed to git repo; I updated commit sha1. New commits:
2a9ccb0  11111: fixed Sage startup (NonUnitalAlgebras had to be rebased to NonAssociativeAlgebras)

comment:14 Changed 8 years ago by
Commit:  2a9ccb0b90e235dc305c1ad5bc761208de00739d → bac267e5c4558b56271e9f5bd24d8e514776b5bc 

Branch pushed to git repo; I updated commit sha1. New commits:
bac267e  11111: fixed some remaining rebasing issues (most tests pass now) + proofreading

comment:15 Changed 8 years ago by
I don't know if it is the proper place to report this bug but let's try as it is relatde to morphisms of finite dimensional modules (and coercion system). The following has been obtained on the t/11111 branch.
sage: A5 = SymmetricGroupAlgebra(QQ, 5) sage: Z5 = A5.center() sage: phi = Z5.module_morphism(on_basis=lambda i: Z5.an_element()*Z5.basis()[i], codomain=Z5) sage: a = list(Z5.basis())[3] sage: a in phi.domain() True sage: phi(a)
and I get [...]
445 TODO: make a better unit test once Modules().example() is implemented 446 """ > 447 from sage.structure.element import get_coercion_model 448 import operator 449 return get_coercion_model().bin_op(left, right, operator.mul) RuntimeError: maximum recursion depth exceeded while calling a Python object sage:
comment:16 Changed 8 years ago by
In fact this bug is related to the fact that the center of on algebra is a CombinatorialFreeModule? and nothing more... Sorry for the noise.
comment:17 Changed 8 years ago by
Commit:  bac267e5c4558b56271e9f5bd24d8e514776b5bc → 5c7977a72ef687f17f29a53ada0a8324d70a1204 

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
8b971f4  8678: bug fix and doctests for CombinatorialFreeModule being automatically finite dimensional

494da74  8678: trivial ReST fix

5da8038  Merge branch 'categories/modulemorphisms8678' into t/11111/more_support_for_finite_dimensional_modules_and_algebras_with_basis

c773140  11111: trivial ReST fix

449c262  11111: imported maschkethmav.patch from the SageCombinat queue

cb5a236  8678: trivial doctests fix (more categories are finite dimensional now)

aa7fe1d  8678: noted known pickling issue

445c925  8768: Fixed doctests

1eb6f14  Merge branch 'categories/modulemorphisms8678' into t/11111/more_support_for_finite_dimensional_modules_and_algebras_with_basis

5c7977a  11111: trivial Python syntax fix

comment:18 Changed 8 years ago by
Commit:  5c7977a72ef687f17f29a53ada0a8324d70a1204 → f16cfbf4b129f3ad63fc27753c6336f79cd5527b 

Branch pushed to git repo; I updated commit sha1. New commits:
0daa497  remove center for group algebras, center_basis instead

370ff43  fix tests

2723ed5  Merge branch 't/11111/public/11111more_support_for_finite_dimensional_modules_and_algebras_with_basis' into tmp/11111

7129e59  fix doctest

f3be782  center_basis for group algebras now return a list of elements of

f16cfbf  center_basis for group algebra is now really a basis

comment:19 Changed 8 years ago by
Commit:  f16cfbf4b129f3ad63fc27753c6336f79cd5527b → 64a87bfaa09322710f081db896b757765c8c33cd 

comment:20 Changed 8 years ago by
I added some code to depreciate to old method center for group algebras, and replace it by center_basis which gives a center in the good category using the generic method of finite_dimensional_algebra_on_basis.
sage: Z = SymmetricGroup(4).algebra(QQ).center() sage: Z.category() Join of Category of finite dimensional algebras with basis over Rational Field and Category of commutative algebras over Rational Field and Category of subquotients of monoids and Category of subobjects of sets
comment:21 Changed 8 years ago by
Commit:  64a87bfaa09322710f081db896b757765c8c33cd → b99c59cbf493c2eb068208d989945ebd27ff03e3 

Branch pushed to git repo; I updated commit sha1. New commits:
b99c59c  product of SubModuleWithBasis

comment:22 Changed 8 years ago by
Commit:  b99c59cbf493c2eb068208d989945ebd27ff03e3 → f0bb894eacf36bbfee30a058b01b202ad7640bfd 

Branch pushed to git repo; I updated commit sha1. New commits:
f0bb894  _mul_ at the right place

comment:23 Changed 8 years ago by
Milestone:  sage6.3 → sage6.4 

comment:24 Changed 8 years ago by
Commit:  f0bb894eacf36bbfee30a058b01b202ad7640bfd → 195d14e5a309834179015f4066d27dd5b7ca5b20 

Branch pushed to git repo; I updated commit sha1. New commits:
93273a7  Merge branch 'u/nthiery/categories/fullsubcategories16340' of trac.sagemath.org:sage into public/categories/full_subcategories16340

edb29e6  Fixed trivial doctest failures.

99a8eb1  Merge branch 'public/categories/full_subcategories16340' of trac.sagemath.org:sage into categories/fullsubcategories16340

8bc456c  Merge branch 'master=6.3' into categories/fullsubcategories16340

56e982e  Merge branch 'categories/fullsubcategories16340' and 6.3 into categories/morphismmethods10668

016cd16  #16340: Revert ReST typo fix in ell_curve_isogeny.py to avoid conflict with other ticket handling it

d147678  Merge branch 'develop=6.4.beta0' into categories/morphismmethods10668

8054997  Merge branch 'categories/morphismmethods10668' into categories/modulemorphisms8678

09964af  Merge branch 'categories/modulemorphisms8678' into t/11111/more_support_for_finite_dimensional_modules_and_algebras_with_basis

195d14e  Merge branch 'public/11111more_support_for_finite_dimensional_modules_and_algebras_with_basis' of trac.sagemath.org:sage into t/11111/more_support_for_finite_dimensional_modules_and_algebras_with_basis

comment:25 followup: 26 Changed 8 years ago by
Description:  modified (diff) 

comment:26 Changed 8 years ago by
There are currently failing tests:
sage t algebras.py ********************************************************************** File "algebras.py", line 236, in sage.categories.algebras.Algebras.Subobjects.ElementMethods._mul_ Failed example: Z = SymmetricGroup(5).algebra(QQ).center() Exception raised: Traceback (most recent call last): File "/Applications/sage/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 480, in _run self.compile_and_execute(example, compiler, test.globs) File "/Applications/sage/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 843, in compile_and_execute exec compiled in globs File "<doctest sage.categories.algebras.Algebras.Subobjects.ElementMethods._mul_[0]>", line 1, in <module> Z = SymmetricGroup(Integer(5)).algebra(QQ).center() File "cachefunc.pyx", line 2143, in sage.misc.cachefunc.CachedMethodCallerNoArgs.__call__ (build/cythonized/sage/misc/cachefunc.c:12263) File "/Applications/sage/local/lib/python2.7/sitepackages/sage/categories/finite_dimensional_algebras_with_basis.py", line 340, in center center = self.submodule(self.center_basis(), File "/Applications/sage/local/lib/python2.7/sitepackages/sage/categories/groups.py", line 682, in center_basis self.basis().keys().conjugacy_classes()] File "parent.pyx", line 864, in sage.structure.parent.Parent.__getattr__ (build/cythonized/sage/structure/parent.c:7377) File "misc.pyx", line 251, in sage.structure.misc.getattr_from_other_class (build/cythonized/sage/structure/misc.c:1687) AttributeError: 'StandardPermutations_n_with_category' object has no attribute 'conjugacy_classes' ********************************************************************** File "algebras.py", line 237, in sage.categories.algebras.Algebras.Subobjects.ElementMethods._mul_ Failed example: B = Z.basis() Exception raised: Traceback (most recent call last): File "/Applications/sage/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 480, in _run self.compile_and_execute(example, compiler, test.globs) File "/Applications/sage/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 843, in compile_and_execute exec compiled in globs File "<doctest sage.categories.algebras.Algebras.Subobjects.ElementMethods._mul_[1]>", line 1, in <module> B = Z.basis() NameError: name 'Z' is not defined ********************************************************************** File "algebras.py", line 238, in sage.categories.algebras.Algebras.Subobjects.ElementMethods._mul_ Failed example: B[3] * B[2] Exception raised: Traceback (most recent call last): File "/Applications/sage/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 480, in _run self.compile_and_execute(example, compiler, test.globs) File "/Applications/sage/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 843, in compile_and_execute exec compiled in globs File "<doctest sage.categories.algebras.Algebras.Subobjects.ElementMethods._mul_[2]>", line 1, in <module> B[Integer(3)] * B[Integer(2)] NameError: name 'B' is not defined ********************************************************************** 1 item had failures: 3 of 4 in sage.categories.algebras.Algebras.Subobjects.ElementMethods._mul_ [25 tests, 3 failures, 0.66 s] sage t category_with_axiom.py ********************************************************************** File "category_with_axiom.py", line 1642, in sage.categories.category_with_axiom Failed example: FiniteGroups().Algebras(QQ) Expected: Join of Category of finite dimensional hopf algebras with basis over Rational Field and Category of group algebras over Rational Field and Category of finite set algebras over Rational Field Got: Category of finite group algebras over Rational Field ********************************************************************** 1 item had failures: 1 of 166 in sage.categories.category_with_axiom [322 tests, 1 failure, 0.49 s] sage t fields.py ********************************************************************** File "fields.py", line 128, in sage.categories.fields.Fields._contains_helper Failed example: Q.category() Expected: Join of Category of commutative algebras over Rational Field and Category of subquotients of monoids and Category of quotients of semigroups Got: Category of commutative quotients of algebras over Rational Field ********************************************************************** 1 item had failures: 1 of 8 in sage.categories.fields.Fields._contains_helper [75 tests, 1 failure, 1.66 s] sage t groups.py ********************************************************************** File "groups.py", line 673, in sage.categories.groups.Groups.Algebras.ParentMethods.center_basis Failed example: SymmetricGroup(3).algebra(QQ).center_basis() Exception raised: Traceback (most recent call last): File "/Applications/sage/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 480, in _run self.compile_and_execute(example, compiler, test.globs) File "/Applications/sage/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 843, in compile_and_execute exec compiled in globs File "<doctest sage.categories.groups.Groups.Algebras.ParentMethods.center_basis[0]>", line 1, in <module> SymmetricGroup(Integer(3)).algebra(QQ).center_basis() File "/Applications/sage/local/lib/python2.7/sitepackages/sage/categories/groups.py", line 682, in center_basis self.basis().keys().conjugacy_classes()] File "parent.pyx", line 864, in sage.structure.parent.Parent.__getattr__ (build/cythonized/sage/structure/parent.c:7377) File "misc.pyx", line 251, in sage.structure.misc.getattr_from_other_class (build/cythonized/sage/structure/misc.c:1687) AttributeError: 'StandardPermutations_n_with_category' object has no attribute 'conjugacy_classes' ********************************************************************** File "groups.py", line 809, in sage.categories.groups.Groups.Algebras.ElementMethods.central_form Failed example: A.central_form() Expected: B[(1,2,3)] Got: B[[2, 3, 1]] ********************************************************************** File "groups.py", line 813, in sage.categories.groups.Groups.Algebras.ElementMethods.central_form Failed example: B.central_form() Expected: 4*B[()] + 3*B[(1,2)] + 2*B[(1,2)(3,4)] + 2*B[(1,2,3)] + B[(1,2,3,4)] Got: 4*B[[1, 2, 3, 4]] + 3*B[[2, 1, 3, 4]] + 2*B[[2, 1, 4, 3]] + 2*B[[2, 3, 1, 4]] + B[[2, 3, 4, 1]] ********************************************************************** 2 items had failures: 2 of 9 in sage.categories.groups.Groups.Algebras.ElementMethods.central_form 1 of 2 in sage.categories.groups.Groups.Algebras.ParentMethods.center_basis [124 tests, 3 failures, 2.94 s] sage t modules_with_basis.py ********************************************************************** File "modules_with_basis.py", line 509, in sage.categories.modules_with_basis.ModulesWithBasis.ParentMethods.submodule Failed example: basis Expected: [B[()], B[(2,3)] + B[(1,2)] + B[(1,3)], B[(1,2,3)] + B[(1,3,2)]] Got: [[1, 2, 3], [1, 3, 2] + [2, 1, 3] + [3, 2, 1], [2, 3, 1] + [3, 1, 2]] ********************************************************************** File "modules_with_basis.py", line 520, in sage.categories.modules_with_basis.ModulesWithBasis.ParentMethods.submodule Failed example: c[1].lift() Expected: B[(2,3)] + B[(1,2)] + B[(1,3)] Got: [1, 3, 2] + [2, 1, 3] + [3, 2, 1] ********************************************************************** File "modules_with_basis.py", line 530, in sage.categories.modules_with_basis.ModulesWithBasis.ParentMethods.submodule Failed example: center = S3A.center() Exception raised: Traceback (most recent call last): File "/Applications/sage/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 480, in _run self.compile_and_execute(example, compiler, test.globs) File "/Applications/sage/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 843, in compile_and_execute exec compiled in globs File "<doctest sage.categories.modules_with_basis.ModulesWithBasis.ParentMethods.submodule[22]>", line 1, in <module> center = S3A.center() File "cachefunc.pyx", line 2143, in sage.misc.cachefunc.CachedMethodCallerNoArgs.__call__ (build/cythonized/sage/misc/cachefunc.c:12263) File "/Applications/sage/local/lib/python2.7/sitepackages/sage/categories/finite_dimensional_algebras_with_basis.py", line 340, in center center = self.submodule(self.center_basis(), File "/Applications/sage/local/lib/python2.7/sitepackages/sage/categories/groups.py", line 682, in center_basis self.basis().keys().conjugacy_classes()] File "parent.pyx", line 864, in sage.structure.parent.Parent.__getattr__ (build/cythonized/sage/structure/parent.c:7377) File "misc.pyx", line 251, in sage.structure.misc.getattr_from_other_class (build/cythonized/sage/structure/misc.c:1687) AttributeError: 'StandardPermutations_n_with_category' object has no attribute 'conjugacy_classes' ********************************************************************** 1 item had failures: 3 of 26 in sage.categories.modules_with_basis.ModulesWithBasis.ParentMethods.submodule [550 tests, 3 failures, 1.92 s] sage t sets_cat.py ********************************************************************** File "sets_cat.py", line 1402, in sage.categories.sets_cat.Sets.ParentMethods.algebra Failed example: SymmetricGroup(5).algebra(QQ) in SemisimpleAlgebras(QQ) Expected: True Got: False ********************************************************************** 1 item had failures: 1 of 27 in sage.categories.sets_cat.Sets.ParentMethods.algebra [340 tests, 1 failure, 2.63 s]  sage t algebras.py # 3 doctests failed sage t category_with_axiom.py # 1 doctest failed sage t fields.py # 1 doctest failed sage t groups.py # 3 doctests failed sage t modules_with_basis.py # 3 doctests failed sage t objects.py # Source line number found sage t sets_cat.py # 1 doctest failed  Total time for all tests: 139.2 seconds cpu time: 86.4 seconds cumulative wall time: 126.4 seconds
comment:27 followup: 28 Changed 8 years ago by
These problems could be fixed by deleting the algebra method in sage.groups.perm_gps.permgroup_named.py. It might be something recent because it was working at the time I wrote the failing doctest. The problem is that this method calls SymmetricGroupAlgebra? instead of letting the general one.
So far and to my humble opinion, why keeping SymmetricGroupAlgebra? which brings, to my eyes, only troubles as the general algebra method works perfectly?
comment:28 followups: 29 33 Changed 8 years ago by
Replying to virmaux:
These problems could be fixed by deleting the algebra method in sage.groups.perm_gps.permgroup_named.py. It might be something recent because it was working at the time I wrote the failing doctest. The problem is that this method calls SymmetricGroupAlgebra? instead of letting the general one.
So far and to my humble opinion, why keeping SymmetricGroupAlgebra? which brings, to my eyes, only troubles as the general algebra method works perfectly?
Because it offers much more functionality that the general algebra doesn't and previously the functionality that you want of the general algebra wasn't used. Half of the failures are trivial due to output format, the others, except the check in SemisimpleAlgebras
(should just be a matter of setting the right category), can be solved by implementing a conjugacy_classes
method for StandardPermutations_n
(there was talk about implementing this specifically for permutations without appealing to GAP and would fix the problem).
However I think there is a problem with your code's robustness that should be fixed instead. You're using the indexing set of the basis, but it would be better use the .group()
(which should be an abstract method for the category IMO) because is explicitly what you want.
Another couple of questions/comments:
This line in categories/objects.py
:
doctest:1: DeprecationWarning: hom_category is deprecated. Please use Homsets instead.
should be
doctest:...: DeprecationWarning: hom_category is deprecated. Please use Homsets instead.
I think creation of the axiom 'semisimple' and the (perhaps somewhat of shell) categories for semisimple groups and algebras should be done as a dependency ticket for better separation of concerns (and is a part we can split off and review more easily).
Best,
Travis
comment:29 Changed 8 years ago by
My bad, I did not know that this group method was existing; it should fix everything as on a SymmetricGroupAlgebra? it gives a SymmetricGroup? object and not a StandardPermutations_n. Also, notations are different between SymmetricGroup? and StandardPermutation? objects. One is the cyclic notation for permutation, the other one is the functional notation. It is then very confusing when going from group to algebra and vice versa.
Let's note that using .basis().key() is almost 3 times faster as doing .group() but it should not be an issue as it is usually called only once.
I am still a bit dubious about the class SymmetricGroupAlgebra?. In my personnal using of sage I have always dodged it to avoid all kind of troubles. Is there a way of using the more general framework and adding the few methods it adds to the particular case of symmetric groups algebras without defining a special class for it ? Would it be a good idea ?
I hope I did not say too much nonsense.
Best, Aladin
comment:30 Changed 8 years ago by
Commit:  195d14e5a309834179015f4066d27dd5b7ca5b20 → d1fc0a9aa9a77363de6e8beaed205fdcaee7feb9 

comment:31 Changed 8 years ago by
Dependencies:  #10963, #8678 → #8678, #16925 

comment:32 Changed 8 years ago by
Commit:  d1fc0a9aa9a77363de6e8beaed205fdcaee7feb9 → 8913c75fa26b8a6d4478accd5e34d96447292580 

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
ce2a56b  8678: oops, restored accidently deleted increment

0b4b010  #8678: fixed on_basis in TriangularModuleMoprhism

e24e19c  8678: finalize previous commit; making on_basis and domain optional arguments will be for latter

33463c4  10668: rebase doctest upon the fact that Monoids.Commutative now exists

dc0d1db  8678: removed explicit doctest:xxx: source line number from a doctest

8457690  8678: trivial doctest update after merge with develop

62a28dd  8678: rewrote a few tests introduced by #16296 so that they do not depend on the number of axioms defined in Sage

2b3ee81  Merge branch 'develop = 6.4 beta2' into categories/morphismmethods10668

35664c7  Merge branch 'categories/morphismmethods10668 (including 6.4.beta2)' into categories/modulemorphisms8678

8913c75  Merge branch 'categories/modulemorphisms8678', including 6.4 beta2 into t/11111/more_support_for_finite_dimensional_modules_and_algebras_with_basis

comment:33 Changed 8 years ago by
Hi Travis,
Thanks for investigating this!
Replying to tscrim:
Because it offers much more functionality that the general algebra doesn't and previously the functionality that you want of the general algebra wasn't used. Half of the failures are trivial due to output format, the others, except the check in
SemisimpleAlgebras
(should just be a matter of setting the right category), can be solved by implementing aconjugacy_classes
method forStandardPermutations_n
(there was talk about implementing this specifically for permutations without appealing to GAP and would fix the problem).
Reverting SymmetricGroup?.algebra to not return SymmetricGroupAlgebra? is now #16925. See there for the rationale, but essentially SymmetricGroupAlgebra? is not a dropin replacement, and breaks too many assumptions that generic code about group algebras will want to do. See you there if this needs to be further discussed.
I have made #16925 a dependency of this ticket.
See #16926 for a plan to have all implementations of the group algebra of the symmetric group benefit from the cool features of SymmetricGroupAlgebra?.
Another couple of questions/comments:
This line in
categories/objects.py
:doctest:1: DeprecationWarning: hom_category is deprecated. Please use Homsets instead.should be
doctest:...: DeprecationWarning: hom_category is deprecated. Please use Homsets instead.
This is now fixed (actually in the #10668 dependency). Thanks for catching though!
I think creation of the axiom 'semisimple' and the (perhaps somewhat of shell) categories for semisimple groups and algebras should be done as a dependency ticket for better separation of concerns (and is a part we can split off and review more easily).
Possibly so. Now this ticket is already floating on a pile of dependency which are somewhat of a pain to maintain (e.g. for merging in beta on a regular basis). And separating the stuff would take a bit of work. So I would not bother too much about this.
Cheers,
Nicolas
comment:34 Changed 8 years ago by
Status:  new → needs_review 

comment:35 Changed 8 years ago by
I am temporarily putting it to needs review to get reports from the build bot. Also, most of the code won't change much and can already be reviewed.
There are some failing doctests around steenrod/quiver algebras that I need to fix in #8678. I also have this on my list:
 [ ] Make span return a true submodule rather than a FreeModule?;
 [ ] Adapt annihilator accordingly;
comment:36 Changed 8 years ago by
Commit:  8913c75fa26b8a6d4478accd5e34d96447292580 → 814b51f219c6d1b5dee76953c1ae770229c54f51 

Branch pushed to git repo; I updated commit sha1. New commits:
479fddb  16925: revert SymmetricGroups(...).algebra(...) to just do the standard thing

ce71c74  16925: updated a few doctests according to the previous commit

814b51f  Merge branch 't/16925/revert_symmetricgroup_algebra_change_from__16678' into t/11111/more_support_for_finite_dimensional_modules_and_algebras_with_basis

comment:37 Changed 8 years ago by
For reference, #10305 implements centers of the symmetric group algebra.
comment:38 Changed 8 years ago by
Commit:  814b51f219c6d1b5dee76953c1ae770229c54f51 → b9d726e6177fb715365046625b0bc833767ed40f 

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
830c550  8678: fixed missing import

0e89bb7  Fixed ReST typo

a117dc5  8678: co_reduced > coreduced + added check (valid only for a field or unitriangular + doc improvements here and there

b2b10fc  8678: unitriangular=lower as shorthand for triangular=lower, unitriangular=True; added sanity checks and tests for cokernel_basis_indices

9390838  8678: moved ModuleMorphism's code from sage.categories.modules_with_basis to sage.modules.module_with_basis_morphism

05634b4  8678: Follow up on the previous commit: updating paths + extracted new abstract class ModuleMorphism

fa9e2a6  8678: Added ModuleMorphismFromMatrix class + better API for constructing them through module_morphism(matrix=...)

5409f2f  8678: More doc and small fixes for previous commit

87cd8ca  8678: Added comment about element class creation for module morphisms

b9d726e  Merge branch 'categories/modulemorphisms8678', including develop=6.6.beta2 into categories/finite_dimensional_modules_and_algebras_with_basis11111

comment:39 Changed 8 years ago by
Commit:  b9d726e6177fb715365046625b0bc833767ed40f → 0a31932c3efdd98c9cf6ef6beef6d8fb73009fe3 

comment:40 Changed 8 years ago by
Commit:  0a31932c3efdd98c9cf6ef6beef6d8fb73009fe3 → ab180624f535bd09d89047ad607412259aa3ca42 

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
f9b1f87  8678: fixed bug introduced recently about the initialization of TriangularModuleMorphism._invertible

cf9b429  Fixed ReST typo

aff2689  17160: fixed category for finite set endomaps + minor __init__ refactoring

1f9981f  Merge branch 'categories/finitelygeneratedmagmas17160' into categories/modulemorphisms8678

34ee60d  8678: improved support for pickling and default value of the invertible option

24ed527  8678: specify explicitly that one morphism in sage.algebras.hall_algebra is invertible to make up for the change in 4125b2a6394cbf3f594991513394fa5958ae841b

7861e32  8678: ReST fix

01e2ec5  Merge branch 'categories/modulemorphisms8678' into categories/finite_dimensional_modules_and_algebras_with_basis11111

ac24f99  11111: trivial category update in doctest

ab18062  11111: axiomlike syntax for Semisimple + minor spacing fixes

comment:41 Changed 8 years ago by
Commit:  ab180624f535bd09d89047ad607412259aa3ca42 → 9d715e7af3ab99b0b2335b11a23546dd3c1627e8 

comment:42 Changed 8 years ago by
Commit:  9d715e7af3ab99b0b2335b11a23546dd3c1627e8 → 9081ef8d790f3e4a55cc27b9ad50184a5ac57063 

Branch pushed to git repo; I updated commit sha1. New commits:
9081ef8  11111: is_submodule for submodules with basis

comment:43 Changed 8 years ago by
Commit:  9081ef8d790f3e4a55cc27b9ad50184a5ac57063 → 31a004652ab7336db30c758b87810738b6a6c8c0 

Branch pushed to git repo; I updated commit sha1. New commits:
4b3d74c  Merge branch 'develop' into categories/finitelygeneratedmagmas17160

6de563d  Merge branch 'categories/finitelygeneratedmagmas17160 + develop=6.6beta5' into categories/modulemorphisms8678

31a0046  Merge branch 'categories/modulemorphisms8678 + develop = 6.6 beta5' into categories/finite_dimensional_modules_and_algebras_with_basis11111

comment:44 Changed 8 years ago by
Commit:  31a004652ab7336db30c758b87810738b6a6c8c0 → 6bb064b3d8f3a109196cc5814522ac179be45f24 

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
d9b5507  8678: fixed missing __init__.py

5eca4c1  8678: doc: fixed misleading 'tolower' comment + micro phrasing improvement

853a04e  8678: sage.modules.modules_with_basis > sage.modules.with_basis + directory doc + added doc to the ref manual

ad5d6c0  8678: permutation groups are finitely generated, finite fields are enumerated, fixes

839200e  8678: More doctest updates. Should almost pass all tests.

919a215  Merge branch 'develop = sage 6.6 beta6' into categories/finitelygeneratedmagmas17160

7b6e495  Merge branch 'categories/finitelygeneratedmagmas17160 + develop=6.6beta6' into categories/modulemorphisms8678

b4b28b9  8678: Trivial doctest update

ba4f331  Merge branch 'categories/modulemorphisms8678, including 6.6b6' into categories/finite_dimensional_modules_and_algebras_with_basis11111

6bb064b  11111: proofreading with Franco; added trivial radical_basis in the semisimple case; removed SemisimpleAlgebra from the global name space

comment:45 Changed 8 years ago by
Commit:  6bb064b3d8f3a109196cc5814522ac179be45f24 → 7dcdc804f5273163cad5b8077a7d1e0ff367d45e 

comment:46 Changed 8 years ago by
Commit:  7dcdc804f5273163cad5b8077a7d1e0ff367d45e → 63301537d445b5a856c77b375193fdb8fa39b9e2 

Branch pushed to git repo; I updated commit sha1. New commits:
6330153  11111: typo fixes, ...

comment:47 Changed 7 years ago by
Commit:  63301537d445b5a856c77b375193fdb8fa39b9e2 → 93a0cbf6825972d0fdf67ca44a02b50509b1a0d0 

Branch pushed to git repo; I updated commit sha1. New commits:
6b1bab8  Merge branch 'develop' into t/11111/more_support_for_finite_dimensional_modules_and_algebras_with_basis

93a0cbf  Merge branch 'public/11111more_support_for_finite_dimensional_modules_and_algebras_with_basis' of trac.sagemath.org:sage into t/11111/more_support_for_finite_dimensional_modules_and_algebras_with_basis

comment:48 Changed 7 years ago by
Commit:  93a0cbf6825972d0fdf67ca44a02b50509b1a0d0 → 8040d65fdbe325625417bb7e50f39d0dd56e1756 

Branch pushed to git repo; I updated commit sha1. New commits:
8040d65  11111: trivial doctest update

comment:49 Changed 7 years ago by
Commit:  8040d65fdbe325625417bb7e50f39d0dd56e1756 → fef786ff91822cf735894e80d9ebcdc86712c20d 

Branch pushed to git repo; I updated commit sha1. New commits:
fef786f  11111: Improved Algebras.Semisimple shorthand + improved and fix doctests accordingly

comment:50 Changed 7 years ago by
Commit:  fef786ff91822cf735894e80d9ebcdc86712c20d → b024f0fcbee17f0a797b2f379394dbd5c0456502 

Branch pushed to git repo; I updated commit sha1. New commits:
25f95a4  11111: add references for the algorithm used to compute the radical basis

35d965a  11111: fix typos in annihilator documentation (finite_dimensional_modules_with_basis.py)

b024f0f  11111: remove _conjugacy_classes_representatives_underlying_group from Groups.Algebras.ParentMethods

comment:51 Changed 7 years ago by
Commit:  b024f0fcbee17f0a797b2f379394dbd5c0456502 → 1f44d6588b975c9dab8147807ba4ab2458fb0a36 

Branch pushed to git repo; I updated commit sha1. New commits:
be16385  11111: make Modules.SubcategoryMethods.base_ring work with any subcategory of Modules

ae49353  11111: Removed Modules.FiniteDimensional.WithBasis.ParentMethods.vectors_parent which was only temporarily useful

cdb55b4  11111: fixed handling of the category in annihilator + updated doctests

411f1a7  11111: finished merge

1f44d65  11111: fix brilliant conflict with myself ...

comment:52 Changed 7 years ago by
Commit:  1f44d6588b975c9dab8147807ba4ab2458fb0a36 → 2d64d41e165a4247e294030343a0e1c4a85720b7 

comment:53 Changed 7 years ago by
Commit:  2d64d41e165a4247e294030343a0e1c4a85720b7 → b0e162bd8d1f8a7841eff1dd268514670dbc9707 

Branch pushed to git repo; I updated commit sha1. New commits:
b0e162b  11111: fix typos; improve documentation for submodule

comment:54 Changed 7 years ago by
Commit:  b0e162bd8d1f8a7841eff1dd268514670dbc9707 → 0017d5a51f109e105a77531a9b0306d4de28fb63 

Branch pushed to git repo; I updated commit sha1. New commits:
ad18e8e  11111: sage.modules.subquotient_module_with_basis > sage.modules.with_basis.subquotient

c856c68  11111: finished previous commit + doc

0017d5a  Merge branch 'public/11111more_support_for_finite_dimensional_modules_and_algebras_with_basis' of trac.sagemath.org:sage into t/11111/more_support_for_finite_dimensional_modules_and_algebras_with_basis

comment:55 Changed 7 years ago by
Commit:  0017d5a51f109e105a77531a9b0306d4de28fb63 → c1f54b123cb7e0cc691b93e72eb6082f39ac86e6 

comment:56 Changed 7 years ago by
Commit:  c1f54b123cb7e0cc691b93e72eb6082f39ac86e6 → bd45a13e765e767e5d22bde176fae17d32dc693d 

Branch pushed to git repo; I updated commit sha1. New commits:
bd45a13  11111: trivial doctest update

comment:57 Changed 7 years ago by
Commit:  bd45a13e765e767e5d22bde176fae17d32dc693d → 198d290fbcf0654863dfebd5b00bd422c94cee40 

Branch pushed to git repo; I updated commit sha1. New commits:
198d290  11111: ModulesWithBasis.ParentMethods.quotient > quotient_module

comment:58 Changed 7 years ago by
Commit:  198d290fbcf0654863dfebd5b00bd422c94cee40 → c1af81eda567082e8ad5a4167b6c45b26f4534be 

Branch pushed to git repo; I updated commit sha1. New commits:
c1af81e  11111: SubModule > Submodule

comment:59 Changed 7 years ago by
Commit:  c1af81eda567082e8ad5a4167b6c45b26f4534be → 1488133505811c7feb1e6dd9e5458709caa9515d 

Branch pushed to git repo; I updated commit sha1. New commits:
1488133  11111: standardized the API of SubmoduleWithBasis / QuotientModuleWithBasis + minor doc improvement

comment:60 Changed 7 years ago by
Commit:  1488133505811c7feb1e6dd9e5458709caa9515d → 0b5ab6ba2b645cbbb08053422e7a920e9dcc00ac 

Branch pushed to git repo; I updated commit sha1. New commits:
0b5ab6b  11111: default value for .submodule(check=) + minor doc improvement

comment:61 Changed 7 years ago by
Commit:  0b5ab6ba2b645cbbb08053422e7a920e9dcc00ac → 7aa15491539d77764c8a4f2801396cdee5e98434 

Branch pushed to git repo; I updated commit sha1. New commits:
7aa1549  11111: moved quotient_module in Modules.WithBasis.FiniteDimensional + doc finalization

comment:62 Changed 7 years ago by
Commit:  7aa15491539d77764c8a4f2801396cdee5e98434 → d4b497abcda53cc576004acc6247e9e1f3fb3665 

Branch pushed to git repo; I updated commit sha1. New commits:
d4b497a  Merge branch 'develop' into t/11111/more_support_for_finite_dimensional_modules_and_algebras_with_basis

comment:63 Changed 7 years ago by
Commit:  d4b497abcda53cc576004acc6247e9e1f3fb3665 → cfe399d524802b03ad52afd2694d90e7d70bb7fd 

Branch pushed to git repo; I updated commit sha1. New commits:
b7ff9d2  11111: improvements to the documentation

5b1c869  11111: add doctest: submodule from nonlinearly independent generators

cfe399d  Merge branch 'public/11111more_support_for_finite_dimensional_modules_and_algebras_with_basis' of git://trac.sagemath.org/sage into t/11111

comment:64 Changed 7 years ago by
Commit:  cfe399d524802b03ad52afd2694d90e7d70bb7fd → a476501f8ecfa8784cb7a8a6dfc3d4196f5fe53c 

Branch pushed to git repo; I updated commit sha1. New commits:
af995f4  Merge branch 'develop' into t/11111/more_support_for_finite_dimensional_modules_and_algebras_with_basis

a476501  Merge branch 'public/11111more_support_for_finite_dimensional_modules_and_algebras_with_basis' of trac.sagemath.org:sage into t/11111/more_support_for_finite_dimensional_modules_and_algebras_with_basis

comment:65 followup: 70 Changed 7 years ago by
Hello Nicolas,
I'm almost done reviewing this. The patch looks great! I've made some "improvements" to the documentation, please take a look.
Here are a few remaining questions:
 First of all, I'm not sure what the commit cfe399d is all about. Was it some sort of automerge by git?
categories/finite_dimensional_modules_with_basis.py
: the docstring ofquotient_module
talks about quotient "free" module. What do you mean by free?
categories/semisimple_algebras.py
: what do you mean by "TODO: trivial implementations for semisimple_quotient"
combinat/free_module.py
:_order_cmp
requires a docstring
combinat/free_module.py
has a method calledechelon_form
, which is very similar toechelonize
fromcategories/modules_with_basis.py
. They essential do the same thing except thatechelon_form
allows one to specify abase_ring
. Should these be merged? or eliminate one of them?
New commits:
af995f4  Merge branch 'develop' into t/11111/more_support_for_finite_dimensional_modules_and_algebras_with_basis

a476501  Merge branch 'public/11111more_support_for_finite_dimensional_modules_and_algebras_with_basis' of trac.sagemath.org:sage into t/11111/more_support_for_finite_dimensional_modules_and_algebras_with_basis

comment:66 Changed 7 years ago by
Commit:  a476501f8ecfa8784cb7a8a6dfc3d4196f5fe53c → 5c6dea208f82cfe3bfc37e9faa7482382c546363 

Branch pushed to git repo; I updated commit sha1. New commits:
5c6dea2  11111: proofreading of Franco's proofreading

comment:67 Changed 7 years ago by
Commit:  5c6dea208f82cfe3bfc37e9faa7482382c546363 → 2036314dacabd2816256f07f181a94f0aa37ae32 

Branch pushed to git repo; I updated commit sha1. New commits:
2036314  11111: fixed crosslink + missing file in the ref manual

comment:68 Changed 7 years ago by
Commit:  2036314dacabd2816256f07f181a94f0aa37ae32 → 6a3a07d8ff932196272bf067a1f0d0496ecd8c5a 

Branch pushed to git repo; I updated commit sha1. New commits:
6a3a07d  11111: doc for CombinatorialFreeModule._order_cmp

comment:69 Changed 7 years ago by
Commit:  6a3a07d8ff932196272bf067a1f0d0496ecd8c5a → b6d8bff2d4e141b088ebfb7d2aea1b2a7e17dcb8 

Branch pushed to git repo; I updated commit sha1. New commits:
b6d8bff  11111: CombinatorialFreeModule.echelon_from > Modules.WithBasis.ParentMethods.echelon_form; removed duplicate echelonize; delete meaningless and dangerous argument base_ring

comment:70 followup: 72 Changed 7 years ago by
Replying to saliola:
I'm almost done reviewing this. The patch looks great! I've made some "improvements" to the documentation, please take a look.
I double checked your changes, thanks!
Here are a few remaining questions:
 First of all, I'm not sure what the commit cfe399d is all about. Was it some sort of automerge by git?
Sounds like we both merged in 6.7.beta0 and that was a merge of our merges ...
categories/finite_dimensional_modules_with_basis.py
: the docstring ofquotient_module
talks about quotient "free" module. What do you mean by free?
I agree, the phrasing is not great. The point that needs to be highlighted is that this only handles quotients by free submodules admitting a unitriangular row echelon form, so that the quotient is again a free module. Any proposition of rewording is welcome!
categories/semisimple_algebras.py
: what do you mean by "TODO: trivial implementations for semisimple_quotient"
Err, good point, I don't really know. I guess all the methods that become trivial in this category, like is_semisimple, ... Maybe we can just remove this comment.
combinat/free_module.py
:_order_cmp
requires a docstring
Done.
combinat/free_module.py
has a method calledechelon_form
, which is very similar toechelonize
fromcategories/modules_with_basis.py
. They essential do the same thing except thatechelon_form
allows one to specify abase_ring
. Should these be merged? or eliminate one of them?
Oops, good catch. I merged the two of them as echelon_form
in the
category. I deleted the base_ring
feature which seems useless and
dangerous (the resulting vectors had coefficient in the specified
base_ring but injected back into the original module). We probably
don't need to go through a deprecation period for a broken "feature"
like this.
Running long tests now.
New commits:
af995f4 Merge branch 'develop' into t/11111/more_support_for_finite_dimensional_modules_and_algebras_with_basis
a476501 Merge branch 'public/11111more_support_for_finite_dimensional_modules_and_algebras_with_basis' of trac.sagemath.org:sage into t/11111/more_support_for_finite_dimensional_modules_and_algebras_with_basis
New commits:
6a3a07d  11111: doc for CombinatorialFreeModule._order_cmp

b6d8bff  11111: CombinatorialFreeModule.echelon_from > Modules.WithBasis.ParentMethods.echelon_form; removed duplicate echelonize; delete meaningless and dangerous argument base_ring

comment:71 Changed 7 years ago by
Commit:  b6d8bff2d4e141b088ebfb7d2aea1b2a7e17dcb8 → 25881cc50c7e44b581aba8e7ac67cada770eb7a7 

Branch pushed to git repo; I updated commit sha1. New commits:
25881cc  11111: docstring improvement for quotient_module

comment:72 Changed 7 years ago by
Replying to nthiery:
Replying to saliola:
categories/finite_dimensional_modules_with_basis.py
: the docstring ofquotient_module
talks about quotient "free" module. What do you mean by free?I agree, the phrasing is not great. The point that needs to be highlighted is that this only handles quotients by free submodules admitting a unitriangular row echelon form, so that the quotient is again a free module. Any proposition of rewording is welcome!
I tweaked it a bit, using what you wrote here.
categories/semisimple_algebras.py
: what do you mean by "TODO: trivial implementations for semisimple_quotient"Err, good point, I don't really know. I guess all the methods that become trivial in this category, like is_semisimple, ... Maybe we can just remove this comment.
Removed.
Running long tests now.
Positive review, provided that all doctests pass.
comment:73 Changed 7 years ago by
Commit:  25881cc50c7e44b581aba8e7ac67cada770eb7a7 → 7fb5d0c433d36bf846d9cfb2cfae68475f042189 

Branch pushed to git repo; I updated commit sha1. New commits:
7fb5d0c  11111: final doc improvements

comment:74 Changed 7 years ago by
Milestone:  sage6.4 → sage6.7 

comment:75 Changed 7 years ago by
Keywords:  days20_5 days64 sd67 added 

comment:76 Changed 7 years ago by
Running the long tests on sage.math.upsud.fr
triggered the following failures:
sage t long src/sage/interfaces/expect.py # 1 doctest failed sage t long src/sage/tests/cmdline.py # 3 doctests failed sage t long src/sage/parallel/decorate.py # 1 doctest failed sage t long src/sage/functions/hypergeometric.py # 1 doctest failed sage t long src/sage/dev/sagedev.py # Timed out sage t long src/sage/schemes/elliptic_curves/lseries_ell.py # Timed out sage t long src/sage/doctest/test.py # 1 doctest failed sage t long src/sage/combinat/dyck_word.py # 1 doctest failed sage t long src/sage/misc/temporary_file.py # 5 doctests failed
All of them passed smoothly when I reran them with:
sage t long failed src/sage
So I assume it was just a transient issue due to the machine being under heavy load.
Hence, positive review!
Thanks a lot everyone, and in particular Franco!
That was a long story from Sage Days 20.5 to Sage Days 67 :)
comment:77 Changed 7 years ago by
Reviewers:  → Franco Saliola, Nicolas M. Thiéry 

Status:  needs_review → positive_review 
comment:78 followup: 80 Changed 7 years ago by
Dependencies:  #8678, #16925 → #8678 

PSA: I'm not merging tickets if the dependency can't be merged (i.e. don't depend on a duplicate/invalid/wontfix ticket).
comment:79 Changed 7 years ago by
Branch:  public/11111more_support_for_finite_dimensional_modules_and_algebras_with_basis → 7fb5d0c433d36bf846d9cfb2cfae68475f042189 

Resolution:  → fixed 
Status:  positive_review → closed 
comment:80 Changed 7 years ago by
Commit:  7fb5d0c433d36bf846d9cfb2cfae68475f042189 

comment:81 Changed 7 years ago by
Reviewers:  Franco Saliola, Nicolas M. Thiéry → Franco Saliola, Nicolas M. Thiéry, Aladin Virmaux 

Where is the patch?