Hi all,
A follow-up to my earlier message: schubmult 5.2.0 is now released, including the SageMath integration. There is no longer any need to install a pre-release. From a Sage notebook or session:
sage: %pip install --upgrade schubmult
The documentation is now on GitHub Pages, including a reference for the Sage interface:
https://matthematics.github.io/schubmult/https://matthematics.github.io/schubmult/modules/schubmult/sage/For anyone who missed the earlier announcement, schubmult is a Python package for Schubert calculus computations. The optional `schubmult.sage` layer provides Sage parents, coercions, and combinatorial bases, with arithmetic delegated to schubmult's multiplication kernels. It includes:
- Double Schubert, quantum Schubert, and quantum double Schubert polynomial rings, including parabolic quantum computations for partial flag varieties.
- Grothendieck and double Grothendieck polynomial rings with symbolic beta.
- `PolynomialAlgebra(R)` and its finite-variable version, with Schubert, Grothendieck, monomial, key, slide, forest, glide, Lascoux, and grove bases as realizations, and conversions between them.
- Interoperability with Sage's `SchubertPolynomialRing` and `KeyPolynomials`, and symmetric-function conversions in the Grassmannian case.
For example:
sage: from schubmult.sage import *
sage: X = DoubleSchubertPolynomialRing(QQ)
sage: X([3, 1, 2]) * X([2, 1])
(y_2-y_0)*X_y[3, 1, 2] + X_y[4, 1, 2, 3]
sage: A = PolynomialAlgebra(QQ)
sage: S = A.schubert(); k = A.key()
sage: k(S[3, 1, 2])
k[2]
A couple of conventions worth flagging: the Sage interface uses 0-indexed variables as opposed to the native 1-indexing of schubmult; the K-theoretic bases of `PolynomialAlgebra` specialize beta to -1, whereas the Grothendieck rings retain symbolic beta.
Sage remains optional, and non-Sage users can continue using schubmult as an ordinary Python package.
I'd still very much welcome reports from people trying it in Sage—especially compatibility reports beyond Sage 10.9, mathematical spot checks in equivariant/quantum/K-theoretic examples, and feedback on anything that feels un-Sage-like. If an import or computation fails, a minimal example and traceback would be helpful.
Source, issues, and pull requests:
https://github.com/matthematics/schubmultThanks,
Matt Samuel