Formally étale morphisms #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
An R
-algebra A
is formally étale (resp. unramified, smooth) if for every R
-algebra,
every square-zero ideal I : ideal B
and f : A →ₐ[R] B ⧸ I
, there exists
exactly (resp. at most, at least) one lift A →ₐ[R] B
.
We show that the property extends onto nilpotent ideals, and that these properties are stable
under R
-algebra homomorphisms and compositions.
- comp_injective : ∀ ⦃B : Type ?⦄ [_inst_6 : comm_ring B] [_inst_7 : algebra R B] (I : ideal B), I ^ 2 = ⊥ → function.injective (ideal.quotient.mkₐ R I).comp
An R
-algebra A
is formally unramified if for every R
-algebra, every square-zero ideal
I : ideal B
and f : A →ₐ[R] B ⧸ I
, there exists at most one lift A →ₐ[R] B
.
Instances of this typeclass
- comp_surjective : ∀ ⦃B : Type ?⦄ [_inst_6 : comm_ring B] [_inst_7 : algebra R B] (I : ideal B), I ^ 2 = ⊥ → function.surjective (ideal.quotient.mkₐ R I).comp
An R
algebra A
is formally smooth if for every R
-algebra, every square-zero ideal
I : ideal B
and f : A →ₐ[R] B ⧸ I
, there exists at least one lift A →ₐ[R] B
.
- comp_bijective : ∀ ⦃B : Type ?⦄ [_inst_6 : comm_ring B] [_inst_7 : algebra R B] (I : ideal B), I ^ 2 = ⊥ → function.bijective (ideal.quotient.mkₐ R I).comp
An R
algebra A
is formally étale if for every R
-algebra, every square-zero ideal
I : ideal B
and f : A →ₐ[R] B ⧸ I
, there exists exactly one lift A →ₐ[R] B
.
Instances of this typeclass
For a formally smooth R
-algebra A
and a map f : A →ₐ[R] B ⧸ I
with I
square-zero,
this is an arbitrary lift A →ₐ[R] B
.
Equations
- algebra.formally_smooth.lift I hI g = _.some
For a formally smooth R
-algebra A
and a map f : A →ₐ[R] B ⧸ I
with I
nilpotent,
this is an arbitrary lift A →ₐ[R] B
.
Equations
Let P →ₐ[R] A
be a surjection with kernel J
, and P
a formally smooth R
-algebra,
then A
is formally smooth over R
iff the surjection P ⧸ J ^ 2 →ₐ[R] A
has a section.
Geometric intuition: we require that a first-order thickening of Spec A
inside Spec P
admits
a retraction.
This holds in general for epimorphisms.
This actually does not need the localization instance, and is stated here again for
consistency. See algebra.formally_unramified.of_comp
instead.
The intended use is for copying proofs between formally_{unramified, smooth, etale}
without the need to change anything (including removing redundant arguments).