#10963: More functorial constructions
-------------------------------------+-------------------------------------
       Reporter:  nthiery            |        Owner:  stumpc5
           Type:  enhancement        |       Status:  needs_review
       Priority:  major              |    Milestone:  sage-6.1
      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                |       Commit:
   Dependencies:  #11224, #8327,     |  eb7b486c6fecac296052f980788e15e2ad1b59e4
  #10193, #12895, #14516, #14722,    |     Stopgaps:
  #13589, #14471, #15069, #15094,    |
  #11688, #13394, #15150, #15506     |
-------------------------------------+-------------------------------------

Comment (by nthiery):

 Replying to [comment:484 vbraun]:
 > Replying to [comment:483 nthiery]:
 > > - Ah, another thing about the above potential notations: having
 > >   FiniteTest1 inherit from Test1 as idiom suggests that there is an
 > >   *Is A* relation between the category of finite test1s and the
 > >   category of test1s, which is wrong.
 >
 > Can you be more specific what the problem is? A `finite_foo` is a `foo`.

 Definitely, and this modeled by the fact that
 FiniteFoos().parent_class inherits from Foos().parent_class. And
 similarly for element_class.

 What I meant however is that, at the level of categories, the
 "super-category" relation should not be modeled by inheritance. In our
 example an instance of Foos models the category of all Foos. So the
 category of finite foos, a strict subset, cannot be an instance of
 Foos.

 > >   Similarly, having FiniteTest1
 > >   inherit from axioms.Finite suggests that FiniteTest1 is an axiom,
 > >   when it actually is a category.
 >
 > `FiniteTest1` inherits first of all from `Category`. I presume you mean
 `Finite2`, which cannot inherit from `Test2` because it is an inner class.
 It could inherit directly from `Category` to make that clear(er), which I
 tend to agree with.

 I really meant `FiniteTest1`. In:
 {{{
     class FiniteTest1(Test1, axioms.Finite):
 }}}
 even if axioms.Finite appears second, it's still a superclass, and the
 isA relation should be satisfied.

 > Except that the relations should be specified explicitly, as in e.g.
 > {{{#!python
 > category_axiom_model.add_relation(
 >     [Rings(), axiom.Division(), axiom.Finite()],
 >     [Fields(), axiom.Finite()],
 >     description="Wedderburn's Theorem")
 > )
 > }}}
 > during the instantiation of either Rings or Fields

 Hmm, let's see how it feels in practice at a larger scale. If this is
 only needed for deduction rules, the refactoring would be easy.

 What time line do you foresee:
 - Having a proof of concept for the category-and-axiom-manager
 - Refactoring the whole code according to it
 - Getting it ready for integration

 Best,
                               Nicolas

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