An abstract Buchberger procedure #
This file starts the formalization of Becker--Weispfenning--Kredel, Theorem 5.53.
The procedure is represented by an abstract step relation on sets of polynomials: choose a pair from the current set, reduce its S-polynomial to a nonzero normal form with unit leading coefficient, and add that normal form to the set.
The correctness theorem in this file says that any set reached by such steps that satisfies the S-polynomial condition is a Gröbner basis of the ideal generated by the initial set. Over a Noetherian polynomial ring, every state reaches a terminal state. Over a field with finitely many variables, finite initial sets reach finite terminal sets.
The ideal generated by the leading terms of the elements of G.
Equations
- m.leadingTermIdeal G = Ideal.span (m.leadingTerm '' G)
Instances For
One abstract Buchberger step.
The next set is obtained by adjoining a nonzero normal form of an S-polynomial of two current generators. The unit leading coefficient assumption is included so that the existing reduction API over general coefficient rings remains available after adjoining the new polynomial.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The S-polynomial condition: every S-polynomial of two elements reduces to zero modulo the set.
Equations
- m.SPolynomialCondition G = ∀ p ∈ G, ∀ q ∈ G, Relation.ReflTransGen (m.ReducesToSet G) (m.sPolynomial p q) 0
Instances For
One abstract Buchberger step preserves finiteness of the polynomial set.
A finite sequence of abstract Buchberger steps preserves finiteness.
Correctness of the abstract Buchberger procedure.
If H is reached from G by Buchberger steps and satisfies the S-polynomial
condition, then H is a Gröbner basis of the original ideal I.
States for the abstract Buchberger procedure over a general coefficient ring. The invariant records that every current generator is either zero or has unit leading coefficient.
Equations
- m.BuchbergerState = { G : Set (MvPolynomial σ R) // ∀ g ∈ G, IsUnit (m.leadingCoeff g) ∨ g = 0 }
Instances For
The step relation on Buchberger states.
Equations
- MonomialOrder.BuchbergerState.Step m G H = m.BuchbergerStep ↑G ↑H
Instances For
Noetherian termination for the abstract Buchberger step relation.
This is the ACC argument underlying Buchberger's algorithm: every genuine step strictly increases the leading-term ideal, and this cannot happen indefinitely in a Noetherian polynomial ring.
A terminal state has no outgoing Buchberger step.
Equations
- MonomialOrder.BuchbergerState.Terminal m G = ∀ (H : m.BuchbergerState), ¬MonomialOrder.BuchbergerState.Step m G H
Instances For
Every state reaches a terminal state in a Noetherian polynomial ring.
If every nonzero polynomial has unit leading coefficient, then a terminal Buchberger state satisfies the S-polynomial condition.
This hypothesis is automatic over fields, and it is the point where the general coefficient-ring version needs a coefficient condition beyond Noetherianity.
Existence and correctness of a terminal abstract Buchberger run.
Starting from G, the abstract procedure reaches a terminal state H; if
nonzero normal forms have unit leading coefficient, then H is a Gröbner
basis of the original ideal I.
Field version of the terminal-state correctness theorem.
Over a field, every nonzero leading coefficient is a unit, so the
coefficient condition in exists_isGroebnerBasis_terminal is automatic.
Finite-variable field version of the abstract Buchberger procedure.
If the coefficient field is Noetherian and the variable type is finite, the
Noetherian hypothesis on MvPolynomial σ K is provided by Hilbert's basis
theorem.
Finite-output version of the terminal-state correctness theorem over a field with finitely many variables.
Starting from a finite polynomial set, the abstract procedure reaches a finite terminal set that is a Gröbner basis of the ideal generated by the initial set.