Groebner.jl: A package for Gröbner bases computations in Julia
Alexander Demin, Shashi Gowda
TL;DR
Groebner.jl delivers a native Julia implementation of the $F4$ algorithm for Gröbner bases, supporting computations over $\\bZ/p\\bbZ$ and $\\bbQ$ with a focus on the degree reverse lexicographical order. It combines a distributed polynomial representation, packed monomial encoding, and multiple arithmetic strategies, and leverages multi-modular computation with tracing and batched application to accelerate rational reconstructions via CRT. The framework integrates with existing Julia symbolic tools (e.g., AbstractAlgebra, DynamicPolynomials, Symbolics.jl) and demonstrates competitive performance against established systems, aided by parallelism and batched linear algebra. These contributions enhance the efficiency, portability, and extensibility of Gröbner-bases computations in Julia, enabling scalable use in research and applications across symbolic computation and dynamical systems modeling.
Abstract
We present Groebner.jl, a Julia package for computing Groebner bases with the F4 algorithm. Groebner.jl is an efficient, portable, and open-source software. Groebner.jl works over integers modulo a prime and over the rationals, supports basic multi-threading, and specializes in computation in the degree reverse lexicographical monomial ordering. The implementation incorporates various symbolic computation techniques and leverages the Julia type system and tooling, which allows Groebner.jl to compete with the existing state of the art, in many instances outperform it, and exceed them in extensibility. Groebner.jl is freely available at https://github.com/sumiya11/Groebner.jl.
