File: Mathlib/RingTheory/IntegralClosure/IntegrallyClosed.lean

full_name: IsIntegrallyClosedIn
code: /-- `R` is integrally closed in `A` if all integral elements of `A` are also elements of `R`.
-/
abbrev IsIntegrallyClosedIn (R A : Type*) [CommRing R] [CommRing A] [Algebra R A] 
goal: Prop

full_name: IsIntegrallyClosed
code: /-- `R` is integrally closed if all integral elements of `Frac(R)` are also elements of `R`.

This definition uses `FractionRing R` to denote `Frac(R)`. See `isIntegrallyClosed_iff`
if you want to choose another field of fractions for `R`.
-/
abbrev IsIntegrallyClosed (R : Type*) [CommRing R] 
goal: Prop

full_name: AlgHom.isIntegrallyClosedIn
code: /-- Being integrally closed is preserved under injective algebra homomorphisms. -/
theorem AlgHom.isIntegrallyClosedIn (f : A →ₐ[R] B) (hf : Function.Injective f) :
    IsIntegrallyClosedIn R B → IsIntegrallyClosedIn R A 
goal: IsIntegrallyClosedIn R B → IsIntegrallyClosedIn R A

full_name: AlgEquiv.isIntegrallyClosedIn
code: /-- Being integrally closed is preserved under algebra isomorphisms. -/
theorem AlgEquiv.isIntegrallyClosedIn (e : A ≃ₐ[R] B) :
    IsIntegrallyClosedIn R A ↔ IsIntegrallyClosedIn R B 
goal: IsIntegrallyClosedIn R A ↔ IsIntegrallyClosedIn R B

full_name: isIntegrallyClosed_iff_isIntegrallyClosedIn
code: /-- `R` is integrally closed iff it is the integral closure of itself in its field of fractions. -/
theorem isIntegrallyClosed_iff_isIntegrallyClosedIn :
    IsIntegrallyClosed R ↔ IsIntegrallyClosedIn R K 
goal: IsIntegrallyClosed R ↔ IsIntegrallyClosedIn R K

full_name: isIntegrallyClosed_iff_isIntegralClosure
code: /-- `R` is integrally closed iff it is the integral closure of itself in its field of fractions. -/
theorem isIntegrallyClosed_iff_isIntegralClosure : IsIntegrallyClosed R ↔ IsIntegralClosure R R K 
goal: IsIntegrallyClosed R ↔ IsIntegralClosure R R K

full_name: isIntegrallyClosedIn_iff
code: /-- `R` is integrally closed in `A` iff all integral elements of `A` are also elements of `R`. -/
theorem isIntegrallyClosedIn_iff {R A : Type*} [CommRing R] [CommRing A] [Algebra R A] :
    IsIntegrallyClosedIn R A ↔
      Function.Injective (algebraMap R A) ∧
        ∀ {x : A}, IsIntegral R x → ∃ y, algebraMap R A y = x 
goal: IsIntegrallyClosedIn R A ↔
  Function.Injective ⇑(algebraMap R A) ∧ ∀ {x : A}, IsIntegral R x → ∃ y, (algebraMap R A) y = x

full_name: isIntegrallyClosed_iff
code: /-- `R` is integrally closed iff all integral elements of its fraction field `K`
are also elements of `R`. -/
theorem isIntegrallyClosed_iff :
    IsIntegrallyClosed R ↔ ∀ {x : K}, IsIntegral R x → ∃ y, algebraMap R K y = x 
goal: IsIntegrallyClosed R ↔ ∀ {x : K}, IsIntegral R x → ∃ y, (algebraMap R K) y = x

full_name: IsIntegrallyClosedIn.algebraMap_eq_of_integral
code: theorem algebraMap_eq_of_integral {x : A} : IsIntegral R x → ∃ y : R, algebraMap R A y = x 
goal: IsIntegral R x → ∃ y, (algebraMap R A) y = x

full_name: IsIntegrallyClosedIn.isIntegral_iff
code: theorem isIntegral_iff {x : A} : IsIntegral R x ↔ ∃ y : R, algebraMap R A y = x 
goal: IsIntegral R x ↔ ∃ y, (algebraMap R A) y = x

full_name: IsIntegrallyClosedIn.exists_algebraMap_eq_of_isIntegral_pow
code: theorem exists_algebraMap_eq_of_isIntegral_pow {x : A} {n : ℕ} (hn : 0 < n)
    (hx : IsIntegral R <| x ^ n) : ∃ y : R, algebraMap R A y = x 
goal: ∃ y, (algebraMap R A) y = x

full_name: IsIntegrallyClosedIn.exists_algebraMap_eq_of_pow_mem_subalgebra
code: theorem exists_algebraMap_eq_of_pow_mem_subalgebra {A : Type*} [CommRing A] [Algebra R A]
    {S : Subalgebra R A} [IsIntegrallyClosedIn S A] {x : A} {n : ℕ} (hn : 0 < n)
    (hx : x ^ n ∈ S) : ∃ y : S, algebraMap S A y = x 
