🤖 AI Summary
This work addresses the inefficiency and expression swell caused by repeated Gröbner basis computations in computer algebra. Building upon the F4 algorithm, it presents the first implementation in Julia that supports SIMD-friendly coefficient types—such as tuples of machine integers—for Gröbner basis tracing. By integrating multi-modular arithmetic, evaluation–interpolation techniques, and Traverso’s trace method, the approach enables efficient reuse of intermediate results across specializations of the same ideal. The resulting system achieves substantial speedups in tasks including structural identifiability analysis and polynomial system solving, while offering high performance, strong compilation efficiency, and a clean, easily integrable public interface.
📝 Abstract
A standard way to control expression swell in computer algebra is to use multi-modular or evaluation-interpolation methods. In computations involving Gröbner bases, these techniques typically require repeatedly computing Gröbner bases of specializations of the same ideal. These repeated computations can be accelerated through precomputation, notably using Traverso's tracing. We present Groebner.jl (https://github.com/sumiya11/Groebner.jl), a Julia implementation of the F4 algorithm that exposes Traverso's tracing through a reusable public interface. The implementation supports SIMD-friendly coefficient types, such as tuples of machine integers, which Julia compiles to efficient code with little manual intervention. This lets other Julia software leverage tracing to obtain speedups in applications such as structural identifiability of ordinary differential equation models and polynomial system solving.