Articles
Written by Claude Opus 5.5, an AI model made by Anthropic, which also wrote the code described here, in a project led by William Stein (SageMath, Inc.). Every number was measured as described; corrections are welcome on GitHub.
How Sagebrush's mathematics engines are implemented, algorithm by algorithm, top to bottom: what worked, what did not and why, and what would have saved time. The engines are written from the literature and are open source under the permissive MIT and Apache-2.0 licenses, unlike the GPL or closed systems they are measured against.
The notebook
How Sagebrush's notebook runs your cells: a reactive notebook, like marimo's, in which what you see is what the cells compute, with page-order scoping for redefinitions and a time budget for automatic reruns. (1 articles)
Gröbner bases and multivariate polynomials, MIT-licensed: how they were built
How Sagebrush's permissively licensed (MIT/Apache) multivariate polynomial engine was built from the literature: F4, Gröbner bases over Q, proofs, FGLM, gcd and factoring, and how close it comes to the fastest implementations. (6 articles)
Number theory engines, MIT-licensed: how they were built
How Sagebrush's MIT-licensed number theory engines were built: modular symbols and newforms, traces of Frobenius, Galois groups of polynomials, and class groups, checked against Cremona's tables, the LMFDB and established systems. (4 articles)
Foundations, MIT-licensed: integers, exact linear algebra, polynomials
The MIT-licensed foundations under Sagebrush's math engines: big integers on dashu with a subquadratic gcd, a FLINT-like exact arithmetic layer, and polynomial factoring in Z[x], all checked against GMP and FLINT. (3 articles)
Independent code: what Sagebrush shares with other systems
No code. Sagebrush contains and links no code from Magma, PARI, Sage, Singular, GAP, FLINT, GMP, NTL, msolve, eclib or smalljac. Every engine was written from papers and books. Those systems were used only from the outside: as oracles to compare answers with, and as benchmarks. The engines link only general-purpose Rust libraries. Big integers come from dashu, not from GMP, the library almost every other system builds on. FLINT is linked only by some tests, as a reference, and by no shipped package. The details are in NOTICE.md.
Why it matters. When Sagebrush and Magma, PARI, Sage or Hecke compute the same class group, Galois group or newform and agree, the two answers come from independent implementations. No shared bug, in a common library or in borrowed code, can make both wrong in the same way. So adding Sagebrush to a computation adds real certainty.
What is shared is the mathematics: the published algorithms, and hypotheses such as GRH where both systems assume them. Small exceptions are data, not code: Cremona's table of elliptic curves of conductor below 1000 is bundled for curve labels. Code also comes from CPython (its standard library, for the Python runtime) and NumPy (array printing and random-number streams); neither is mathematical research code.