Documentation

Mathlib.RingTheory.Smooth.StandardSmooth

Standard smooth algebras #

In this file we define standard smooth algebras. For this we introduce the notion of a PreSubmersivePresentation. This is a presentation P that has fewer relations than generators. More precisely there exists an injective map from P.rels to P.vars. To such a presentation we may associate a jacobian. P is then a submersive presentation, if its jacobian is invertible.

Finally, a standard smooth algebra is an algebra that admits a submersive presentation.

While every standard smooth algebra is smooth, the converse does not hold. But if S is R-smooth, then S is R-standard smooth locally on S, i.e. there exists a set { t } of S that generates the unit ideal, such that Sₜ is R-standard smooth for every t (TODO, see below).

Main definitions #

All of these are in the Algebra namespace. Let S be an R-algebra.

For a presubmersive presentation P of S over R we make the following definitions:

Furthermore, for algebras we define:

Finally, for ring homomorphisms we define:

TODO #

Implementation details #

Standard smooth algebras and ring homomorphisms feature 4 universe levels: The universe levels of the rings involved and the universe levels of the types of the variables and relations.

Notes #

This contribution was created as part of the AIM workshop "Formalizing algebraic geometry" in June 2024.

structure Algebra.PreSubmersivePresentation (R : Type u) [CommRing R] (S : Type v) [CommRing S] [Algebra R S] extends Algebra.Presentation :
Type (max (max (max (t + 1) u) v) (w + 1))

A PreSubmersivePresentation of an R-algebra S is a Presentation with finitely-many relations equipped with an injective map : relations → vars.

This map determines how the differential of P is constructed. See PreSubmersivePresentation.differential for details.

  • vars : Type w
  • val : self.varsS
  • σ' : SMvPolynomial self.vars R
  • aeval_val_σ' : ∀ (s : S), (MvPolynomial.aeval self.val) (self.σ' s) = s
  • rels : Type t
  • relation : self.relsself.Ring
  • span_range_relation_eq_ker : Ideal.span (Set.range self.relation) = self.ker
  • map : self.relsself.vars

    A map from the relations type to the variables type. Used to compute the differential.

  • map_inj : Function.Injective self.map
  • relations_finite : Finite self.rels
Instances For
    @[reducible, inline]
    noncomputable abbrev Algebra.PreSubmersivePresentation.basis {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (P : Algebra.PreSubmersivePresentation R S) :
    Basis P.rels P.Ring (P.relsP.Ring)

    The standard basis of P.rels → P.ring.

    Equations
    Instances For
      noncomputable def Algebra.PreSubmersivePresentation.differential {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (P : Algebra.PreSubmersivePresentation R S) :
      (P.relsP.Ring) →ₗ[P.Ring] P.relsP.Ring

      The differential of a P : PreSubmersivePresentation is a P.Ring-linear map on P.rels → P.Ring:

      The j-th standard basis vector, corresponding to the j-th relation of P, is mapped to the vector of partial derivatives of P.relation j with respect to the coordinates P.map i for all i : P.rels.

      The determinant of this map is the jacobian of P used to define when a PreSubmersivePresentation is submersive. See PreSubmersivePresentation.jacobian.

      Equations
      • P.differential = (P.basis.constr P.Ring) fun (j i : P.rels) => (MvPolynomial.pderiv (P.map i)) (P.relation j)
      Instances For

        The jacobian of a P : PreSubmersivePresentation is the determinant of P.differential viewed as element of S.

        Equations
        • P.jacobian = (algebraMap P.Ring S) (LinearMap.det P.differential)
        Instances For
          noncomputable def Algebra.PreSubmersivePresentation.jacobiMatrix {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (P : Algebra.PreSubmersivePresentation R S) [Fintype P.rels] [DecidableEq P.rels] :
          Matrix P.rels P.rels P.Ring

          If P.rels has a Fintype and DecidableEq instance, the differential of P can be expressed in matrix form.

          Equations
          Instances For
            theorem Algebra.PreSubmersivePresentation.jacobian_eq_jacobiMatrix_det {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (P : Algebra.PreSubmersivePresentation R S) [Fintype P.rels] [DecidableEq P.rels] :
            P.jacobian = (algebraMap P.Ring S) P.jacobiMatrix.det
            theorem Algebra.PreSubmersivePresentation.jacobiMatrix_apply {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (P : Algebra.PreSubmersivePresentation R S) [Fintype P.rels] [DecidableEq P.rels] (i : P.rels) (j : P.rels) :
            P.jacobiMatrix i j = (MvPolynomial.pderiv (P.map i)) (P.relation j)
            structure Algebra.SubmersivePresentation (R : Type u) [CommRing R] (S : Type v) [CommRing S] [Algebra R S] extends Algebra.PreSubmersivePresentation :
            Type (max (max (max (t + 1) u) v) (w + 1))

            A PreSubmersivePresentation is submersive if its jacobian is a unit in S and the presentation is finite.

            Instances For
              theorem Algebra.SubmersivePresentation.isFinite {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (self : Algebra.SubmersivePresentation R S) :
              self.IsFinite
              class Algebra.IsStandardSmooth (R : Type u) [CommRing R] (S : Type v) [CommRing S] [Algebra R S] :

              An R-algebra S is called standard smooth, if there exists a submersive presentation.

              Instances

                The relative dimension of a standard smooth R-algebra S is the dimension of an arbitrarily chosen submersive R-presentation of S.

                Note: If S is non-trivial, this number is independent of the choice of the presentation as it is equal to the S-rank of Ω[S/R] (TODO).

                Equations
                Instances For

                  An R-algebra S is called standard smooth of relative dimension n, if there exists a submersive presentation of dimension n.

                  Instances
                    def RingHom.IsStandardSmooth {R : Type u} [CommRing R] {S : Type v} [CommRing S] (f : R →+* S) :

                    A ring homomorphism R →+* S is standard smooth if S is standard smooth as R-algebra.

                    Equations
                    Instances For

                      A ring homomorphism R →+* S is standard smooth of relative dimension n if S is standard smooth of relative dimension n as R-algebra.

                      Equations
                      Instances For