Renaming variables of polynomials #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file establishes the rename operation on multivariate polynomials,
which modifies the set of variables.
Main declarations #
Notation #
As in other polynomial files, we typically use the notation:
-
σ τ α : Type*(indexing the variables) -
R S : Type*[comm_semiring R][comm_semiring S](the coefficients) -
s : σ →₀ ℕ, a function fromσtoℕwhich is zero away from a finite set. This will give rise to a monomial inmv_polynomial σ Rwhich mathematicians might callX^s -
r : Relements of the coefficient ring -
i : σ, with corresponding monomialX i, often denotedX_iby mathematicians -
p : mv_polynomial σ α
Rename all the variables in a multivariable polynomial.
Equations
Given a function between sets of variables f : σ → τ that is injective with proof hf,
kill_compl hf is the alg_hom from R[τ] to R[σ] that is left inverse to
rename f : R[σ] → R[τ] and sends the variables in the complement of the range of f to 0.
Equations
- mv_polynomial.kill_compl hf = mv_polynomial.aeval (λ (i : τ), dite (i ∈ set.range f) (λ (h : i ∈ set.range f), mv_polynomial.X (⇑((equiv.of_injective f hf).symm) ⟨i, h⟩)) (λ (h : i ∉ set.range f), 0))
mv_polynomial.rename e is an equivalence when e is.
Every polynomial is a polynomial in finitely many variables.
exists_finset_rename for two polyonomials at once: for any two polynomials p₁, p₂ in a
polynomial semiring R[σ] of possibly infinitely many variables, exists_finset_rename₂ yields
a finite subset s of σ such that both p₁ and p₂ are contained in the polynomial semiring
R[s] of finitely many variables.
Every polynomial is a polynomial in finitely many variables.