Unlawful multivariate polynomials #
This file defines the Unlawful type, which represents multivariate polynomials
as a map from monomials to coefficients. Unlike Lawful, it does not enforce
the absence of zero coefficients.
Main definitions #
CPoly.Unlawful n R: A map fromCMvMonomial ntoR, implemented usingStd.ExtTreeMap.
@[reducible, inline]
Polynomial in n variables with coefficients in R.
Internally represented as a tree map from monomials to coefficients.
Instances For
@[instance_reducible]
instance
CPoly.instLawfulSingletonMonoRUnlawful
{n : ℕ}
{R : Type u_1}
:
LawfulSingleton (MonoR n R) (Unlawful n R)
@[instance_reducible]
instance
CPoly.instMembershipCMvMonomialUnlawful
{n : ℕ}
{R : Type u_1}
:
Membership (CMvMonomial n) (Unlawful n R)
@[instance_reducible, instance 10000, defaultInstance 1000]
instance
CPoly.instGetElemUnlawfulCMvMonomialMem
{n : ℕ}
{R : Type u_1}
:
GetElem (Unlawful n R) (CMvMonomial n) R fun (lp : Unlawful n R) (m : CMvMonomial n) => m ∈ lp
@[instance_reducible]
instance
CPoly.instGetElem?UnlawfulCMvMonomialMem
{n : ℕ}
{R : Type u_1}
:
GetElem? (Unlawful n R) (CMvMonomial n) R fun (lp : Unlawful n R) (m : CMvMonomial n) => m ∈ lp
instance
CPoly.instLawfulGetElemUnlawfulCMvMonomialMem
{n : ℕ}
{R : Type u_1}
:
LawfulGetElem (Unlawful n R) (CMvMonomial n) R fun (lp : Unlawful n R) (m : CMvMonomial n) => m ∈ lp
Construct an Unlawful polynomial from a list of monomial-coefficient pairs.
Instances For
def
CPoly.Unlawful.toFinset
{n : ℕ}
{R : Type u_1}
[DecidableEq R]
(p : Unlawful n R)
:
Finset (CMvMonomial n × R)
Instances For
@[reducible, inline]
The list of monomials present in the polynomial.
Instances For
@[simp]
theorem
CPoly.Unlawful.mem_monomials
{n : ℕ}
{R : Type u_1}
{m : CMvMonomial n}
{up : Unlawful n R}
:
@[simp]
theorem
CPoly.Unlawful.not_mem_zero
{n : ℕ}
{R : Type u_1}
[Zero R]
{x : CMvMonomial n}
[BEq R]
[LawfulBEq R]
:
x ∉ 0
Return the lexicographically largest monomial.
Instances For
@[instance_reducible]
instance
CPoly.Unlawful.instDecidableEq
{n : ℕ}
{R : Type u_1}
[DecidableEq R]
:
DecidableEq (Unlawful n R)
Instances For
@[simp]
theorem
CPoly.Unlawful.filter_get
{n : ℕ}
{R : Type u_2}
[BEq R]
[LawfulBEq R]
{v : R}
{m : CMvMonomial n}
(a : Unlawful n R)
: