schubmult 5.2.0 released: SageMath integration and documentation

28 views
Skip to first unread message

Matthew J. Samuel

unread,
Oct 20, 2026, 1:17:39 PM (7 days ago) Oct 20
to sage-...@googlegroups.com
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/schubmult

Thanks,
Matt Samuel
Reply all
Reply to author
Forward
0 new messages