Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More support for finite dimensional modules and algebras with basis #11111

Closed
nthiery opened this issue Apr 1, 2011 · 124 comments
Closed

More support for finite dimensional modules and algebras with basis #11111

nthiery opened this issue Apr 1, 2011 · 124 comments

Comments

@nthiery
Copy link
Contributor

nthiery commented Apr 1, 2011

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

Depends on #8678

CC: @sagetrac-sage-combinat

Component: categories

Keywords: days20_5, days64, sd67

Author: Florent Hivert, Franco Saliola, Nicolas M. Thiéry

Branch: 7fb5d0c

Reviewer: Franco Saliola, Nicolas M. Thiéry, Aladin Virmaux

Issue created by migration from https://trac.sagemath.org/ticket/11111

@nthiery nthiery added this to the sage-5.11 milestone Apr 1, 2011
@nthiery nthiery self-assigned this Apr 1, 2011
@nthiery
Copy link
Contributor Author

nthiery commented Apr 1, 2011

Changed author from Nicolas M. Thiéry to Florent Hivert, Franco Saliola, Nicolas M. Thiéry

@nthiery

This comment has been minimized.

@jdemeyer
Copy link

comment:2

Where is the patch?

@nthiery

This comment has been minimized.

@nthiery

This comment has been minimized.

@nthiery nthiery changed the title Add features to FiniteDimensionalModulesWithBasis More support for finite dimensional modules and algebras with basis May 6, 2012
@nthiery
Copy link
Contributor Author

nthiery commented May 6, 2012

Dependencies: #10963

@jdemeyer jdemeyer modified the milestones: sage-5.11, sage-5.12 Aug 13, 2013
@sagetrac-vbraun-spam sagetrac-vbraun-spam mannequin modified the milestones: sage-6.1, sage-6.2 Jan 30, 2014
@sagetrac-vbraun-spam sagetrac-vbraun-spam mannequin modified the milestones: sage-6.2, sage-6.3 May 6, 2014
@nthiery
Copy link
Contributor Author

nthiery commented Jul 1, 2014

@nthiery
Copy link
Contributor Author

nthiery commented Jul 1, 2014

Last 10 new commits:

4d4b59910668: Fixed refinement of category to handle Parent._abstract_element_class
125aa8e10668: Simplify the logic of endsets of modular abelian varieties using the new Endsets construction
fc5b0f110668: trivial doctest output updates w.r.t. the new printing of homsets
4b67d7c10668: Explicitly document that Element.__getattr__ can also be useful when refining categories
ad8702710668: Fixed doctest
905105010668: fixed ReST typo
62948b08678: Imported and rebased patch from Sage-Combinat queue
47e0eb98678: Imported stuff relevant to morphisms from trac_11111-finite_dimensional_modules-nt.patch
553c5de8678: Imported module_morphism_function_extend-fh.patch
7abb19711111: Imported trac_11111-finite_dimensional_modules-nt.patch from the Sage-Combinat queue (+ minor proofreading)

@nthiery
Copy link
Contributor Author

nthiery commented Jul 1, 2014

Commit: 7abb197

@nthiery
Copy link
Contributor Author

nthiery commented Jul 1, 2014

Changed dependencies from #10963 to #10963, #8678

@avirmaux
Copy link
Mannequin

avirmaux mannequin commented Jul 2, 2014

comment:12

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

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 2, 2014

Changed commit from 7abb197 to 2a9ccb0

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 2, 2014

Branch pushed to git repo; I updated commit sha1. New commits:

2a9ccb011111: fixed Sage startup (NonUnitalAlgebras had to be rebased to NonAssociativeAlgebras)

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 3, 2014

Changed commit from 2a9ccb0 to bac267e

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 3, 2014

Branch pushed to git repo; I updated commit sha1. New commits:

bac267e11111: fixed some remaining rebasing issues (most tests pass now) + proofreading

