Documentation

Mathlib.RingTheory.Grassmannian

Grassmannians #

Main definitions #

Implementation notes #

In the literature, two conventions exist:

  1. The kᵗʰ Grassmannian parametrises k-dimensional subspaces of a given finite-dimensional vector space over a field.
  2. The kᵗʰ Grassmannian parametrises quotients that are locally free of rank k, of a given module over a ring.

For the purposes of Algebraic Geometry, the first definition here cannot be generalised to obtain a scheme to represent the functor, which is why the second definition is the one chosen by Grothendieck, EGA I.9.7.3 (Springer edition only), and in EGA V.11 (unpublished).

The first definition in the stated generality (i.e. over a field F, and finite-dimensional vector space V) can be recovered from the second definition by noting that k-dimensional subspaces of V are canonically equivalent to (n-k)-dimensional quotients of V, and also to k-dimensional quotients of V*, the dual of V. In symbols, this means that the first definition is equivalent to G(n - k, V; F) and also to G(k, V →ₗ[F] F; F), where n is the dimension of V.

TODO #

structure Module.Grassmannian (R : Type u) [CommRing R] (M : Type v) [AddCommGroup M] [Module R M] (k : ) extends Submodule R M :

G(k, M; R) is the kᵗʰ Grassmannian of the R-module M. It is defined to be the set of submodules of M whose quotient is locally free of rank k. Note that there is another convention in literature where instead the submodule is required to have rank k. See the module docstring of RingTheory.Grassmannian.

Instances For

    G(k, M; R) is the kᵗʰ Grassmannian of the R-module M. It is defined to be the set of submodules of M whose quotient is locally free of rank k. Note that there is another convention in literature where instead the submodule is required to have rank k. See the module docstring of RingTheory.Grassmannian.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      theorem Module.Grassmannian.ext {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {k : } {N₁ N₂ : Grassmannian R M k} (h : N₁.toSubmodule = N₂.toSubmodule) :
      N₁ = N₂
      theorem Module.Grassmannian.ext_iff {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {k : } {N₁ N₂ : Grassmannian R M k} :
      N₁ = N₂ N₁.toSubmodule = N₂.toSubmodule
      def Module.Grassmannian.baseChangeMkQ {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {A : Type w} [CommRing A] [Algebra R A] (B : Type w) [CommRing B] [Algebra R B] [Algebra A B] [IsScalarTower R A B] (N : Submodule A (TensorProduct R A M)) :

      The surjective B-linear map B ⊗[R] M → B ⊗[A] ((A ⊗[R] M) ⧸ N) obtained as the base change of N.mkQ along A → B

      Equations
      Instances For
        theorem Module.Grassmannian.baseChangeMkQ_surjective {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {A : Type w} [CommRing A] [Algebra R A] {B : Type w} [CommRing B] [Algebra R B] [Algebra A B] [IsScalarTower R A B] (N : Submodule A (TensorProduct R A M)) :
        noncomputable def Module.Grassmannian.baseChangeMkQEquiv {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {A : Type w} [CommRing A] [Algebra R A] {B : Type w} [CommRing B] [Algebra R B] [Algebra A B] [IsScalarTower R A B] (N : Submodule A (TensorProduct R A M)) :

        The B-linear equivalence (B ⊗[R] M) ⧸ ker (baseChangeMkQ N) ≃ₗ[B] B ⊗[A] ((A ⊗[R] M) ⧸ N) underlying Module.Grassmannian.map.

        Equations
        Instances For
          def Module.Grassmannian.map {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {k : } {A : Type w} [CommRing A] [Algebra R A] {B : Type w} [CommRing B] [Algebra R B] (f : A →ₐ[R] B) (N : Grassmannian A (TensorProduct R A M) k) :

          The map on Grassmannians induced by base change along an algebra map A → B. Given a submodule N of A ⊗[R] M, the image is the kernel of the composition B ⊗[R] M ≃ B ⊗[A] (A ⊗[R] M) → B ⊗[A] ((A ⊗[R] M) ⧸ N)`.

          Equations
          Instances For
            theorem Module.Grassmannian.map_toSubmodule {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {k : } {A : Type w} [CommRing A] [Algebra R A] {B : Type w} [CommRing B] [Algebra R B] (f : A →ₐ[R] B) (N : Grassmannian A (TensorProduct R A M) k) :
            @[simp]
            theorem Module.Grassmannian.map_id {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] (k : ) (A : CommAlgCat R) (N : Grassmannian (↑A) (TensorProduct R (↑A) M) k) :
            map (AlgHom.id R A) N = N
            theorem Module.Grassmannian.map_comp {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] (k : ) {A : Type w} [CommRing A] [Algebra R A] {B : Type w} [CommRing B] [Algebra R B] (f : A →ₐ[R] B) {C : Type w} [CommRing C] [Algebra R C] (g : B →ₐ[R] C) (N : Grassmannian A (TensorProduct R A M) k) :
            map (g.comp f) N = map g (map f N)

            The Grassmannian functor sends an R-algebra A to G(k, A ⊗[R] M; A).

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              @[simp]
              theorem Module.Grassmannian.functor_map {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] (k : ) {X✝ Y✝ : CommAlgCat R} (f : X✝ Y✝) :
              @[simp]
              theorem Module.Grassmannian.functor_obj {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] (k : ) (A : CommAlgCat R) :
              (functor k).obj A = Grassmannian (↑A) (TensorProduct R (↑A) M) k