Documentation

HexMvPolyMathlib.Correspondence

@[simp]

The Mathlib support is exactly the image of the executable canonical support.

@[simp]

Executable per-variable degree agrees with Mathlib's degreeOf.

@[simp]

Each executable coordinate degree is Mathlib's corresponding per-variable degree.

@[simp]

The executable variable list contains exactly the variables of nonzero Mathlib degree.

theorem HexMvPolyMathlib.monoDegree_eq_sum {n : } (m : Hex.Mono n) :
m.degree = (monoEquiv m).sum fun (x : Fin n) (e : ) => e

Total exponent in an executable monomial is the corresponding Finsupp sum.

@[simp]

Executable total degree agrees with Mathlib's totalDegree.

Fixed-order Horner evaluation has the same Mathlib interpretation as direct algebra-hom evaluation.

@[simp]

Increasing one executable exponent corresponds to adding the Mathlib single-variable exponent.

@[simp]

Executable formal differentiation agrees with Mathlib's partial derivative.

@[simp]

Executable homogeneous projection agrees with Mathlib's homogeneous component.

theorem HexMvPolyMathlib.subst_eq_aeval {n k : } {R : Type u} {cmp : Hex.Mono nHex.Mono nOrdering} {targetCmp : Hex.Mono kHex.Mono kOrdering} [Std.TransCmp cmp] [Std.LawfulEqCmp cmp] [Std.TransCmp targetCmp] [Std.LawfulEqCmp targetCmp] [CommSemiring R] [DecidableEq R] (g : Fin nHex.MvPoly k R targetCmp) (p : Hex.MvPoly n R cmp) :

Executable substitution is its algebra-hom evaluation specialization.

@[simp]
theorem HexMvPolyMathlib.toMvPolynomial_subst {n k : } {R : Type u} {cmp : Hex.Mono nHex.Mono nOrdering} {targetCmp : Hex.Mono kHex.Mono kOrdering} [Std.TransCmp cmp] [Std.LawfulEqCmp cmp] [Std.TransCmp targetCmp] [Std.LawfulEqCmp targetCmp] [CommSemiring R] [DecidableEq R] (g : Fin nHex.MvPoly k R targetCmp) (p : Hex.MvPoly n R cmp) :

Executable substitution agrees with Mathlib's variable bind.

@[simp]
theorem HexMvPolyMathlib.toMvPolynomial_partialEval {n : } {R : Type u} {cmp : Hex.Mono nHex.Mono nOrdering} [Std.TransCmp cmp] [Std.LawfulEqCmp cmp] [CommSemiring R] [DecidableEq R] (s : Fin nOption R) (p : Hex.MvPoly n R cmp) :

Executable partial evaluation agrees with binding assigned variables to constants and leaving the other variables unchanged.

@[simp]
theorem HexMvPolyMathlib.toMvPolynomial_bind₁ {n k : } {R : Type u} {cmp : Hex.Mono nHex.Mono nOrdering} {targetCmp : Hex.Mono kHex.Mono kOrdering} [Std.TransCmp cmp] [Std.LawfulEqCmp cmp] [Std.TransCmp targetCmp] [Std.LawfulEqCmp targetCmp] [CommSemiring R] [DecidableEq R] (g : Fin nHex.MvPoly k R targetCmp) (p : Hex.MvPoly n R cmp) :

The compatibility spelling bind₁ has the same Mathlib correspondence as substitution.

@[simp]

Changing the executable storage order does not change the corresponding Mathlib polynomial.

@[simp]
theorem HexMvPolyMathlib.toMvPolynomial_rename {n k : } {R : Type u} {cmp : Hex.Mono nHex.Mono nOrdering} {targetCmp : Hex.Mono kHex.Mono kOrdering} [Std.TransCmp cmp] [Std.LawfulEqCmp cmp] [Std.TransCmp targetCmp] [Std.LawfulEqCmp targetCmp] [CommSemiring R] [DecidableEq R] (f : Fin nFin k) (p : Hex.MvPoly n R cmp) :

Executable variable renaming agrees with Mathlib's rename.

@[simp]
theorem HexMvPolyMathlib.toMvPolynomial_ofUnivariate {n : } {R : Type u} {cmpSucc : Hex.Mono (n + 1)Hex.Mono (n + 1)Ordering} {cmpBase : Hex.Mono nHex.Mono nOrdering} [Std.TransCmp cmpSucc] [Std.LawfulEqCmp cmpSucc] [Std.TransCmp cmpBase] [Std.LawfulEqCmp cmpBase] [CommSemiring R] [DecidableEq R] (q : Hex.DensePoly (Hex.MvPoly n R cmpBase)) :

The inverse executable recursive view agrees with the inverse Mathlib finSuccEquiv.