Documentation

CompPoly.Data.MvPolynomial.Notation

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
                      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).

                                      Equations
                                        Instances For