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

Axioms and more functorial constructions #10963

Closed
nthiery opened this issue Mar 18, 2011 · 922 comments
Closed

Axioms and more functorial constructions #10963

nthiery opened this issue Mar 18, 2011 · 922 comments

Comments

@nthiery
Copy link
Contributor

nthiery commented Mar 18, 2011

This ticket implements:

  • Support for full subcategories defined by an axiom (Finite,
    Infinite, Facade, Commutative, Associative, Unital, Inverse,
    Distributive, NoZeroDivisors, Division, FiniteDimensional,
    Connected, WithBasis, Irreducible), and joins thereof:
    sage: Groups() & Sets().Finite()
    Category of finite groups

    sage: Algebras(QQ).Finite() & Monoids().Commutative()
    Category of finite commutative algebras over Rational Field

    sage: (Monoids() & CommutativeAdditiveGroups()).Distributive()
    Category of rings

    sage: Rings().Division() & Sets().Finite()
    Category of finite fields
  • New categories:

  • More mathematical rules:

    • A subquotient of a finite set is a finite set
    • The algebra of a finite set is finite dimensional
    • The algebra of a commutative magma is commutative
    • A finite division ring is a field
    • ...
  • Documentation:

    • More documentation for IsomorphicObjects
    • Complete revamping of sage.categories.primer
    • Misc
  • Use SubcategoryMethods to put the functorial constructions where
    they belong. E.g. DualObjects, TensorProducts, and Graded are now
    only defined for subcategories of Modules.

  • More lazy imports, removed a bunch of unused imports, ...

This ticket is dedicated to the town of Megantic where I was so warmly welcomed and a good chunk of this ticket got implemented!

Depends on #11224
Depends on #8327
Depends on #10193
Depends on #12895
Depends on #14516
Depends on #14722
Depends on #13589
Depends on #14471
Depends on #15069
Depends on #15094
Depends on #11688
Depends on #13394
Depends on #15150
Depends on #15506
Depends on #15757
Depends on #15759
Depends on #16244
Depends on #16269

CC: @sagetrac-sage-combinat @simon-king-jena @saliola @anneschilling @vbraun @nbruin @zabrocki

Component: categories

Keywords: days54

Work Issues: To be merged simultaneously with #15801

Author: Nicolas M. Thiéry

Branch: c16f18b

Reviewer: Volker Braun, Nils Bruin, Peter Bruin, Frédéric Chapoton, Darij Grinberg, Florent Hivert, Simon King, Travis Scrimshaw

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

@nthiery nthiery self-assigned this Mar 18, 2011
@nthiery
Copy link
Contributor Author

nthiery commented Apr 24, 2011

Dependencies: #11224

@nthiery

This comment has been minimized.

@stumpc5
Copy link
Contributor

stumpc5 commented Jun 10, 2011

comment:3

Hi Nicolas,

How far is this patch -- I just saw that the UCF patch depends on this.

I didn't actually figure out how it depends, I just get a trivial rebase, and then an import loop which wasn't easily fixable. The problem was my use of CombinatorialFreeModule...

Thx, Christian

@stumpc5 stumpc5 assigned stumpc5 and unassigned nthiery Jun 10, 2011
@stumpc5
Copy link
Contributor

stumpc5 commented Oct 11, 2011

Changed dependencies from #11224 to #11224, #8327

@simon-king-jena
Copy link
Member

comment:6

It turns out that many hunks of that patch fail to apply, when one starts with sage-4.8.alpha0 plus the new cython spkg from #11761 plus the rebased patch from #8327. So, there are further dependencies from the combinat queue. Could you try to find out which they are, and post them here?

@simon-king-jena
Copy link
Member

Work Issues: Find dependencies

@simon-king-jena
Copy link
Member

Changed work issues from Find dependencies to Find dependencies. Finite dimensional vector spaces

@simon-king-jena
Copy link
Member

comment:7

Working with the combinat queue, I could do some first tests. What I find very strange is the fact that the category of vector spaces coincides with the category of finite-dimensional vector spaces:

sage: VectorSpaces(QQ).FiniteDimensional() is VectorSpaces(QQ)
True

Is that really intended? I thought that the idea of this ticket is to create new categories dynamically. Hence, even though there previously was no specific implementation of the category of finite dimensional vector spaces, the construction VectorSpaces(QQ).FiniteDimensional() would automatically create one. Or am I misunderstanding something?

@dimpase
Copy link
Member

dimpase commented Nov 27, 2012

comment:10

Would you mind actually uploading the patch in question here?

@nthiery

This comment has been minimized.

@nthiery
Copy link
Contributor Author

nthiery commented Jun 14, 2013

