@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
noncomputable def
HexMvPolyTheory.Kernel.denote
{n : ℕ}
{R : Type u}
[CommSemiring R]
[BEq R]
[LawfulBEq R]
[DecidableEq R]
{cmp : Hex.Mono n → Hex.Mono n → Ordering}
[Std.TransCmp cmp]
[Std.LawfulEqCmp cmp]
(p : PolyList R)
:
MvPolynomial (Fin n) R
Denote a kernel term list as a Mathlib multivariate polynomial.
Instances For
theorem
HexMvPolyTheory.Kernel.denote_one
{n : ℕ}
{R : Type u}
[CommSemiring R]
[BEq R]
[LawfulBEq R]
[DecidableEq R]
{cmp : Hex.Mono n → Hex.Mono n → Ordering}
[Std.TransCmp cmp]
[Std.LawfulEqCmp cmp]
:
The list multiplicative identity denotes the Mathlib identity.
theorem
HexMvPolyTheory.Kernel.denote_add
{n : ℕ}
{R : Type u}
[CommSemiring R]
[BEq R]
[LawfulBEq R]
[DecidableEq R]
{cmp : Hex.Mono n → Hex.Mono n → Ordering}
[Std.TransCmp cmp]
[Std.LawfulEqCmp cmp]
(p q : PolyList R)
:
List addition has the same denotation as Mathlib addition.
theorem
HexMvPolyTheory.Kernel.denote_mul
{n : ℕ}
{R : Type u}
[CommSemiring R]
[BEq R]
[LawfulBEq R]
[DecidableEq R]
{cmp : Hex.Mono n → Hex.Mono n → Ordering}
[Std.TransCmp cmp]
[Std.LawfulEqCmp cmp]
(p q : PolyList R)
(hp : ∀ t ∈ p, t.1.length = n)
(hq : ∀ t ∈ q, t.1.length = n)
:
List multiplication has the same denotation as Mathlib multiplication.
theorem
HexMvPolyTheory.Kernel.denote_neg
{n : ℕ}
{R : Type u}
[CommRing R]
[BEq R]
[LawfulBEq R]
[DecidableEq R]
{cmp : Hex.Mono n → Hex.Mono n → Ordering}
[Std.TransCmp cmp]
[Std.LawfulEqCmp cmp]
(p : PolyList R)
:
List negation has the same denotation as Mathlib negation.
theorem
HexMvPolyTheory.Kernel.denote_sub
{n : ℕ}
{R : Type u}
[CommRing R]
[BEq R]
[LawfulBEq R]
[DecidableEq R]
{cmp : Hex.Mono n → Hex.Mono n → Ordering}
[Std.TransCmp cmp]
[Std.LawfulEqCmp cmp]
(p q : PolyList R)
:
List subtraction has the same denotation as Mathlib subtraction.
theorem
HexMvPolyTheory.Kernel.denote_smul
{n : ℕ}
{R : Type u}
[CommSemiring R]
[BEq R]
[LawfulBEq R]
[DecidableEq R]
{cmp : Hex.Mono n → Hex.Mono n → Ordering}
[Std.TransCmp cmp]
[Std.LawfulEqCmp cmp]
(a : R)
(p : PolyList R)
:
List scalar multiplication denotes multiplication by a Mathlib constant.
theorem
HexMvPolyTheory.Kernel.denote_toList
{n : ℕ}
{R : Type u}
[CommSemiring R]
[BEq R]
[LawfulBEq R]
[DecidableEq R]
{cmp : Hex.Mono n → Hex.Mono n → Ordering}
[Std.TransCmp cmp]
[Std.LawfulEqCmp cmp]
(p : Hex.MvPoly n R cmp)
:
Producer conversion reads as the corresponding Mathlib polynomial.
theorem
HexMvPolyTheory.Kernel.isZero_iff
{n : ℕ}
{R : Type u}
[CommSemiring R]
[BEq R]
[LawfulBEq R]
[DecidableEq R]
{cmp : Hex.Mono n → Hex.Mono n → Ordering}
[Std.TransCmp cmp]
[Std.LawfulEqCmp cmp]
{p : PolyList R}
(hp : Hex.MvPoly.Kernel.Canonical n p)
:
The list zero test agrees with zero Mathlib denotation on canonical inputs.
theorem
HexMvPolyTheory.Kernel.beq_iff
{n : ℕ}
{R : Type u}
[CommSemiring R]
[BEq R]
[LawfulBEq R]
[DecidableEq R]
{cmp : Hex.Mono n → Hex.Mono n → Ordering}
[Std.TransCmp cmp]
[Std.LawfulEqCmp cmp]
{p q : PolyList R}
(hp : Hex.MvPoly.Kernel.Canonical n p)
(hq : Hex.MvPoly.Kernel.Canonical n q)
:
The list equality test agrees with equality of Mathlib denotations on canonical inputs.