On Tue, 9 Aug 2022 at 21:14, 'Martin R' via sage-devel
<
sage-...@googlegroups.com> wrote:
>
> I am guessing that part of the problem is
>
> sage: SymmetricFunctions(ZZ) in IntegralDomains()
> False
Though the following looks fine
sage: SymmetricFunctions(ZZ).e() in IntegralDomains()
True
> The other problem is that fraction_field is not a parent method of IntegralDomains.
Indeed, it is only implemented in sage/rings/ring.pyx which is a
historic left over. Moreover, the implementation uses a custom cache
with double underscore where cached_method would do the job. I think
it would be a good time to try to move the implementation to
categories.
Could you open a ticket and cc me?
> I'd be grateful for input / corrections.
As Trevor implicitly suggested, I think you want a custom fraction
field here so that you can change basis. Typically, you would like a
coherent interface as follows
sage: S = SymmetricFunctions(ZZ)
sage: S.fraction_field().e() is S.e().fraction_field()
True
sage: Ke = S.fraction_field().e()
sage: Kp = S.fraction_field().p()
sage: Kp(Ke([3,2,1]) / Ke([2,1])) == Kp(Ke([3,2,1])) / Kp(Ke([2,1]))
True
But to my mind this is another layer of complexity and would require
an other iteration of tickets.
Vincent