Documentation

TauCeti.Algebra.Polynomial.Laurent.Specialization

Specializing Laurent modules at a unit #

Let R be a commutative ring and ε a unit of R. Evaluation at q = ε is the R-algebra map TauCeti.laurentEval ε : R[q,q⁻¹] → R. For a module N over R[q,q⁻¹], the specialization of N at ε is the quotient

N_ε = N ⧸ I_ε N, where I_ε = ker (laurentEval ε).

This is the base change R ⊗_{R[q,q⁻¹]} N along evaluation: evaluation is surjective, so R[q,q⁻¹] ⧸ I_ε ≃ R (Ideal.quotientKerAlgEquivOfSurjective), and (R[q,q⁻¹] ⧸ I_ε) ⊗ N ≃ N ⧸ I_ε N is TensorProduct.quotTensorEquivQuotSMul. The quotient presentation is used because it needs no auxiliary algebra structure of R over R[q,q⁻¹]. On N_ε every Laurent scalar acts through its value at ε; in particular q acts as ε. The universal property says that R-linear maps out of N_ε are the R-linear maps out of N turning multiplication by q into multiplication by ε.

Main definitions #

Main results #

@[reducible, inline]
abbrev TauCeti.LaurentSpecialization {R : Type u_1} [CommRing R] (ε : Rˣ) (N : Type u_2) [AddCommGroup N] [Module (LaurentPolynomial R) N] :
Type u_2

The specialization of an R[q,q⁻¹]-module at q = ε: the quotient of N by the kernel of evaluation at ε acting on N. It is the base change of N along TauCeti.laurentEval ε : R[q,q⁻¹] → R, and q acts on it as ε.

