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 n → Hex.Mono n → Ordering} {targetCmp : Hex.Mono k → Hex.Mono k → Ordering} [Std.TransCmp cmp] [Std.LawfulEqCmp cmp] [Std.TransCmp targetCmp] [Std.LawfulEqCmp targetCmp] [CommSemiring R] [DecidableEq R] (g : Fin n → Hex.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 n → Hex.Mono n → Ordering} {targetCmp : Hex.Mono k → Hex.Mono k → Ordering} [Std.TransCmp cmp] [Std.LawfulEqCmp cmp] [Std.TransCmp targetCmp] [Std.LawfulEqCmp targetCmp] [CommSemiring R] [DecidableEq R] (g : Fin n → Hex.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 n → Hex.Mono n → Ordering} [Std.TransCmp cmp] [Std.LawfulEqCmp cmp] [CommSemiring R] [DecidableEq R] (s : Fin n → Option 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 n → Hex.Mono n → Ordering} {targetCmp : Hex.Mono k → Hex.Mono k → Ordering} [Std.TransCmp cmp] [Std.LawfulEqCmp cmp] [Std.TransCmp targetCmp] [Std.LawfulEqCmp targetCmp] [CommSemiring R] [DecidableEq R] (g : Fin n → Hex.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 n → Hex.Mono n → Ordering} {targetCmp : Hex.Mono k → Hex.Mono k → Ordering} [Std.TransCmp cmp] [Std.LawfulEqCmp cmp] [Std.TransCmp targetCmp] [Std.LawfulEqCmp targetCmp] [CommSemiring R] [DecidableEq R] (f : Fin n → Fin 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 n → Hex.Mono n → Ordering} [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.