ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- RingEquiv.nonUnitalSubsemiringMap_apply_coe
@[simps!]
def nonUnitalSubsemiringMap (e : R ≃+* S) (s : NonUnitalSubsemiring R) :
    s ≃+* NonUnitalSubsemiring.map e.toNonUnitalRingHom s 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] (e : R ≃+* S) (s : NonUnitalSubsemiring R) (x : ↑↑s.toAddSubmonoid)
Goal: ↑((e.nonUnitalSubsemiringMap s) x) = e ↑x
-- toPrincipalIdeal_def
irreducible_def toPrincipalIdeal : Kˣ →* (FractionalIdeal R⁰ K)ˣ 
Arguments: (R : Type u_4) (K : Type u_5) [CommRing R] [Field K] [Algebra R K] [IsFractionRing R K]
Goal: toPrincipalIdeal R K =
  {
    toFun := fun x =>
      { val := FractionalIdeal.spanSingleton R⁰ ↑x, inv := FractionalIdeal.spanSingleton R⁰ (↑x)⁻¹, val_inv := ⋯,
        inv_val := ⋯ },
    map_one' := ⋯, map_mul' := ⋯ }
-- coe_toPrincipalIdeal
@[simp]
theorem coe_toPrincipalIdeal (x : Kˣ) :
    (toPrincipalIdeal R K x : FractionalIdeal R⁰ K) = spanSingleton _ (x : K) 
Arguments: {R : Type u_1} {K : Type u_2} [CommRing R] [Field K] [Algebra R K] [IsFractionRing R K] (x : Kˣ)
Goal: ↑((toPrincipalIdeal R K) x) = FractionalIdeal.spanSingleton R⁰ ↑x
-- toPrincipalIdeal_eq_iff
@[simp]
theorem toPrincipalIdeal_eq_iff {I : (FractionalIdeal R⁰ K)ˣ} {x : Kˣ} :
    toPrincipalIdeal R K x = I ↔ spanSingleton R⁰ (x : K) = I 
Arguments: {R : Type u_1} {K : Type u_2} [CommRing R] [Field K] [Algebra R K] [IsFractionRing R K] {I : (FractionalIdeal R⁰ K)ˣ} {x : Kˣ}
Goal: (toPrincipalIdeal R K) x = I ↔ FractionalIdeal.spanSingleton R⁰ ↑x = ↑I
-- mem_principal_ideals_iff
theorem mem_principal_ideals_iff {I : (FractionalIdeal R⁰ K)ˣ} :
    I ∈ (toPrincipalIdeal R K).range ↔ ∃ x : K, spanSingleton R⁰ x = I 
Arguments: {R : Type u_1} {K : Type u_2} [CommRing R] [Field K] [Algebra R K] [IsFractionRing R K] {I : (FractionalIdeal R⁰ K)ˣ}
Goal: I ∈ (toPrincipalIdeal R K).range ↔ ∃ x, FractionalIdeal.spanSingleton R⁰ x = ↑I
-- ClassGroup.Quot_mk_eq_mk
theorem ClassGroup.Quot_mk_eq_mk (I : (FractionalIdeal R⁰ (FractionRing R))ˣ) :
    Quot.mk _ I = ClassGroup.mk I 
Arguments: {R : Type u_1} [CommRing R] [IsDomain R] (I : (FractionalIdeal R⁰ (FractionRing R))ˣ)
Goal: Quot.mk Setoid.r I = ClassGroup.mk I
-- ClassGroup.mk_eq_mk
theorem ClassGroup.mk_eq_mk {I J : (FractionalIdeal R⁰ <| FractionRing R)ˣ} :
    ClassGroup.mk I = ClassGroup.mk J ↔
      ∃ x : (FractionRing R)ˣ, I * toPrincipalIdeal R (FractionRing R) x = J 
