Polynomial laws on modules #
Let M and N be a modules over a commutative ring R.
A polynomial law f : PolynomialLaw R M N, with notation f : M →ₚₗₗ[R] N,
is a “law” that assigns a natural map PolynomialLaw.toFun' f S : S ⊗[R] M → S ⊗[R] N
for every R-algebra S.
For type-theoretic reasons, if R : Type u, then the definition of the polynomial map f
is restricted to R-algebras S such that S : Type u.
Using the fact that a module is the direct limit of its finitely generated submodules, that a
finitely generated subalgebra is a quotient of a polynomial ring in the universe u, plus
the commutation of tensor products with direct limits, we extend the functor
to all R-algebras.
The two fields involving the definition of PolynomialLaw,
PolynomialLaw.toFun' and PolynomialLaw.isCompat' are primed.
They are superseded by their universe-polymorphic counterparts,
the definition PolynomialLaw.toFun and the lemma PolynomialLaw.isCompat
which should be used once the theory is properly stated.
For constructions of general definitions of PolynomialLaw
at a universe-polymorphic level, one needs to lift
elements in a tensor product to smaller universes.
For this, one can make use of
PolynomialLaw.exists_lift or PolynomialLaw.exists_lift',
or establish appropriate generalizations.
Main definitions/lemmas #
Instance :
Module R (M →ₚₗ[R] N)shows that polynomial laws form anR-module.PolynomialLaw.ground fis the mapM → Ncorresponding toPolynomialLaw.toFun' f Runder the isomorphismsR ⊗[R] M ≃ₗ[R] M, and similarly forN.
In further works, we construct the coefficients of a polynomial law and show the relation with
polynomials (when the module M is free and finite).
Implementation notes #
In the literature, the theory is written for commutative rings, but this implementation
only assumes R is a commutative semiring.
References #
A polynomial law M →ₚₗ[R] N between R-modules is a functorial family of maps
S ⊗[R] M → S ⊗[R] N, for all R-algebras S.
For universe reasons, S has to be restricted to the same universe as R.
The functions
S ⊗[R] M → S ⊗[R] Nunderlying a polynomial law- isCompat' {S : Type u} [CommSemiring S] [Algebra R S] {S' : Type u} [CommSemiring S'] [Algebra R S'] (φ : S →ₐ[R] S') : ⇑(LinearMap.rTensor N φ.toLinearMap) ∘ self.toFun' S = self.toFun' S' ∘ ⇑(LinearMap.rTensor M φ.toLinearMap)
The compatibility relations between the functions underlying a polynomial law
Instances For
M →ₚₗ[R] N is the type of R-polynomial laws from M to N.
Equations
Instances For
Equations
Equations
The identity as a polynomial law
Equations
Instances For
The sum of two polynomial laws
Equations
Instances For
Equations
External multiplication of a f : M →ₚₗ[R] N by r : R
Equations
Instances For
Equations
Equations
Equations
Equations
The opposite of a polynomial law
Equations
Instances For
Equations
Equations
The map M → N associated with a f : M →ₚₗ[R] N (essentially, f.toFun' R)
Equations
Instances For
Equations
The map ground assigning a function M → N to a polynomial map f : M →ₚₗ[R] N as a
linear map.
Equations
Instances For
Composition of polynomial maps.
Equations
Instances For
The type of lifts of S ⊗[R] M to a polynomial ring.
Equations
Instances For
The lift of f.toFun to the type lifts
Equations
Instances For
The projection from φ to S ⊗[R] M.
Equations
Instances For
The auxiliary lift of PolynomialLaw.toFun' on PolynomialLaw.lifts
Equations
Instances For
The extension of PolynomialLaw.toFun' to all universes.
Equations
Instances For
Compare the values of PolynomialLaw.toFun' in a square diagram
Compare the values of PolynomialLaw.toFun' in a square diagram,
when one of the maps is a subalgebra inclusion.
Tensor products in S ⊗[R] M can be lifted to some
MvPolynomial R n ⊗[R] M, for a finite n.
Lift an element of a tensor product
Lift an element of a tensor product and a scalar
For semirings in the universe u, PolynomialLaw.toFun coincides
with PolynomialLaw.toFun'.
Extends PolynomialLaw.isCompat_apply' to all universes.
Extends PolynomialLaw.isCompat to all universes
Extension of PolynomialLaw.zero_def
Extension of PolynomialLaw.add_def_apply
Extension of PolynomialLaw.add_def
Extension of PolynomialLaw.smul_def
Extension of MvPolynomial.comp_toFun'