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