Arguments: {R : Type u_1} [CommRing R] [IsDomain R] {I J : (FractionalIdeal R⁰ (FractionRing R))ˣ}
Goal: ClassGroup.mk I = ClassGroup.mk J ↔ ∃ x, I * (toPrincipalIdeal R (FractionRing R)) x = J
-- ClassGroup.mk_eq_mk_of_coe_ideal
theorem ClassGroup.mk_eq_mk_of_coe_ideal {I J : (FractionalIdeal R⁰ <| FractionRing R)ˣ}
    {I' J' : Ideal R} (hI : (I : FractionalIdeal R⁰ <| FractionRing R) = I')
    (hJ : (J : FractionalIdeal R⁰ <| FractionRing R) = J') :
    ClassGroup.mk I = ClassGroup.mk J ↔
      ∃ x y : R, x ≠ 0 ∧ y ≠ 0 ∧ Ideal.span {x} * I' = Ideal.span {y} * J' 
Arguments: {R : Type u_1} [CommRing R] [IsDomain R] {I J : (FractionalIdeal R⁰ (FractionRing R))ˣ} {I' J' : Ideal R} (hI : ↑I = ↑I') (hJ : ↑J = ↑J')
Goal: ClassGroup.mk I = ClassGroup.mk J ↔ ∃ x y, x ≠ 0 ∧ y ≠ 0 ∧ Ideal.span {x} * I' = Ideal.span {y} * J'
-- ClassGroup.mk_eq_one_of_coe_ideal
theorem ClassGroup.mk_eq_one_of_coe_ideal {I : (FractionalIdeal R⁰ <| FractionRing R)ˣ}
    {I' : Ideal R} (hI : (I : FractionalIdeal R⁰ <| FractionRing R) = I') :
    ClassGroup.mk I = 1 ↔ ∃ x : R, x ≠ 0 ∧ I' = Ideal.span {x} 
Arguments: {R : Type u_1} [CommRing R] [IsDomain R] {I : (FractionalIdeal R⁰ (FractionRing R))ˣ} {I' : Ideal R} (hI : ↑I = ↑I')
Goal: ClassGroup.mk I = 1 ↔ ∃ x, x ≠ 0 ∧ I' = Ideal.span {x}
-- ClassGroup.induction
@[elab_as_elim]
theorem ClassGroup.induction {P : ClassGroup R → Prop}
    (h : ∀ I : (FractionalIdeal R⁰ K)ˣ, P (ClassGroup.mk I)) (x : ClassGroup R) : P x 
Arguments: {R : Type u_1} (K : Type u_2) [CommRing R] [Field K] [Algebra R K] [IsFractionRing R K] [IsDomain R] {P : ClassGroup R → Prop} (h : ∀ (I : (FractionalIdeal R⁰ K)ˣ), P (ClassGroup.mk I)) (x : ClassGroup R)
Goal: P x
-- ClassGroup.equiv_mk
@[simp]
theorem ClassGroup.equiv_mk (K' : Type*) [Field K'] [Algebra R K'] [IsFractionRing R K']
    (I : (FractionalIdeal R⁰ K)ˣ) :
    ClassGroup.equiv K' (ClassGroup.mk I) =
      QuotientGroup.mk' _ (Units.mapEquiv (↑(FractionalIdeal.canonicalEquiv R⁰ K K')) I) 
