Renaming variables of polynomials #
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*[CommSemiring R][CommSemiring S](the coefficients)s : σ →₀ ℕ, a function fromσtoℕwhich is zero away from a finite set. This will give rise to a monomial inMvPolynomial σ Rwhich mathematicians might callX^sr : Relements of the coefficient ringi : σ, with corresponding monomialX i, often denotedX_iby mathematiciansp : MvPolynomial σ α
Rename all the variables in a multivariable polynomial.
Equations
Instances For
Given a function between sets of variables f : σ → τ that is injective with proof hf,
MvPolynomial.killCompl hf is the AlgHom 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
- MvPolynomial.killCompl hf = MvPolynomial.aeval fun (i : τ) => if h : i ∈ Set.range f then MvPolynomial.X ((Equiv.ofInjective f hf).symm ⟨i, h⟩) else 0
Instances For
MvPolynomial.rename e is an equivalence when e is.
Equations
- MvPolynomial.renameEquiv R f = { toFun := ⇑(MvPolynomial.rename ⇑f), invFun := ⇑(MvPolynomial.rename ⇑f.symm), left_inv := ⋯, right_inv := ⋯, map_mul' := ⋯, map_add' := ⋯, commutes' := ⋯ }
Instances For
Every polynomial is a polynomial in finitely many variables.
exists_finset_rename for two polynomials 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.