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*
[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 σ R
which mathematicians might callX^s
-
r : R
elements of the coefficient ring -
i : σ
, with corresponding monomialX i
, often denotedX_i
by 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.