Useful Notation #
We define notation `R[X σ]` to be `MvPolynomial σ R`.
For a Finset `s` and a natural number `n`, we also define `s ^ᶠ n` to be
`Fintype.piFinset (fun (_ : Fin n) => s)`. This matches the intuition that `s ^ᶠ n`
is the set of all tuples of length `n` with elements in `s`.
Equivalence between MvPolynomial (Fin 1) R and Polynomial R
Equations
Instances For
The R-submodule of R[X] consisting of polynomials of degree < n.
Equations
Instances For
The R-submodule of R[X] consisting of polynomials of degree ≤ n.
Equations
Instances For
Multivariate polynomial, where σ is the index set of the variables and
R is the coefficient ring
Equations
Instances For
The submodule of polynomials such that the degree with respect to each individual variable is
less than or equal to m.
Equations
Instances For
Notation for multivariate polynomial evaluation. The expression p ⸨x_1, ..., x_n⸩ is expanded to
the evaluation of p at the concatenated vectors x_1, ..., x_n, with the casting handled by
omega. If omega fails, we can specify the proof manually using 'proof syntax.
For example, p ⸨x, y, z⸩ is expanded to
MvPolynomial.eval (Fin.append (Fin.append x y) z ∘ Fin.cast (by omega)) p.
Equations
Instances For
Notation for multivariate polynomial evaluation. The expression p ⸨x_1, ..., x_n⸩ is expanded to
the evaluation of p at the concatenated vectors x_1, ..., x_n, with the casting handled by
omega. If omega fails, we can specify the proof manually using 'proof syntax.
For example, p ⸨x, y, z⸩ is expanded to
MvPolynomial.eval (Fin.append (Fin.append x y) z ∘ Fin.cast (by omega)) p.
Equations
Instances For
Notation for evaluating a multivariate polynomial with one variable left intact. The expression p ⸨X ⦃i⦄, x_1, ..., x_n⸩ is expanded to the evaluation of p, viewed as a multivariate polynomial
in all but the i-th variable, on the vector that is the concatenation of x_1, ..., x_n.
Similar to mvEval syntax, casting between Fin types is handled by omega, or manually
specified using 'proof syntax.
For example, p ⸨X ⦃i⦄, x, y⸩ is expanded to Polynomial.map (MvPolynomial.eval (Fin.append x y ∘ Fin.cast (by omega))) (MvPolynomial.finSuccEquivNth i p).
Equations
Instances For
Notation for evaluating a multivariate polynomial with one variable left intact. The expression p ⸨X ⦃i⦄, x_1, ..., x_n⸩ is expanded to the evaluation of p, viewed as a multivariate polynomial
in all but the i-th variable, on the vector that is the concatenation of x_1, ..., x_n.
Similar to mvEval syntax, casting between Fin types is handled by omega, or manually
specified using 'proof syntax.
For example, p ⸨X ⦃i⦄, x, y⸩ is expanded to Polynomial.map (MvPolynomial.eval (Fin.append x y ∘ Fin.cast (by omega))) (MvPolynomial.finSuccEquivNth i p).