Arguments: {R : Type u_1} (K : Type u_2) [CommRing R] [Field K] [Algebra R K] [IsFractionRing R K] [IsDomain R] (K' : Type u_4) [Field K'] [Algebra R K'] [IsFractionRing R K'] (I : (FractionalIdeal R⁰ K)ˣ)
Goal: (ClassGroup.equiv K') (ClassGroup.mk I) =
  (QuotientGroup.mk' (toPrincipalIdeal R K').range) ((Units.mapEquiv ↑(FractionalIdeal.canonicalEquiv R⁰ K K')) I)
-- ClassGroup.mk_canonicalEquiv
@[simp]
theorem ClassGroup.mk_canonicalEquiv (K' : Type*) [Field K'] [Algebra R K'] [IsFractionRing R K']
    (I : (FractionalIdeal R⁰ K)ˣ) :
    ClassGroup.mk (Units.map (↑(canonicalEquiv R⁰ K K')) I : (FractionalIdeal R⁰ K')ˣ) =
      ClassGroup.mk I 
Arguments: {R : Type u_1} (K : Type u_2) [CommRing R] [Field K] [Algebra R K] [IsFractionRing R K] [IsDomain R] (K' : Type u_4) [Field K'] [Algebra R K'] [IsFractionRing R K'] (I : (FractionalIdeal R⁰ K)ˣ)
Goal: ClassGroup.mk ((Units.map ↑(FractionalIdeal.canonicalEquiv R⁰ K K')) I) = ClassGroup.mk I
-- FractionalIdeal.coe_mk0
@[simp]
theorem FractionalIdeal.coe_mk0 [IsDedekindDomain R] (I : (Ideal R)⁰) :
    (FractionalIdeal.mk0 K I : FractionalIdeal R⁰ K) = I 
Arguments: {R : Type u_1} (K : Type u_2) [CommRing R] [Field K] [Algebra R K] [IsFractionRing R K] [IsDomain R] [IsDedekindDomain R] (I : ↥(Ideal R)⁰)
Goal: ↑((FractionalIdeal.mk0 K) I) = ↑↑I
-- FractionalIdeal.canonicalEquiv_mk0
theorem FractionalIdeal.canonicalEquiv_mk0 [IsDedekindDomain R] (K' : Type*) [Field K']
    [Algebra R K'] [IsFractionRing R K'] (I : (Ideal R)⁰) :
    FractionalIdeal.canonicalEquiv R⁰ K K' (FractionalIdeal.mk0 K I) =
    FractionalIdeal.mk0 K' I 
Arguments: {R : Type u_1} (K : Type u_2) [CommRing R] [Field K] [Algebra R K] [IsFractionRing R K] [IsDomain R] [IsDedekindDomain R] (K' : Type u_4) [Field K'] [Algebra R K'] [IsFractionRing R K'] (I : ↥(Ideal R)⁰)
Goal: (FractionalIdeal.canonicalEquiv R⁰ K K') ↑((FractionalIdeal.mk0 K) I) = ↑((FractionalIdeal.mk0 K') I)
-- FractionalIdeal.map_canonicalEquiv_mk0
@[simp]
theorem FractionalIdeal.map_canonicalEquiv_mk0 [IsDedekindDomain R] (K' : Type*) [Field K']
    [Algebra R K'] [IsFractionRing R K'] (I : (Ideal R)⁰) :
    Units.map (↑(FractionalIdeal.canonicalEquiv R⁰ K K')) (FractionalIdeal.mk0 K I) =
      FractionalIdeal.mk0 K' I 
Arguments: {R : Type u_1} (K : Type u_2) [CommRing R] [Field K] [Algebra R K] [IsFractionRing R K] [IsDomain R] [IsDedekindDomain R] (K' : Type u_4) [Field K'] [Algebra R K'] [IsFractionRing R K'] (I : ↥(Ideal R)⁰)
Goal: (Units.map ↑(FractionalIdeal.canonicalEquiv R⁰ K K')) ((FractionalIdeal.mk0 K) I) = (FractionalIdeal.mk0 K') I
-- ClassGroup.mk_mk0
@[simp]
theorem ClassGroup.mk_mk0 [IsDedekindDomain R] (I : (Ideal R)⁰) :
    ClassGroup.mk (FractionalIdeal.mk0 K I) = ClassGroup.mk0 I 
Arguments: {R : Type u_1} (K : Type u_2) [CommRing R] [Field K] [Algebra R K] [IsFractionRing R K] [IsDomain R] [IsDedekindDomain R] (I : ↥(Ideal R)⁰)
Goal: ClassGroup.mk ((FractionalIdeal.mk0 K) I) = ClassGroup.mk0 I
-- ClassGroup.equiv_mk0
@[simp]
theorem ClassGroup.equiv_mk0 [IsDedekindDomain R] (I : (Ideal R)⁰) :
    ClassGroup.equiv K (ClassGroup.mk0 I) =
      QuotientGroup.mk' (toPrincipalIdeal R K).range (FractionalIdeal.mk0 K I) 
Arguments: {R : Type u_1} (K : Type u_2) [CommRing R] [Field K] [Algebra R K] [IsFractionRing R K] [IsDomain R] [IsDedekindDomain R] (I : ↥(Ideal R)⁰)
Goal: (ClassGroup.equiv K) (ClassGroup.mk0 I) = (QuotientGroup.mk' (toPrincipalIdeal R K).range) ((FractionalIdeal.mk0 K) I)
-- ClassGroup.mk0_eq_mk0_iff_exists_fraction_ring
theorem ClassGroup.mk0_eq_mk0_iff_exists_fraction_ring [IsDedekindDomain R] {I J : (Ideal R)⁰} :
    ClassGroup.mk0 I =
      ClassGroup.mk0 J ↔ ∃ (x : _) (_ : x ≠ (0 : K)), spanSingleton R⁰ x * I = J 
Arguments: {R : Type u_1} (K : Type u_2) [CommRing R] [Field K] [Algebra R K] [IsFractionRing R K] [IsDomain R] [IsDedekindDomain R] {I J : ↥(Ideal R)⁰}
Goal: ClassGroup.mk0 I = ClassGroup.mk0 J ↔ ∃ x, ∃ (_ : x ≠ 0), FractionalIdeal.spanSingleton R⁰ x * ↑↑I = ↑↑J
-- ClassGroup.mk0_eq_mk0_iff
theorem ClassGroup.mk0_eq_mk0_iff [IsDedekindDomain R] {I J : (Ideal R)⁰} :
    ClassGroup.mk0 I = ClassGroup.mk0 J ↔
      ∃ (x y : R) (_hx : x ≠ 0) (_hy : y ≠ 0), Ideal.span {x} * (I : Ideal R) =
      Ideal.span {y} * J 
Arguments: {R : Type u_1} [CommRing R] [IsDomain R] [IsDedekindDomain R] {I J : ↥(Ideal R)⁰}
Goal: ClassGroup.mk0 I = ClassGroup.mk0 J ↔ ∃ x y, ∃ (_ : x ≠ 0) (_ : y ≠ 0), Ideal.span {x} * ↑I = Ideal.span {y} * ↑J
-- ClassGroup.integralRep_mem_nonZeroDivisors
theorem ClassGroup.integralRep_mem_nonZeroDivisors
    {I : FractionalIdeal R⁰ (FractionRing R)} (hI : I ≠ 0) :
    I.num ∈ (Ideal R)⁰ 
Arguments: {R : Type u_1} [CommRing R] [IsDomain R] {I : FractionalIdeal R⁰ (FractionRing R)} (hI : I ≠ 0)
Goal: I.num ∈ (Ideal R)⁰
-- ClassGroup.mk0_integralRep
theorem ClassGroup.mk0_integralRep [IsDedekindDomain R]
    (I : (FractionalIdeal R⁰ (FractionRing R))ˣ) :
    ClassGroup.mk0 ⟨ClassGroup.integralRep I, ClassGroup.integralRep_mem_nonZeroDivisors I.ne_zero⟩
      = ClassGroup.mk I 
Arguments: {R : Type u_1} [CommRing R] [IsDomain R] [IsDedekindDomain R] (I : (FractionalIdeal R⁰ (FractionRing R))ˣ)
Goal: ClassGroup.mk0 ⟨ClassGroup.integralRep ↑I, ⋯⟩ = ClassGroup.mk I
-- ClassGroup.mk0_surjective
theorem ClassGroup.mk0_surjective [IsDedekindDomain R] :
    Function.Surjective (ClassGroup.mk0 : (Ideal R)⁰ → ClassGroup R) 
Arguments: {R : Type u_1} [CommRing R] [IsDomain R] [IsDedekindDomain R]
Goal: Function.Surjective ⇑ClassGroup.mk0
-- ClassGroup.mk_eq_one_iff
theorem ClassGroup.mk_eq_one_iff {I : (FractionalIdeal R⁰ K)ˣ} :
    ClassGroup.mk I = 1 ↔ (I : Submodule R K).IsPrincipal 
Arguments: {R : Type u_1} {K : Type u_2} [CommRing R] [Field K] [Algebra R K] [IsFractionRing R K] [IsDomain R] {I : (FractionalIdeal R⁰ K)ˣ}
Goal: ClassGroup.mk I = 1 ↔ (↑↑I).IsPrincipal
-- ClassGroup.mk0_eq_one_iff
theorem ClassGroup.mk0_eq_one_iff [IsDedekindDomain R] {I : Ideal R} (hI : I ∈ (Ideal R)⁰) :
    ClassGroup.mk0 ⟨I, hI⟩ = 1 ↔ I.IsPrincipal 
Arguments: {R : Type u_1} [CommRing R] [IsDomain R] [IsDedekindDomain R] {I : Ideal R} (hI : I ∈ (Ideal R)⁰)
Goal: ClassGroup.mk0 ⟨I, hI⟩ = 1 ↔ Submodule.IsPrincipal I
-- ClassGroup.mk0_eq_mk0_inv_iff
theorem ClassGroup.mk0_eq_mk0_inv_iff [IsDedekindDomain R] {I J : (Ideal R)⁰} :
    ClassGroup.mk0 I = (ClassGroup.mk0 J)⁻¹ ↔
      ∃ x ≠ (0 : R), I * J = Ideal.span {x} 
Arguments: {R : Type u_1} [CommRing R] [IsDomain R] [IsDedekindDomain R] {I J : ↥(Ideal R)⁰}
Goal: ClassGroup.mk0 I = (ClassGroup.mk0 J)⁻¹ ↔ ∃ x, x ≠ 0 ∧ ↑I * ↑J = Ideal.span {x}
-- card_classGroup_eq_one
theorem card_classGroup_eq_one [IsPrincipalIdealRing R] : Fintype.card (ClassGroup R) = 1 
Arguments: {R : Type u_1} [CommRing R] [IsDomain R] [IsPrincipalIdealRing R]
Goal: Fintype.card (ClassGroup R) = 1
-- card_classGroup_eq_one_iff
theorem card_classGroup_eq_one_iff [IsDedekindDomain R] [Fintype (ClassGroup R)] :
    Fintype.card (ClassGroup R) = 1 ↔ IsPrincipalIdealRing R 
Arguments: {R : Type u_1} [CommRing R] [IsDomain R] [IsDedekindDomain R] [Fintype (ClassGroup R)]
Goal: Fintype.card (ClassGroup R) = 1 ↔ IsPrincipalIdealRing R
-- AlgHom.isIntegrallyClosedIn
theorem AlgHom.isIntegrallyClosedIn (f : A →ₐ[R] B) (hf : Function.Injective f) :
    IsIntegrallyClosedIn R B → IsIntegrallyClosedIn R A 
Arguments: {R : Type u_1} [CommRing R] {A : Type u_2} {B : Type u_3} [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] (f : A →ₐ[R] B) (hf : Function.Injective ⇑f)
Goal: IsIntegrallyClosedIn R B → IsIntegrallyClosedIn R A
-- AlgEquiv.isIntegrallyClosedIn
theorem AlgEquiv.isIntegrallyClosedIn (e : A ≃ₐ[R] B) :
    IsIntegrallyClosedIn R A ↔ IsIntegrallyClosedIn R B 
Arguments: {R : Type u_1} [CommRing R] {A : Type u_2} {B : Type u_3} [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] (e : A ≃ₐ[R] B)
Goal: IsIntegrallyClosedIn R A ↔ IsIntegrallyClosedIn R B
-- isIntegrallyClosed_iff_isIntegrallyClosedIn
theorem isIntegrallyClosed_iff_isIntegrallyClosedIn :
    IsIntegrallyClosed R ↔ IsIntegrallyClosedIn R K 
Arguments: {R : Type u_1} [CommRing R] (K : Type u_4) [CommRing K] [Algebra R K] [IsFractionRing R K]
Goal: IsIntegrallyClosed R ↔ IsIntegrallyClosedIn R K
-- isIntegrallyClosed_iff_isIntegralClosure
theorem isIntegrallyClosed_iff_isIntegralClosure : IsIntegrallyClosed R ↔ IsIntegralClosure R R K 
Arguments: {R : Type u_1} [CommRing R] (K : Type u_4) [CommRing K] [Algebra R K] [IsFractionRing R K]
Goal: IsIntegrallyClosed R ↔ IsIntegralClosure R R K
-- isIntegrallyClosedIn_iff
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 
Arguments: {R : Type u_5} {A : Type u_6} [CommRing R] [CommRing A] [Algebra R A]
Goal: IsIntegrallyClosedIn R A ↔
  Function.Injective ⇑(algebraMap R A) ∧ ∀ {x : A}, IsIntegral R x → ∃ y, (algebraMap R A) y = x
-- isIntegrallyClosed_iff
theorem isIntegrallyClosed_iff :
    IsIntegrallyClosed R ↔ ∀ {x : K}, IsIntegral R x → ∃ y, algebraMap R K y = x 
Arguments: {R : Type u_1} [CommRing R] (K : Type u_4) [CommRing K] [Algebra R K] [IsFractionRing R K]
Goal: IsIntegrallyClosed R ↔ ∀ {x : K}, IsIntegral R x → ∃ y, (algebraMap R K) y = x
-- IsIntegrallyClosedIn.algebraMap_eq_of_integral
theorem algebraMap_eq_of_integral {x : A} : IsIntegral R x → ∃ y : R, algebraMap R A y = x 
Arguments: {R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [Algebra R A] [iic : IsIntegrallyClosedIn R A] {x : A}
Goal: IsIntegral R x → ∃ y, (algebraMap R A) y = x
-- IsIntegrallyClosedIn.isIntegral_iff
theorem isIntegral_iff {x : A} : IsIntegral R x ↔ ∃ y : R, algebraMap R A y = x 
Arguments: {R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [Algebra R A] [iic : IsIntegrallyClosedIn R A] {x : A}
Goal: IsIntegral R x ↔ ∃ y, (algebraMap R A) y = x
-- IsIntegrallyClosedIn.exists_algebraMap_eq_of_isIntegral_pow
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 
Arguments: {R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [Algebra R A] [iic : IsIntegrallyClosedIn R A] {x : A} {n : ℕ} (hn : 0 < n) (hx : IsIntegral R (x ^ n))
Goal: ∃ y, (algebraMap R A) y = x
-- IsIntegrallyClosedIn.exists_algebraMap_eq_of_pow_mem_subalgebra
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 
Arguments: {R : Type u_1} [CommRing R] {A : Type u_3} [CommRing A] [Algebra R A] {S : Subalgebra R A} [IsIntegrallyClosedIn (↥S) A] {x : A} {n : ℕ} (hn : 0 < n) (hx : x ^ n ∈ S)
Goal: ∃ y, (algebraMap (↥S) A) y = x
-- IsIntegrallyClosedIn.integralClosure_eq_bot_iff
theorem integralClosure_eq_bot_iff (hRA : Function.Injective (algebraMap R A)) :
    integralClosure R A = ⊥ ↔ IsIntegrallyClosedIn R A 
Arguments: {R : Type u_1} (A : Type u_2) [CommRing R] [CommRing A] [Algebra R A] (hRA : Function.Injective ⇑(algebraMap R A))
Goal: integralClosure R A = ⊥ ↔ IsIntegrallyClosedIn R A
-- IsIntegrallyClosedIn.integralClosure_eq_bot
@[simp]
theorem integralClosure_eq_bot [NoZeroSMulDivisors R A] [Nontrivial A] : integralClosure R A = ⊥ 
Arguments: (R : Type u_1) (A : Type u_2) [CommRing R] [CommRing A] [Algebra R A] [iic : IsIntegrallyClosedIn R A] [NoZeroSMulDivisors R A] [Nontrivial A]
Goal: integralClosure R A = ⊥
-- IsIntegrallyClosedIn.of_isIntegralClosure
lemma of_isIntegralClosure [Algebra R B] [Algebra A B] [IsScalarTower R A B]
    [IsIntegralClosure A R B] :
    IsIntegrallyClosedIn A B 
Arguments: (R : Type u_1) {A : Type u_2} [CommRing R] [CommRing A] [Algebra R A] {B : Type u_3} [CommRing B] [Algebra R B] [Algebra A B] [IsScalarTower R A B] [IsIntegralClosure A R B]
Goal: IsIntegrallyClosedIn A B
-- IsIntegralClosure.of_isIntegrallyClosedIn
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 
Arguments: {R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [Algebra R A] {B : Type u_3} [CommRing B] [Algebra R B] [Algebra A B] [IsScalarTower R A B] [IsIntegrallyClosedIn A B] [Algebra.IsIntegral R A]
Goal: IsIntegralClosure A R B
-- IsIntegrallyClosed.algebraMap_eq_of_integral
theorem algebraMap_eq_of_integral {x : K} : IsIntegral R x → ∃ y : R, algebraMap R K y = x 
Arguments: {R : Type u_1} [CommRing R] [iic : IsIntegrallyClosed R] {K : Type u_3} [CommRing K] [Algebra R K] [ifr : IsFractionRing R K] {x : K}
Goal: IsIntegral R x → ∃ y, (algebraMap R K) y = x
-- IsIntegrallyClosed.isIntegral_iff
theorem isIntegral_iff {x : K} : IsIntegral R x ↔ ∃ y : R, algebraMap R K y = x 
Arguments: {R : Type u_1} [CommRing R] [iic : IsIntegrallyClosed R] {K : Type u_3} [CommRing K] [Algebra R K] [ifr : IsFractionRing R K] {x : K}
Goal: IsIntegral R x ↔ ∃ y, (algebraMap R K) y = x
-- IsIntegrallyClosed.exists_algebraMap_eq_of_isIntegral_pow
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 
Arguments: {R : Type u_1} [CommRing R] [iic : IsIntegrallyClosed R] {K : Type u_3} [CommRing K] [Algebra R K] [ifr : IsFractionRing R K] {x : K} {n : ℕ} (hn : 0 < n) (hx : IsIntegral R (x ^ n))
Goal: ∃ y, (algebraMap R K) y = x
-- IsIntegrallyClosed.exists_algebraMap_eq_of_pow_mem_subalgebra
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 
Arguments: {R : Type u_1} [CommRing R] {K : Type u_4} [CommRing K] [Algebra R K] {S : Subalgebra R K} [IsIntegrallyClosed ↥S] [IsFractionRing (↥S) K] {x : K} {n : ℕ} (hn : 0 < n) (hx : x ^ n ∈ S)
Goal: ∃ y, (algebraMap (↥S) K) y = x
-- IsIntegrallyClosed.integralClosure_eq_bot_iff
theorem integralClosure_eq_bot_iff : integralClosure R K = ⊥ ↔ IsIntegrallyClosed R 
Arguments: {R : Type u_1} [CommRing R] (K : Type u_3) [CommRing K] [Algebra R K] [ifr : IsFractionRing R K]
Goal: integralClosure R K = ⊥ ↔ IsIntegrallyClosed R
-- IsIntegrallyClosed.pow_dvd_pow_iff
@[simp]
theorem pow_dvd_pow_iff {n : ℕ} (hn : n ≠ 0) {a b : R} : a ^ n ∣ b ^ n ↔ a ∣ b  
Arguments: {R : Type u_1} [CommRing R] [id : IsDomain R] [iic : IsIntegrallyClosed R] {n : ℕ} (hn : n ≠ 0) {a b : R}
Goal: a ^ n ∣ b ^ n ↔ a ∣ b
-- IsIntegrallyClosed.integralClosure_eq_bot
@[simp]
theorem integralClosure_eq_bot : integralClosure R K = ⊥ 
Arguments: (R : Type u_1) [CommRing R] [iic : IsIntegrallyClosed R] (K : Type u_3) [CommRing K] [Algebra R K] [ifr : IsFractionRing R K]
Goal: integralClosure R K = ⊥
-- integralClosure.isIntegrallyClosedOfFiniteExtension
theorem isIntegrallyClosedOfFiniteExtension [IsDomain R] [FiniteDimensional K L] :
    IsIntegrallyClosed (integralClosure R L) 
Arguments: {R : Type u_1} [CommRing R] (K : Type u_2) [Field K] [Algebra R K] [IsFractionRing R K] {L : Type u_3} [Field L] [Algebra K L] [Algebra R L] [IsScalarTower R K L] [IsDomain R] [FiniteDimensional K L]
Goal: IsIntegrallyClosed ↥(integralClosure R L)
-- Ideal.coeff_zero_mem_comap_of_root_mem_of_eval_mem
theorem coeff_zero_mem_comap_of_root_mem_of_eval_mem {r : S} (hr : r ∈ I) {p : R[X]}
    (hp : p.eval₂ f r ∈ I) : p.coeff 0 ∈ I.comap f 
Arguments: {R : Type u_1} [CommRing R] {S : Type u_2} [CommRing S] {f : R →+* S} {I : Ideal S} {r : S} (hr : r ∈ I) {p : Polynomial R} (hp : Polynomial.eval₂ f r p ∈ I)
Goal: p.coeff 0 ∈ Ideal.comap f I
-- Ideal.coeff_zero_mem_comap_of_root_mem
theorem coeff_zero_mem_comap_of_root_mem {r : S} (hr : r ∈ I) {p : R[X]} (hp : p.eval₂ f r = 0) :
    p.coeff 0 ∈ I.comap f 
Arguments: {R : Type u_1} [CommRing R] {S : Type u_2} [CommRing S] {f : R →+* S} {I : Ideal S} {r : S} (hr : r ∈ I) {p : Polynomial R} (hp : Polynomial.eval₂ f r p = 0)
Goal: p.coeff 0 ∈ Ideal.comap f I
-- Ideal.exists_coeff_ne_zero_mem_comap_of_non_zero_divisor_root_mem
theorem exists_coeff_ne_zero_mem_comap_of_non_zero_divisor_root_mem {r : S}
    (r_non_zero_divisor : ∀ {x}, x * r = 0 → x = 0) (hr : r ∈ I) {p : R[X]} :
    p ≠ 0 → p.eval₂ f r = 0 → ∃ i, p.coeff i ≠ 0 ∧ p.coeff i ∈ I.comap f 
Arguments: {R : Type u_1} [CommRing R] {S : Type u_2} [CommRing S] {f : R →+* S} {I : Ideal S} {r : S} (r_non_zero_divisor : ∀ {x : S}, x * r = 0 → x = 0) (hr : r ∈ I) {p : Polynomial R}
Goal: p ≠ 0 → Polynomial.eval₂ f r p = 0 → ∃ i, p.coeff i ≠ 0 ∧ p.coeff i ∈ Ideal.comap f I
-- Ideal.injective_quotient_le_comap_map
theorem injective_quotient_le_comap_map (P : Ideal R[X]) :
    Function.Injective <|
      Ideal.quotientMap
        (Ideal.map (Polynomial.mapRingHom (Quotient.mk (P.comap (C : R →+* R[X])))) P)
        (Polynomial.mapRingHom (Ideal.Quotient.mk (P.comap (C : R →+* R[X]))))
        le_comap_map 
Arguments: {R : Type u_1} [CommRing R] (P : Ideal (Polynomial R))
Goal: Function.Injective
  ⇑(Ideal.quotientMap (Ideal.map (Polynomial.mapRingHom (Ideal.Quotient.mk (Ideal.comap Polynomial.C P))) P)
      (Polynomial.mapRingHom (Ideal.Quotient.mk (Ideal.comap Polynomial.C P))) ⋯)
-- Ideal.quotient_mk_maps_eq
theorem quotient_mk_maps_eq (P : Ideal R[X]) :
    ((Quotient.mk (map (mapRingHom (Quotient.mk (P.comap (C : R →+* R[X])))) P)).comp C).comp
        (Quotient.mk (P.comap (C : R →+* R[X]))) =
      (Ideal.quotientMap (map (mapRingHom (Quotient.mk (P.comap (C : R →+* R[X])))) P)
            (mapRingHom (Quotient.mk (P.comap (C : R →+* R[X])))) le_comap_map).comp
        ((Quotient.mk P).comp C) 
Arguments: {R : Type u_1} [CommRing R] (P : Ideal (Polynomial R))
Goal: ((Ideal.Quotient.mk (Ideal.map (Polynomial.mapRingHom (Ideal.Quotient.mk (Ideal.comap Polynomial.C P))) P)).comp
        Polynomial.C).comp
    (Ideal.Quotient.mk (Ideal.comap Polynomial.C P)) =
  (Ideal.quotientMap (Ideal.map (Polynomial.mapRingHom (Ideal.Quotient.mk (Ideal.comap Polynomial.C P))) P)
        (Polynomial.mapRingHom (Ideal.Quotient.mk (Ideal.comap Polynomial.C P))) ⋯).comp
    ((Ideal.Quotient.mk P).comp Polynomial.C)
-- Ideal.exists_nonzero_mem_of_ne_bot
theorem exists_nonzero_mem_of_ne_bot {P : Ideal R[X]} (Pb : P ≠ ⊥) (hP : ∀ x : R, C x ∈ P → x = 0) :
    ∃ p : R[X], p ∈ P ∧ Polynomial.map (Quotient.mk (P.comap (C : R →+* R[X]))) p ≠ 0 
Arguments: {R : Type u_1} [CommRing R] {P : Ideal (Polynomial R)} (Pb : P ≠ ⊥) (hP : ∀ (x : R), Polynomial.C x ∈ P → x = 0)
Goal: ∃ p ∈ P, Polynomial.map (Ideal.Quotient.mk (Ideal.comap Polynomial.C P)) p ≠ 0
-- Ideal.comap_eq_of_scalar_tower_quotient
theorem comap_eq_of_scalar_tower_quotient [Algebra R S] [Algebra (R ⧸ p) (S ⧸ P)]
    [IsScalarTower R (R ⧸ p) (S ⧸ P)] (h : Function.Injective (algebraMap (R ⧸ p) (S ⧸ P))) :
    comap (algebraMap R S) P = p 
Arguments: {R : Type u_1} [CommRing R] {S : Type u_2} [CommRing S] {p : Ideal R} {P : Ideal S} [Algebra R S] [Algebra (R ⧸ p) (S ⧸ P)] [IsScalarTower R (R ⧸ p) (S ⧸ P)] (h : Function.Injective ⇑(algebraMap (R ⧸ p) (S ⧸ P)))
Goal: Ideal.comap (algebraMap R S) P = p
-- Ideal.Quotient.algebraMap_quotient_map_quotient
@[simp]
theorem Quotient.algebraMap_quotient_map_quotient (x : R) :
    algebraMap (R ⧸ p) (S ⧸ map f p) (Ideal.Quotient.mk p x) =
    Ideal.Quotient.mk (map f p) (f x) 
Arguments: {R : Type u_1} [CommRing R] {S : Type u_2} [CommRing S] {f : R →+* S} {p : Ideal R} (x : R)
Goal: (algebraMap (R ⧸ p) (S ⧸ Ideal.map f p)) ((Ideal.Quotient.mk p) x) = (Ideal.Quotient.mk (Ideal.map f p)) (f x)
-- Ideal.Quotient.mk_smul_mk_quotient_map_quotient
@[simp]
theorem Quotient.mk_smul_mk_quotient_map_quotient (x : R) (y : S) :
    Quotient.mk p x • Quotient.mk (map f p) y = Quotient.mk (map f p) (f x * y) 
Arguments: {R : Type u_1} [CommRing R] {S : Type u_2} [CommRing S] {f : R →+* S} {p : Ideal R} (x : R) (y : S)
Goal: (Ideal.Quotient.mk p) x • (Ideal.Quotient.mk (Ideal.map f p)) y = (Ideal.Quotient.mk (Ideal.map f p)) (f x * y)