comment:12

Little update: after two good weeks of work, here is the status of the patch in the Sage-Combinat queue:

  • 100% doctested
  • Passes all long tests (with the patches above it; well, there is a failure in sage_object.pyx, but it is caused by an above tests)
  • Reasonably documented, but needs a pass of proof reading and an overview documentation
  • Has not yet been tested for performance; but creating an instance of each of the categories in sage.categories (120 of them) takes less than 0.1s, so nothing horrible a priori.
  • Needs some discussions for good naming conventions and later directions. I have made a precise list which I'll post later on.
  • Has some trivial dependencies on unrelated patches that are close to positive review; I need to figure out the exact list.

In short: getting ready for review next week!

@nthiery
Copy link
Contributor Author

nthiery commented Jun 20, 2013

Changed dependencies from #11224, #8327 to #11224, #8327, #10193 #12895, #14516, #14722

@nthiery
Copy link
Contributor Author

nthiery commented Jun 20, 2013

Changed dependencies from #11224, #8327, #10193 #12895, #14516, #14722 to #11224, #8327, #10193, #12895, #14516, #14722, #13589

@nthiery
Copy link
Contributor Author

nthiery commented Jun 20, 2013

Changed work issues from Find dependencies. Finite dimensional vector spaces to none

@simon-king-jena
Copy link
Member

comment:15

Just for the record: I currently have applied

trac_12876_category_abstract_classes_for_hom.patch
trac11935_weak_pickling_by_construction-nt.patch
trac_11935-weak_pickling_by_construction-review-ts.patch
trac_12895-subcategory-methods-nt.patch
trac_12895-review.patch
trac_10193-graded_sets-rebased.patch
trac_10193-graded_sets-review-ts.patch
trac_13589-categories-c3_under_control-nt.patch
trac13589_cmp_key_attribute.patch
trac13589_improve_startuptime.patch
trac_12630_quivers_v2.patch
trac12630_refactor_code.2.patch
trac_14722-lazy_import_at_startup-nt.patch
trac_14266_ascii_art_13_05_15_EliX-jbp.patch
trac_14266-ascii_art-review-ts.patch
trac_14266_terminal_width.patch
trac_14402-tensor_product_infinite_crystals-ts.patch
trac_14143-alcove-path-al.3.patch
trac_14413-elementary_crystals-bs.patch
trac_14516-crystals_speedup-ts.patch

on top of sage-5.10.rc1 (I think these are all dependencies).

So, as soon as Nicolas told me how to get the patch from git and what is meant by "and follow-ups", I can start reviewing!

@simon-king-jena
Copy link
Member

comment:16

With these list I gave above, the patch does not apply. Some of it might be to blame the latest version of my trac13589_improve_startuptime.patch. So, let's try to remove this. But there seem to be further dependencies.

@simon-king-jena
Copy link
Member

comment:17

Even when I remove trac13589_improve_startuptime.patch, I still get 4 mismatches and 1 noise in category.py, 4 mismatches in category_singleton.pyx, and 1 mismatch and 2 noises in c3_controlled.pyx

@simon-king-jena
Copy link
Member

comment:18

Back at work. These patches on top of sage-5.11.b3 do apply:

trac_14516-crystals_speedup-ts.2.patch
trac_14722-lazy_import_at_startup-nt.patch
trac_13589-categories-c3_under_control-nt.patch
trac_10963-more_functorial_constructions-nt.patch

(the last patch applies with a little fuzz)

However, if we decide to include the two additional patches from #13589, then the last patch needs to be rebased.

For now, I'll try without the two additional patches, since they only concern performance (and seem to have disappointingly little effect).

@simon-king-jena
Copy link
Member

Reviewer: Simon King

@nthiery
Copy link
Contributor Author

nthiery commented Jun 26, 2013

comment:19

Hi Simon!

Great that the patches apply.

I am happy to handle the rebase on top of the extra patches for #13589. I also have some modifications in primer.py that I need to finish merging it. I'll try to finish this today. I guess there is enough to review elsewhere to keep you busy until then :-)

Thanks a lot!

Cheers,
Nicolas

@simon-king-jena
Copy link
Member

Work Issues: Rebase wrt. #13589

@darijgr
Copy link
Contributor

darijgr commented May 22, 2014

comment:800

Congrats too! (I guess that includes me, to some extent -- at the very least I'm happy to never again have to wait for this page to load...)

To get a pointer to the branch, you can click on the "commits" link. It ucrrently shows public/ticket/10963-doc-distributive as the branch name.

@sagetrac-elixyre sagetrac-elixyre mannequin mentioned this issue Dec 12, 2017
This was referenced Jun 2, 2014
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