#10963: More functorial constructions
-------------------------------------+-------------------------------------
       Reporter:  nthiery            |        Owner:  stumpc5
           Type:  enhancement        |       Status:  needs_info
       Priority:  major              |    Milestone:  sage-6.2
      Component:  categories         |   Resolution:
       Keywords:  days54             |    Merged in:
        Authors:  Nicolas M. Thiéry  |    Reviewers:  Simon King, Frédéric
Report Upstream:  N/A                |  Chapoton
         Branch:                     |  Work issues:
  public/ticket/10963-doc-           |       Commit:
  distributive                       |  c718f218fbc726bf3cf7f4c3f20638c9b0c7eea7
   Dependencies:  #11224, #8327,     |     Stopgaps:
  #10193, #12895, #14516, #14722,    |
  #13589, #14471, #15069, #15094,    |
  #11688, #13394, #15150, #15506     |
-------------------------------------+-------------------------------------

Comment (by nbruin):

 Replying to [comment:508 SimonKing]:
 > Replying to [comment:506 nthiery]:
 > > Along about a fairly similar line, I think this is pointing once again
 > > in the direction of using Algebras(Fields()) rather than
 > > Algebras(QQ).
 >
 > Yes. What is the obstruction for doing so?
 >
 > I mean, I never understood why we store the base ring information twice
 (in the category and in the object). When we create any category with
 basering, we should accept a category instead of a ring.
 >
 > Or are there category operations where knowledge of the basering (and
 not just of the category of the basering) is needed?

 There are mathematical reasons why you might want to have this
 information: For
 the category of R-modules to be abelian, one needs R
 specified. So, from a category-theoretic point of view it would be
 desirable to
 have an object "left modules over R", with "R" specified--otherwise you
 don't
 have an object symbolizing the relevant abelian category. However, we're
 finding
 that doing so is too costly for all objects, because most objects don't
 care
 about their category.

 It reminds me of the situation where `Integers(p)` doesn't construct
 itself to
 lie in `Fields()` because the primality test is too expensive in general.
 Would
 it be an idea to initially put things in the category `Modules(Rings())`
 and
 then refine the category with the base ring if required?

 One would need to very carefully analyse the situations that would have to
 trigger a category refinement, which is particularly treacherous because
 the
 category refinement will have global effects, since the relevant module is
 a
 parent and hence likely globally unique: You could have a module that
 suddenly
 changes category because some other piece of code somewhere decides it
 needs a
 finer category (after all, this strange "category" of "left modules over
 rings"
 is partitioned in abelian categories of "left R-modules", parametrized by
 "R")

 Of course, as pointed out, it's not so clear we actually *need* the
 category to
 ever be refined, other than to accurately model mathematical theory.
 There's
 nothing actually hanging off the registration of the base with the
 category.

 So, perhaps this can be taken as an argument for not registering the base
 in the
 category at all, for now: if we need it at some later point, we could try
 and
 implement it via category refinement (and deal with all the dragons that
 come
 with it)

--
Ticket URL: <http://trac.sagemath.org/ticket/10963#comment:514>
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