Equations
Instances For

    The specialization map N → N_ε.

    Equations
    Instances For
      theorem TauCeti.LaurentSpecialization.mk_apply {R : Type u_1} [CommRing R] (ε : Rˣ) {N : Type u_2} [AddCommGroup N] [Module (LaurentPolynomial R) N] (x : N) :

      The specialization of an element is its quotient class.

      Every element of the specialization is specialized from N.

      @[simp]
      theorem TauCeti.LaurentSpecialization.mk_smul {R : Type u_1} [CommRing R] (ε : Rˣ) {N : Type u_2} [AddCommGroup N] [Module (LaurentPolynomial R) N] [Module R N] [IsScalarTower R (LaurentPolynomial R) N] (p : LaurentPolynomial R) (x : N) :
      p • (mk ε) x = (laurentEval ε) p • (mk ε) x

      A Laurent scalar acts on the specialization at ε by its value at ε. In particular q acts as ε.

      noncomputable def TauCeti.LaurentSpecialization.lift {R : Type u_1} [CommRing R] (ε : Rˣ) {N : Type u_2} [AddCommGroup N] [Module (LaurentPolynomial R) N] [Module R N] [IsScalarTower R (LaurentPolynomial R) N] {A : Type u_3} [AddCommGroup A] [Module R A] (f : N →ₗ[R] A) (hf : ∀ (x : N), f (LaurentPolynomial.T 1 • x) = ↑ε • f x) :

      The universal property of the specialization at ε: an R-linear map out of N which turns multiplication by q into multiplication by ε factors through N_ε.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]
        theorem TauCeti.LaurentSpecialization.lift_mk {R : Type u_1} [CommRing R] (ε : Rˣ) {N : Type u_2} [AddCommGroup N] [Module (LaurentPolynomial R) N] [Module R N] [IsScalarTower R (LaurentPolynomial R) N] {A : Type u_3} [AddCommGroup A] [Module R A] (f : N →ₗ[R] A) (hf : ∀ (x : N), f (LaurentPolynomial.T 1 • x) = ↑ε • f x) (x : N) :
        (lift ε f hf) ((mk ε) x) = f x

        The map induced on the specialization agrees with the original map on specialized elements.

        A Laurent-linear map induces an R-linear map between specializations at the same unit.

        Equations
        Instances For
          @[simp]
          theorem TauCeti.LaurentSpecialization.map_mk {R : Type u_1} [CommRing R] (ε : Rˣ) {N : Type u_2} [AddCommGroup N] [Module (LaurentPolynomial R) N] [Module R N] [IsScalarTower R (LaurentPolynomial R) N] {M : Type u_4} [AddCommGroup M] [Module (LaurentPolynomial R) M] [Module R M] [IsScalarTower R (LaurentPolynomial R) M] (f : N →ₗ[LaurentPolynomial R] M) (x : N) :
          (map ε f) ((mk ε) x) = (mk ε) (f x)

          Specializing a Laurent-linear map commutes with taking quotient classes.

          theorem TauCeti.LaurentSpecialization.hom_ext {R : Type u_1} [CommRing R] (ε : Rˣ) {N : Type u_2} [AddCommGroup N] [Module (LaurentPolynomial R) N] [Module R N] [IsScalarTower R (LaurentPolynomial R) N] {A : Type u_3} [AddCommGroup A] [Module R A] {f g : LaurentSpecialization ε N →ₗ[R] A} (h : ∀ (x : N), f ((mk ε) x) = g ((mk ε) x)) :
          f = g

          An R-linear map out of the specialization is determined by its values on specialized elements.

          theorem TauCeti.LaurentSpecialization.hom_ext_iff {R : Type u_1} [CommRing R] {ε : Rˣ} {N : Type u_2} [AddCommGroup N] [Module (LaurentPolynomial R) N] [Module R N] [IsScalarTower R (LaurentPolynomial R) N] {A : Type u_3} [AddCommGroup A] [Module R A] {f g : LaurentSpecialization ε N →ₗ[R] A} :
          f = g ↔ ∀ (x : N), f ((mk ε) x) = g ((mk ε) x)
          @[simp]

          Specializing the identity map gives the identity on the specialization.

          @[simp]

          Specialization preserves composition of Laurent-linear maps.

          Under an R[q,q⁻¹]-algebra structure on R given by evaluation at ε, Laurent scalars and coefficients act compatibly on the specialization at ε.

          The specialization at ε is the base change along evaluation at ε. This is stated for any R[q,q⁻¹]-algebra structure on R whose algebra map is TauCeti.laurentEval ε, since that structure depends on ε and so is not an instance.

          noncomputable def TauCeti.LaurentSpecialization.basis {R : Type u_1} [CommRing R] (ε : Rˣ) {N : Type u_2} [AddCommGroup N] [Module (LaurentPolynomial R) N] [Module R N] [IsScalarTower R (LaurentPolynomial R) N] {ι : Type u_6} (b : Module.Basis ι (LaurentPolynomial R) N) :

          A Laurent-module basis specializes to a basis over the coefficient ring. It is the base-change basis IsBaseChange.basis along evaluation at ε: its vectors are the classes of the original basis vectors, and its coordinates are obtained by evaluating Laurent coordinates at ε.

          Equations
          Instances For
            @[simp]
            theorem TauCeti.LaurentSpecialization.basis_apply {R : Type u_1} [CommRing R] (ε : Rˣ) {N : Type u_2} [AddCommGroup N] [Module (LaurentPolynomial R) N] [Module R N] [IsScalarTower R (LaurentPolynomial R) N] {ι : Type u_6} (b : Module.Basis ι (LaurentPolynomial R) N) (i : ι) :
            (basis ε b) i = (mk ε) (b i)

            Specializing a basis specializes each basis vector.

            @[simp]
            theorem TauCeti.LaurentSpecialization.basis_repr_mk_apply {R : Type u_1} [CommRing R] (ε : Rˣ) {N : Type u_2} [AddCommGroup N] [Module (LaurentPolynomial R) N] [Module R N] [IsScalarTower R (LaurentPolynomial R) N] {ι : Type u_6} (b : Module.Basis ι (LaurentPolynomial R) N) (x : N) (i : ι) :
            ((basis ε b).repr ((mk ε) x)) i = (laurentEval ε) ((b.repr x) i)

            Coordinates in the specialized basis are evaluated Laurent coordinates.