FAQ

Does grobx use AI to compute Gröbner bases?

No. An AI agent wrote the source code for grobx, but grobx contains no AI: no trained model and no learned heuristic. It computes with the algorithms from the published research, as Singular and msolve do.

How can grobx be faster than Singular, which has been tuned for decades?

grobx owes its lead mostly to a different algorithm, not to better tuning. Singular's std is a Buchberger algorithm: it reduces one S-polynomial at a time. grobx uses Faugère's F4, which reduces many S-polynomials at once as one sparse matrix. Over ℚ, Singular also computes in ℚ itself, and its basis is certain. grobx computes modulo primes and lifts the result, which is far cheaper but right only with high probability. The other fast programs, msolve, Groebner.jl, and Maple, lift from primes too. grobx's lead over msolve, which uses F4 as well, is smaller than over Singular.

Is grobx's basis over ℚ certain?

The basis is right only with high probability. grobx computes the basis modulo several random primes and lifts it to ℚ by the Chinese remainder theorem and rational reconstruction. grobx also computes the basis at one more prime, which the lift does not use, and returns the lifted basis where the two agree. A wrong basis passes this test only where each wrong coefficient is congruent to the right one modulo that prime, which random primes make improbable but cannot rule out. Lifting from primes is the standard method over ℚ, and msolve, Groebner.jl, and Maple use it as well.

How can I be sure that the algorithms in grobx are implemented correctly?

During development, every run was compared with the correct result, computed beforehand by trusted programs: Singular, Groebner.jl, and msolve. We designed the corpus to cover as much of the space of inputs as we could. The algorithms come from the published research that was available to the agent at implementation time (about 130 papers). The source code cites the paper behind each idea, so the code can be checked against the papers. The agent also wrote a large test suite, which stays in the code: every change runs it and checks every corpus instance against its correct basis again. A change is merged only once it also computes the correct basis for every instance in a holdout set that the agent has never seen.

I'm not convinced. How do I know that I can trust grobx's results?

You are right: ultimately, it is a question of trust, whether in a team of human developers or in a process that humans designed and an AI coding agent carried out. As laid out above, we think there are good reasons to trust the process. But to build trust, you could use grobx for everyday computations and check its results with the software of your choice. After enough correct results, you could check only the results you publish. Along the way, we also found several bugs in other programs, which we will report to their authors. No developer, human or AI, writes code without bugs; testing is what finds them, and grobx's testing is laid out above.

I found a bug in grobx. What should I do?

We are very sorry. Please write to us at the address on the start page, and include the system. That holds for a wrong basis as for a crash, a hang, or any other promise of this site or the manual that grobx does not keep.

Which monomial orders does grobx support?

grobx supports grevlex, lex, and block orders of grevlex blocks, but no weighted or matrix orders. grevlex is the default. For lex, grobx computes the grevlex basis and changes it to lex by FGLM where the ideal is zero-dimensional and of degree at most 65535. Otherwise grobx runs F4 in lex. The degree lexicographic order is to come.

What is planned for future versions?

  • Faster arithmetic over small fields: GF(p) for primes below 256 with narrower coefficients, and GF(2) with rows as bit vectors.
  • Multithreading. grobx computes on one thread today; over ℚ, the primes of the lift, which are independent of each other, come first.
  • Kernels for the vector units of newer x86-64 CPUs, AVX2 and AVX-512, which grobx picks at run time, so that one build still runs on every x86-64 CPU.
  • The fields GF(pk).
  • The degree lexicographic order, which Sage calls deglex, Maple grlex, and Singular Dp.
  • A fast checker. grobx's checker, a crate of its own that shares no code with the engine, certifies a basis exactly, also over ℚ, where the lift alone is right only with high probability. Today a check takes many times as long as the computation; we will make it fast enough to leave on.