#10963: More functorial constructions
-------------------------+-------------------------------------------------
       Reporter:         |         Owner:  stumpc5
  nthiery                |        Status:  needs_work
           Type:         |     Milestone:
  enhancement            |    Resolution:
       Priority:  major  |     Merged in:
      Component:         |     Reviewers:  Simon King
  categories             |   Work issues:  Reduce startup time by 5%. Avoid
       Keywords:         |  "recursion depth exceeded (ignored)". Trivial
        Authors:         |  doctest fixes.
  Nicolas M. ThiƩry      |  Dependencies:  #11224, #8327, #10193, #12895,
Report Upstream:  N/A    |  #14516, #14722, #13589
         Branch:         |
       Stopgaps:         |
-------------------------+-------------------------------------------------

Comment (by SimonKing):

 Replying to [comment:56 nthiery]:
 > Replying to [comment:54 SimonKing]:
 > > That's the point: In my approach, this category would be constructed
 on the fly, by means of a dynamic construction.
 >
 > We do not even want to construct it on the fly! FiniteFields satisfies
 > at least four axioms that can apply to Magmas (Associative, Finite,
 > Unital, Commutative). We do not want the category hierarchy above
 > FiniteFields to contain {2^4} categories (most of which being trivial)
 just for Magmas.

 OK, that's a considerable change. In the "good" old times, a category C
 was (by definition) a sub-category of another category D, if and only if D
 was contained in `C.all_super_categories()`. So, you say this shall change
 (or already has?).


 > Which is exactly what I want since finite commutative rings is
 > trivial, and realized as a join category. There is no point in adding
 > join categories in all_super_categories.

 OK, it somehow convinces me that we don't want to create categories "on
 the fly" that do not provide any additional information (methods etc)
 beyond the categories that were created anyway.

 But then, I still don't see why this should be implemented by a plain join
 category.

 Do we agree that there is a category `Magmas().Commutative()`, such that
 all information on `Algebras(ZZ).Commutative()` is provided by
 `Algebras(ZZ)` together with `Magmas().Commutative()`? Sure, we could then
 implement `Algebras(ZZ).Commutative()` by a `JoinCategory`.

 But then, I would expect that we can have a class which is similar to
 `JoinCategory` but is specially designed and thus faster. After all,
 creating the join of a list of categories should be more complicated then
 adding a list of "axiom categories" (such as `Magmas().Commutative()` and
 `Magmas().Division()` and `Sets().Finite()`) to a given category (such as
 `Rings()`).

 Anyway, I think my original suggestion of creating classes for categories-
 with-axiom on the fly was probably not so good. But I think I will try to
 experiment with the other idea (using a specially designed "mock join" for
 adding axioms).

--
Ticket URL: <http://trac.sagemath.org/ticket/10963#comment:57>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to