On Wed, May 01, 2024 at 02:47:45PM +0200, Ralf Hemmecke wrote:
>
>
> On 5/1/24 14:33, Waldek Hebisch wrote:
> > OrderedField() : Category == Joint(OrderedIntegralDomain, Field)
> >
> > 'OrderedField' potentially says more than the Join.
>
> Clear.
>
> > So to make 'OrderedField' useful we would have to annotate algebra with
> > several declarations like
> >
> > if C has OrderedRing and C has Field then OrderedField
>
> Well, I could understand a line like
>
> if % has OrderedRing and % has Field then OrderedField
>
> But I would bet, in the declaration of a domain the programmer often already
> knows whether or not % should export OrderedField.
>
> If you really mean C and C would be a parameter of a domain/category,
> then I agree with you, but actually also there if the parameter C exports
> both OrderedRing and Field then why wouldn't it also export OrderedField?
> Yes, there maybe cases where this is really so, but shouldń't such cases be
> exceptions and rather maybe point to a not perfect definition of the
> respective exports of C?
If you have a concrete domain in mind, then adding OrderedField
alone can be sufficient. But in general case we have parameters
and behaviour depends on parameters. More, thanks to inheritance
we can get interesting behaviour as composition of simpler things
OrderedRing and Field can be propagated and acted on separately.
AFAICS mathematically ordered field is exactly ordered ring
which is also a field.
Of course, ATM we only have a handful of domains which are ordered
rings, so in this specific case one or the other way is not a big
deal. But I would prefer to keep consistent style in the whole
algebra. And in general using explicit Join currently works
better.
> > BTW: For domain we can write things like
> >
> > SortedExponentVector == U32Vector
> >
> > which basically says that 'SortedExponentVector' is an alias for
> > 'U32Vector'. BUT ATM this is not supported for categories. You can
> > write:
>
> I actually wonder where this might be useful.
Well, if that worked for categories, then
OrderedField() == Joint(OrderedIntegralDomain, Field)
would be just an alias, removing all possible troubles with propagation.
Concerning 'SortedExponentVector', it allows to make sources more
general while saving me writing a piece of boilerplate.
--
Waldek Hebisch
--
You received this message because you are subscribed to the Google Groups
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/fricas-devel/ZjJWE5PlgqV8a8AQ%40fricas.org.