goal: ∃ y, (algebraMap (↥S) A) y = x

full_name: IsIntegrallyClosedIn.integralClosure_eq_bot_iff
code: theorem integralClosure_eq_bot_iff (hRA : Function.Injective (algebraMap R A)) :
    integralClosure R A = ⊥ ↔ IsIntegrallyClosedIn R A 
goal: integralClosure R A = ⊥ ↔ IsIntegrallyClosedIn R A

full_name: IsIntegrallyClosedIn.integralClosure_eq_bot
code: @[simp]
theorem integralClosure_eq_bot [NoZeroSMulDivisors R A] [Nontrivial A] : integralClosure R A = ⊥ 
goal: integralClosure R A = ⊥

full_name: IsIntegrallyClosedIn.of_isIntegralClosure
code: /-- If `R` is the integral closure of `S` in `A`, then it is integrally closed in `A`. -/
lemma of_isIntegralClosure [Algebra R B] [Algebra A B] [IsScalarTower R A B]
    [IsIntegralClosure A R B] :
    IsIntegrallyClosedIn A B 
goal: IsIntegrallyClosedIn A B

full_name: IsIntegralClosure.of_isIntegrallyClosedIn
code: lemma _root_.IsIntegralClosure.of_isIntegrallyClosedIn
    [Algebra R B] [Algebra A B] [IsScalarTower R A B]
    [IsIntegrallyClosedIn A B] [Algebra.IsIntegral R A] :
    IsIntegralClosure A R B 
goal: IsIntegralClosure A R B

full_name: IsIntegrallyClosed.instIsIntegralClosure
code: /-- Note that this is not a duplicate instance, since `IsIntegrallyClosed R` is instead defined
as `IsIntegrallyClosed R R (FractionRing R)`. -/
instance : IsIntegralClosure R R K 
goal: IsIntegralClosure R R K

full_name: IsIntegrallyClosed.algebraMap_eq_of_integral
code: theorem algebraMap_eq_of_integral {x : K} : IsIntegral R x → ∃ y : R, algebraMap R K y = x 
goal: IsIntegral R x → ∃ y, (algebraMap R K) y = x

full_name: IsIntegrallyClosed.isIntegral_iff
code: theorem isIntegral_iff {x : K} : IsIntegral R x ↔ ∃ y : R, algebraMap R K y = x 
goal: IsIntegral R x ↔ ∃ y, (algebraMap R K) y = x

full_name: IsIntegrallyClosed.exists_algebraMap_eq_of_isIntegral_pow
code: theorem exists_algebraMap_eq_of_isIntegral_pow {x : K} {n : ℕ} (hn : 0 < n)
    (hx : IsIntegral R <| x ^ n) : ∃ y : R, algebraMap R K y = x 
goal: ∃ y, (algebraMap R K) y = x

full_name: IsIntegrallyClosed.exists_algebraMap_eq_of_pow_mem_subalgebra
code: theorem exists_algebraMap_eq_of_pow_mem_subalgebra {K : Type*} [CommRing K] [Algebra R K]
    {S : Subalgebra R K} [IsIntegrallyClosed S] [IsFractionRing S K] {x : K} {n : ℕ} (hn : 0 < n)
    (hx : x ^ n ∈ S) : ∃ y : S, algebraMap S K y = x 
goal: ∃ y, (algebraMap (↥S) K) y = x

full_name: IsIntegralClosure.of_isIntegrallyClosed
code: instance _root_.IsIntegralClosure.of_isIntegrallyClosed
    [Algebra S R] [Algebra S K] [IsScalarTower S R K] [Algebra.IsIntegral S R] :
    IsIntegralClosure R S K 
goal: IsIntegralClosure R S K

full_name: IsIntegrallyClosed.integralClosure_eq_bot_iff
code: theorem integralClosure_eq_bot_iff : integralClosure R K = ⊥ ↔ IsIntegrallyClosed R 
goal: integralClosure R K = ⊥ ↔ IsIntegrallyClosed R

full_name: IsIntegrallyClosed.pow_dvd_pow_iff
code: @[simp]
theorem pow_dvd_pow_iff {n : ℕ} (hn : n ≠ 0) {a b : R} : a ^ n ∣ b ^ n ↔ a ∣ b  
goal: a ^ n ∣ b ^ n ↔ a ∣ b

full_name: IsIntegrallyClosed.integralClosure_eq_bot
code: /-- This is almost a duplicate of `IsIntegrallyClosedIn.integralClosure_eq_bot`,
except the `NoZeroSMulDivisors` hypothesis isn't inferred automatically from `IsFractionRing`. -/
@[simp]
theorem integralClosure_eq_bot : integralClosure R K = ⊥ 
goal: integralClosure R K = ⊥

full_name: integralClosure.isIntegrallyClosedOfFiniteExtension
code: theorem isIntegrallyClosedOfFiniteExtension [IsDomain R] [FiniteDimensional K L] :
    IsIntegrallyClosed (integralClosure R L) 
goal: IsIntegrallyClosed ↥(integralClosure R L)