On Fri, Feb 14, 2020 at 04:43:12PM +0100, Ralf Hemmecke wrote: > Hello, > > FriCAS does not have LaurentPolynomial.
One can view such domain as localization of polynomials. It is one of reasons that I would like to have good support for localizations, a lot of concrete examples could be covered in that way. > However, one can easily create > (a simple approximation of) them as > > (1) -> PolynomialRing(Fraction(Integer),DirectProduct(3,Integer)) > > PolynomialRing(Fraction(Integer),DirectProduct(3,Integer)) is not a > valid type. > > Ooops... why doesn't that work? > > The reason is the line > > https://github.com/hemmecke/fricas/blob/master-hemmecke/src/algebra/vector.spad#L295 > > if R has OrderedAbelianMonoidSup then OrderedAbelianMonoidSup > > in DirectProductCategory. Although only OrderedAbelianMonoid would be > required for the above creation via PolynomialRing, it cannot yet be done. > > Easiest way to solve that problem, is to add > > if R has OrderedAbelianMonoid then OrderedAbelianMonoid > > to DirectProductCategory. > > Easy patch, but I do not propose it right now, because there is more and > I want to hear opinions. For different resons I am looking at similar issue. Namely, there is redundancy between free monoid and polynomials. I would like to make polynomials available for tensor products, but limit profileration of spurious signatures. So I am thinking about introducing some intermediate categories. Clearly, it is worth looking if DirectProductCategory deserves some intermediate category. > DirectProduct(n,R) only exports OrderedAbelianMonoidSup, if R is of type > OrderedAbelianMonoidSup. Clearly, this sup function > > http://fricas.github.io/api/OrderedAbelianMonoidSup.html#l-ordered-abelian-monoid-sup-sup > > sup: (%, %) -> % > sup(x, y) returns the least element from which both x and y can be > subtracted. > > is mainly used for reductions. But the specification is a bit vague. > Why doesn't have Integer such a function? Yes, there would be no "least" > element. But what does "least" in this specification mean anyway? Is it > the smallest with respect to the < order of the domain? > Then clearly, Integer cannot have this. My impression is that this is essenially 'gcd', but written in additive terms (think of multiplicative monoid of a commutaive ring with 1 as n abelian monoid). Defining it for integers is probably useless, I would rather avoid requirng it when not necessary. > However, the idea of this function is to achieve "positiveness", i.e., > if c = sup(a, b) then c-a>=0 and c-b>=0. Right? Wouldn't it make sense > to add this condition to the "sup" specification. Then also Integer and > Fraction Integer can be of type OrderedAbelianMonoidSup. > > Furthermore, I don't see a good reason why OrderedDirectProduct, > HomogeneousDirectProduct and SplitHomogeneousDirectProduct require > their argument to be of type OrderedAbelianMonoidSup. Without the "Sup" > would be sufficient. Yes, probably previously nobody was thinking about more general applications. -- 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/20200214162445.GA28145%40math.uni.wroc.pl.
