Monomial orders #
Monomial orders #
A monomial order is well ordering relation on a type of the form σ →₀ ℕ
which
is compatible with addition and for which 0
is the smallest element.
Since several monomial orders may have to be used simultaneously, one cannot
get them as instances.
In this formalization, they are presented as a structure MonomialOrder
which encapsulates
MonomialOrder.toSyn
, an additive and monotone isomorphism to a linearly ordered cancellative
additive commutative monoid.
The entry MonomialOrder.wf
asserts that MonomialOrder.syn
is well founded.
The terminology comes from commutative algebra and algebraic geometry, especially Gröbner bases,
where c : σ →₀ ℕ
are exponents of monomials.
Given a monomial order m : MonomialOrder σ
, we provide the notation
c ≼[m] d
and c ≺[m] d
to compare c d : σ →₀ ℕ
with respect to m
.
It is activated using open scoped MonomialOrder
.
Examples #
Commutative algebra defines many monomial orders, with different usefulness ranges.
In this file, we provide the basic example of lexicographic ordering.
For the graded lexicographic ordering, see Mathlib/Data/Finsupp/DegLex.lean
MonomialOrder.lex
: the lexicographic ordering onσ →₀ ℕ
. For this,σ
needs to be embedded with an ordering relation which satisfiesWellFoundedGT σ
. (This last property is automatic whenσ
is finite).
The type synonym is Lex (σ →₀ ℕ)
and the two lemmas MonomialOrder.lex_le_iff
and MonomialOrder.lex_lt_iff
rewrite the ordering as comparisons in the type Lex (σ →₀ ℕ)
.
References #
Note #
In algebraic geometry, when the finitely many variables are indexed by integers,
it is customary to order them using the opposite order : MvPolynomial.X 0 > MvPolynomial.X 1 > …
Monomial orders : equivalence of σ →₀ ℕ
with a well ordered type
- syn : Type u_2
The synonym type
- locacm : LinearOrderedCancelAddCommMonoid self.syn
syn
is a linearly ordered cancellative additive commutative monoid the additive equivalence from
σ →₀ ℕ
tosyn
- toSyn_monotone : Monotone ⇑self.toSyn
toSyn
is monotone - wf : WellFoundedLT self.syn
syn
is a well ordering
Instances For
Equations
- m.orderBot = OrderBot.mk ⋯
Given a monomial order, notation for the corresponding strict order relation on σ →₀ ℕ
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given a monomial order, notation for the corresponding order relation on σ →₀ ℕ
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- instOrderedCancelAddCommMonoidLexFinsuppOfLinearOrder = OrderedCancelAddCommMonoid.mk ⋯
The lexicographic order on σ →₀ ℕ
, as a MonomialOrder