sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.43k stars 479 forks source link

Polynomials over semirings #14797

Open darijgr opened 11 years ago

darijgr commented 11 years ago

With semirings implemented (#14507), it seems not too wide a stretch to ask for algebraic constructions involving them, such as (semi)algebras over semirings, and polynomials over semirings acting on such semialgebras. This would allow to reuse lots of code written for rings in a semiring context provided there are no minus signs appearing; right now I see two cases where I could use such a thing.

In particular, this should work rather than throwing an ArithmeticError:

sage: NN = NonNegativeIntegers()
sage: T = TropicalSemiring(QQ)
sage: NN(2) * T(3)

While the integer 2 doesn't canonically act on the tropical semiring, the nonnegative integer 2 should.

Depends on #14507

CC: @tscrim @sagetrac-sage-combinat @maxale

Component: combinatorics

Issue created by migration from https://trac.sagemath.org/ticket/14797

darijgr commented 11 years ago

Description changed:

--- 
+++ 
@@ -1 +1,11 @@
 With semirings implemented (#14507), it seems not too wide a stretch to ask for algebraic constructions involving them, such as (semi)algebras over semirings, and polynomials over semirings acting on such semialgebras. This would allow to reuse lots of code written for rings in a semiring context provided there are no minus signs appearing; right now I see two cases where I could use such a thing.
+
+In particular, this should work rather than throwing an ArithmeticError:
+
+```
+sage: NN = NonNegativeIntegers()
+sage: T = TropicalSemiring(QQ)
+sage: NN(2) * T(3)
+```
+
+While the *integer* 2 doesn't canonically act on the tropical semiring, the *nonnegative integer* 2 should.