This patch Implement a set with categories to index monomials of infinite indeterminate algebraic structure. There is 4 versions of this set : power of indeterminate can be negative or only positive and there is a dense and sparse implementation of the set (list/dictionary).
From this set, there is an example of graded_algebras_with_basis which is the polynomial ring in infinite indeterminate.
The Schubert base ring inherit from this example and changing 3 thing:
- the name of the ring
- the name of variable (y1, y2, y3, ...) for Schubert
- A call method for element which correspond to the specialization
With this patch, one can do for example:
sage: from sage.combinat.multivariate_polynomials.schubert_base_ring import SchubertBaseRing
sage: from sage.categories.examples.graded_algebras_with_basis import PolynomialRingInfiniteIndeterminate
sage: S = SchubertBaseRing(ZZ); S
Base ring for Schubbert polynomials in the variables y1, y2, y3, ... over Integer Ring
sage: A = PolynomialRingInfiniteIndeterminate(S); A
An example of graded algebra with basis: the polynomial ring in infinite indeterminate over Base ring for Schubbert polynomials in the variables y1, y2, y3, ... over Integer Ring
sage: A.base_ring().an_element()*A.an_element()
(1+2*y1+y1*y3^2*y4^3+3*y1^2) + (2+4*y1+2*y1*y3^2*y4^3+6*y1^2)*X1 + (1+2*y1+y1*y3^2*y4^3+3*y1^2)*X1*X3^2*X4^3 + (3+6*y1+3*y1*y3^2*y4^3+9*y1^2)*X1^2
This built the ambient space for Schubert polynomials which are polynomials in two infinite alphabet of indeterminate indexed by PositiveIntegers?() (or NonNegativeIntegers?()... setting this is easy...)
Will be followed by the Adrien's work on #6629
Under discussion with combinatorics veterans..........