Characteristic Set Basics #
This file defines the fundamental concepts required for the Characteristic Set Method (Wu's Method), including the Class, Degree, Rank, and Reduction of multivariate polynomials.
Main Definitions #
MvPolynomial.mainVariable: The "main variable" of a polynomial, defined as the maximum variable index in its support.MvPolynomial.mainDegree: The degree of the polynomial with respect to its main variable.MvPolynomial.rank: A lexicographic combination of main variable and degree, defining a well-ordering on polynomials.MvPolynomial.reducedTo: The predicate indicating that a polynomialqis reduced with respect top(meaningqhas lower degree inp's main variable).MvPolynomial.reducedToSet:qis reduced with respect to every polynomial in a set.
Implementation Notes #
We assume a linear order on the variable type σ.
The main variable mainVariable p is of type WithBot σ to handle the zero polynomial
conveniently (where mainVariable 0 = ⊥).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The main variable of a multivariate polynomial p is the largest variable index
appearing in p. If p = 0, its main variable is ⊥.
Instances For
The "main degree" of p: the degree of p with respect to its main variable.
If mainVariable p = ⊥ (i.e., p is a constant or zero), the degree is 0.
Equations
- p.mainDegree = match p.mainVariable with | none => 0 | some c => MvPolynomial.degreeOf c p
Instances For
The rank of a polynomial p is the pair (mainVariable p, degree p).
Ranks are ordered lexicographically.
Equations
- p.rank = (p.mainVariable, p.mainDegree)
Instances For
Equations
- x✝¹.instDecidableLE x✝ = decidable_of_iff (x✝¹.rank ≤ x✝.rank) ⋯
Equations
- MvPolynomial.instSetoid = AntisymmRel.setoid (MvPolynomial σ R) fun (x1 x2 : MvPolynomial σ R) => x1 ≤ x2
Equations
Equations
- MvPolynomial.Set.min PS h = ⋯.choose
Instances For
q is reduced with respect to pif q = 0 or
if the degree of q in the main variable of p is strictly less than the degree of p.
Note: if p is a constant, then no non-zero q is reduced with respect to p.
Equations
- q.reducedTo p = if q = 0 then True else match p.mainVariable with | none => False | some c => MvPolynomial.degreeOf c q < MvPolynomial.degreeOf c p
Instances For
Equations
- One or more equations did not get rendered due to their size.
q is reduced with respect to a set a
if it is reduced with respect to all elements of a.
Equations
- q.reducedToSet a = ∀ p ∈ a, q.reducedTo p