@avirmaux
Copy link
Mannequin

avirmaux mannequin commented Jul 8, 2014

comment:15

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: 

@avirmaux
Copy link
Mannequin

avirmaux mannequin commented Jul 8, 2014

comment:16

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.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 16, 2015

Branch pushed to git repo; I updated commit sha1. New commits:

6a3a07d11111: doc for CombinatorialFreeModule._order_cmp

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 16, 2015

Changed commit from 2036314 to 6a3a07d

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 16, 2015

Branch pushed to git repo; I updated commit sha1. New commits:

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

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 16, 2015

Changed commit from 6a3a07d to b6d8bff

@nthiery
Copy link
Contributor Author

nthiery commented Apr 16, 2015

comment:70

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:

  1. First of all, I'm not sure what the commit cfe399d is all about. Was it some sort of auto-merge by git?

Sounds like we both merged in 6.7.beta0 and that was a merge of our
merges ...

  1. categories/finite_dimensional_modules_with_basis.py: the docstring of quotient_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!

  1. 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.

  1. combinat/free_module.py: _order_cmp requires a docstring

Done.

  1. combinat/free_module.py has a method called echelon_form, which is very similar to echelonize from categories/modules_with_basis.py. They essential do the same thing except that echelon_form allows one to specify a base_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/11111-more_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:

6a3a07d11111: doc for CombinatorialFreeModule._order_cmp
b6d8bff11111: CombinatorialFreeModule.echelon_from -> Modules.WithBasis.ParentMethods.echelon_form; removed duplicate echelonize; delete meaningless and dangerous argument base_ring

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 16, 2015

Branch pushed to git repo; I updated commit sha1. New commits:

25881cc11111: docstring improvement for quotient_module

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 16, 2015

Changed commit from b6d8bff to 25881cc

@saliola
Copy link

saliola commented Apr 16, 2015

comment:72

Replying to @nthiery:

Replying to @saliola:

  1. categories/finite_dimensional_modules_with_basis.py: the docstring of quotient_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.

  1. 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.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 16, 2015

Changed commit from 25881cc to 7fb5d0c

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 16, 2015

Branch pushed to git repo; I updated commit sha1. New commits:

7fb5d0c11111: final doc improvements

@darijgr darijgr modified the milestones: sage-6.4, sage-6.7 Apr 16, 2015
@nthiery
Copy link
Contributor Author

nthiery commented Apr 16, 2015

Changed keywords from none to days20_5, days64, sd67

@nthiery
Copy link
Contributor Author

nthiery commented Apr 16, 2015

comment:76

Running the long tests on sage.math.u-psud.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 :-)

@nthiery
Copy link
Contributor Author

nthiery commented Apr 16, 2015

Reviewer: Franco Saliola, Nicolas M. Thiéry

@vbraun
Copy link
Member

vbraun commented Apr 19, 2015

Changed dependencies from #8678, #16925 to #8678

@vbraun
Copy link
Member

vbraun commented Apr 19, 2015

comment:78

PSA: I'm not merging tickets if the dependency can't be merged (i.e. don't depend on a duplicate/invalid/wontfix ticket).

@vbraun
Copy link
Member

vbraun commented Apr 19, 2015

@nthiery
Copy link
Contributor Author

nthiery commented Apr 21, 2015

Changed commit from 7fb5d0c to none

@nthiery
Copy link
Contributor Author

nthiery commented Apr 21, 2015

comment:80

Replying to @vbraun:

PSA: I'm not merging tickets if the dependency can't be merged (i.e. don't depend on a duplicate/invalid/wontfix ticket).

Oh, I see. We should have updated. the dependency from #16925 to #16926. Thanks for the tip!

@nthiery
Copy link
Contributor Author

nthiery commented May 2, 2015

Changed reviewer from Franco Saliola, Nicolas M. Thiéry to Franco Saliola, Nicolas M. Thiéry, Aladin Virmaux

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants