File: Mathlib/RingTheory/Etale/Basic.lean

full_name: Algebra.FormallyEtale
code: /-- 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`.

See <https://stacks.math.columbia.edu/tag/00UQ> -/
@[mk_iff]
class FormallyEtale : Prop where
  comp_bijective :
    ∀ ⦃B : Type u⦄ [CommRing B],
      ∀ [Algebra R B] (I : Ideal B) (_ : I ^ 2 = ⊥),
        Function.Bijective ((Ideal.Quotient.mkₐ R I).comp : (A →ₐ[R] B) → A →ₐ[R] B ⧸ I)
goal: Prop

full_name: Algebra.formallyEtale_iff
code: /-- 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`.

See <https://stacks.math.columbia.edu/tag/00UQ> -/
@[mk_iff]
class FormallyEtale : Prop where
  comp_bijective :
    ∀ ⦃B : Type u⦄ [CommRing B],
      ∀ [Algebra R B] (I : Ideal B) (_ : I ^ 2 = ⊥),
        Function.Bijective ((Ideal.Quotient.mkₐ R I).comp : (A →ₐ[R] B) → A →ₐ[R] B ⧸ I)
goal: Algebra.FormallyEtale R A ↔
  ∀ ⦃B : Type u⦄ [inst : CommRing B] [inst_1 : Algebra R B] (I : Ideal B),
    I ^ 2 = ⊥ → Function.Bijective (Ideal.Quotient.mkₐ R I).comp

full_name: Algebra.FormallyEtale.comp_bijective
code: /-- 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`.

See <https://stacks.math.columbia.edu/tag/00UQ> -/
@[mk_iff]
class FormallyEtale : Prop where
  comp_bijective :
    ∀ ⦃B : Type u⦄ [CommRing B],
      ∀ [Algebra R B] (I : Ideal B) (_ : I ^ 2 = ⊥),
        Function.Bijective ((Ideal.Quotient.mkₐ R I).comp : (A →ₐ[R] B) → A →ₐ[R] B ⧸ I)
goal: I ^ 2 = ⊥ → Function.Bijective (Ideal.Quotient.mkₐ R I).comp

full_name: Algebra.FormallyEtale.iff_unramified_and_smooth
code: theorem iff_unramified_and_smooth :
    FormallyEtale R A ↔ FormallyUnramified R A ∧ FormallySmooth R A 
goal: Algebra.FormallyEtale R A ↔ Algebra.FormallyUnramified R A ∧ Algebra.FormallySmooth R A

full_name: Algebra.FormallyEtale.to_unramified
code: instance (priority := 100) to_unramified [h : FormallyEtale R A] :
    FormallyUnramified R A 
goal: Algebra.FormallyUnramified R A

full_name: Algebra.FormallyEtale.to_smooth
code: instance (priority := 100) to_smooth [h : FormallyEtale R A] : FormallySmooth R A 
goal: Algebra.FormallySmooth R A

full_name: Algebra.FormallyEtale.of_unramified_and_smooth
code: theorem of_unramified_and_smooth [h₁ : FormallyUnramified R A]
    [h₂ : FormallySmooth R A] : FormallyEtale R A 
goal: Algebra.FormallyEtale R A

full_name: Algebra.FormallyEtale.of_equiv
code: theorem of_equiv [FormallyEtale R A] (e : A ≃ₐ[R] B) : FormallyEtale R B 
goal: Algebra.FormallyEtale R B

full_name: Algebra.FormallyEtale.comp
code: theorem comp [FormallyEtale R A] [FormallyEtale A B] : FormallyEtale R B 
goal: Algebra.FormallyEtale R B

full_name: Algebra.FormallyEtale.base_change
code: instance base_change [FormallyEtale R A] : FormallyEtale B (B ⊗[R] A) 
goal: Algebra.FormallyEtale B (B ⊗[R] A)

full_name: Algebra.FormallyEtale.of_isLocalization
code: theorem of_isLocalization : FormallyEtale R Rₘ 
goal: Algebra.FormallyEtale R Rₘ

full_name: Algebra.FormallyEtale.localization_base
code: theorem localization_base [FormallyEtale R Sₘ] : FormallyEtale Rₘ Sₘ 
goal: Algebra.FormallyEtale Rₘ Sₘ

full_name: Algebra.FormallyEtale.localization_map
code: /-- The localization of a formally étale map is formally étale. -/
theorem localization_map [FormallyEtale R S] : FormallyEtale Rₘ Sₘ 
goal: Algebra.FormallyEtale Rₘ Sₘ

full_name: Algebra.Etale
code: /-- An `R`-algebra `A` is étale if it is formally étale and of finite presentation.

Note that the definition <https://stacks.math.columbia.edu/tag/00U1> in the stacks project is
different, but <https://stacks.math.columbia.edu/tag/00UR> shows that it is equivalent
to the definition here. -/
class Etale : Prop where
  formallyEtale : FormallyEtale R A := by infer_instance
  finitePresentation : FinitePresentation R A := by infer_instance
goal: Prop

full_name: Algebra.Etale.finitePresentation
code: /-- An `R`-algebra `A` is étale if it is formally étale and of finite presentation.

Note that the definition <https://stacks.math.columbia.edu/tag/00U1> in the stacks project is
different, but <https://stacks.math.columbia.edu/tag/00UR> shows that it is equivalent
to the definition here. -/
class Etale : Prop where
  formallyEtale : FormallyEtale R A := by infer_instance
  finitePresentation : FinitePresentation R A := by infer_instance
goal: Algebra.FinitePresentation R A

full_name: Algebra.Etale.formallyEtale
code: /-- An `R`-algebra `A` is étale if it is formally étale and of finite presentation.

Note that the definition <https://stacks.math.columbia.edu/tag/00U1> in the stacks project is
different, but <https://stacks.math.columbia.edu/tag/00UR> shows that it is equivalent
to the definition here. -/
class Etale : Prop where
  formallyEtale : FormallyEtale R A := by infer_instance
  finitePresentation : FinitePresentation R A := by infer_instance
goal: Algebra.FormallyEtale R A

full_name: Algebra.Etale.of_equiv
code: /-- Being étale is transported via algebra isomorphisms. -/
theorem of_equiv [Etale R A] (e : A ≃ₐ[R] B) : Etale R B 
goal: Algebra.Etale R B

full_name: Algebra.Etale.comp
code: /-- Etale is stable under composition. -/
theorem comp [Algebra A B] [IsScalarTower R A B] [Etale R A] [Etale A B] : Etale R B 
goal: Algebra.Etale R B

full_name: Algebra.Etale.baseChange
code: /-- Etale is stable under base change. -/
instance baseChange [Etale R A] : Etale B (B ⊗[R] A) 
goal: Algebra.Etale B (B ⊗[R] A)

full_name: Algebra.Etale.of_isLocalization_Away
code: /-- Localization at an element is étale. -/
theorem of_isLocalization_Away (r : R) [IsLocalization.Away r A] : Etale R A 
goal: Algebra.Etale R A