ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- KaehlerDifferential.map_D
@[simp]
theorem KaehlerDifferential.map_D (x : A) :
    KaehlerDifferential.map R S A B (KaehlerDifferential.D R A x) =
      KaehlerDifferential.D S B (algebraMap A B x) 
Arguments: (R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] [Algebra A B] [Algebra S B] [IsScalarTower R A B] [IsScalarTower R S B] [SMulCommClass S A B] (x : A)
Goal: (KaehlerDifferential.map R S A B) ((KaehlerDifferential.D R A) x) = (KaehlerDifferential.D S B) ((algebraMap A B) x)
-- KaehlerDifferential.ker_map
theorem KaehlerDifferential.ker_map :
    LinearMap.ker (KaehlerDifferential.map R S A B) =
      (((kerTotal S B).restrictScalars A).comap finsupp_map).map
        (Finsupp.total A (Ω[A⁄R]) A (D R A)) 
Arguments: (R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] [Algebra A B] [Algebra S B] [IsScalarTower R A B] [IsScalarTower R S B] [SMulCommClass S A B]
Goal: LinearMap.ker (KaehlerDifferential.map R S A B) =
  Submodule.map (Finsupp.total A (Ω[A⁄R]) A ⇑(KaehlerDifferential.D R A))
    (Submodule.comap (Finsupp.mapRange.linearMap (Algebra.linearMap A B) ∘ₗ Finsupp.lmapDomain A A ⇑(algebraMap A B))
      (Submodule.restrictScalars A (KaehlerDifferential.kerTotal S B)))
-- KaehlerDifferential.ker_map_of_surjective
lemma KaehlerDifferential.ker_map_of_surjective (h : Function.Surjective (algebraMap A B)) :
    LinearMap.ker (map R R A B) =
      (LinearMap.ker finsupp_map).map (Finsupp.total A _ A (D R A)) 
Arguments: (R : Type u) [CommRing R] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] [Algebra A B] [IsScalarTower R A B] (h : Function.Surjective ⇑(algebraMap A B))
Goal: LinearMap.ker (KaehlerDifferential.map R R A B) =
  Submodule.map (Finsupp.total A (Ω[A⁄R]) A ⇑(KaehlerDifferential.D R A))
    (LinearMap.ker (Finsupp.mapRange.linearMap (Algebra.linearMap A B) ∘ₗ Finsupp.lmapDomain A A ⇑(algebraMap A B)))
-- KaehlerDifferential.map_surjective_of_surjective
theorem KaehlerDifferential.map_surjective_of_surjective
    (h : Function.Surjective (algebraMap A B)) :
    Function.Surjective (KaehlerDifferential.map R S A B) 
Arguments: (R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] [Algebra A B] [Algebra S B] [IsScalarTower R A B] [IsScalarTower R S B] [SMulCommClass S A B] (h : Function.Surjective ⇑(algebraMap A B))
Goal: Function.Surjective ⇑(KaehlerDifferential.map R S A B)
-- KaehlerDifferential.map_surjective
theorem KaehlerDifferential.map_surjective :
    Function.Surjective (KaehlerDifferential.map R S B B) 
Arguments: (R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] (B : Type u_3) [CommRing B] [Algebra R B] [Algebra S B] [IsScalarTower R S B]
Goal: Function.Surjective ⇑(KaehlerDifferential.map R S B B)
-- KaehlerDifferential.mapBaseChange_tmul
@[simp]
theorem KaehlerDifferential.mapBaseChange_tmul (x : B) (y : Ω[A⁄R]) :
    KaehlerDifferential.mapBaseChange R A B (x ⊗ₜ y) = x • KaehlerDifferential.map R R A B y 
Arguments: (R : Type u) [CommRing R] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] [Algebra A B] [IsScalarTower R A B] (x : B) (y : Ω[A⁄R])
Goal: (KaehlerDifferential.mapBaseChange R A B) (x ⊗ₜ[A] y) = x • (KaehlerDifferential.map R R A B) y
-- KaehlerDifferential.range_mapBaseChange
lemma KaehlerDifferential.range_mapBaseChange :
    LinearMap.range (mapBaseChange R A B) = LinearMap.ker (map R A B B) 
Arguments: (R : Type u) [CommRing R] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] [Algebra A B] [IsScalarTower R A B]
Goal: LinearMap.range (KaehlerDifferential.mapBaseChange R A B) = LinearMap.ker (KaehlerDifferential.map R A B B)
-- KaehlerDifferential.exact_mapBaseChange_map
lemma KaehlerDifferential.exact_mapBaseChange_map :
    Function.Exact (mapBaseChange R A B) (map R A B B) 
Arguments: (R : Type u) [CommRing R] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] [Algebra A B] [IsScalarTower R A B]
Goal: Function.Exact ⇑(KaehlerDifferential.mapBaseChange R A B) ⇑(KaehlerDifferential.map R A B B)
-- KaehlerDifferential.kerToTensor_apply
@[simps]
noncomputable
def KaehlerDifferential.kerToTensor :
    RingHom.ker (algebraMap A B) →ₗ[A] B ⊗[A] Ω[A⁄R] 
Arguments: (R : Type u) [CommRing R] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra A B] (x : ↥(RingHom.ker (algebraMap A B)))
Goal: (KaehlerDifferential.kerToTensor R A B) x = 1 ⊗ₜ[A] (KaehlerDifferential.D R A) ↑x
-- KaehlerDifferential.kerCotangentToTensor_toCotangent
@[simp]
lemma KaehlerDifferential.kerCotangentToTensor_toCotangent (x) :
    kerCotangentToTensor R A B (Ideal.toCotangent _ x) = 1 ⊗ₜ D _ _ x.1 
Arguments: (R : Type u) [CommRing R] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra A B] (x : ↥(RingHom.ker (algebraMap A B)))
Goal: (KaehlerDifferential.kerCotangentToTensor R A B) ((RingHom.ker (algebraMap A B)).toCotangent x) =
  1 ⊗ₜ[A] (KaehlerDifferential.D R A) ↑x
-- KaehlerDifferential.range_kerCotangentToTensor
theorem KaehlerDifferential.range_kerCotangentToTensor
    (h : Function.Surjective (algebraMap A B)) :
    LinearMap.range (kerCotangentToTensor R A B) =
      (LinearMap.ker (KaehlerDifferential.mapBaseChange R A B)).restrictScalars A 
Arguments: (R : Type u) [CommRing R] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] [Algebra A B] [IsScalarTower R A B] (h : Function.Surjective ⇑(algebraMap A B))
Goal: LinearMap.range (KaehlerDifferential.kerCotangentToTensor R A B) =
  Submodule.restrictScalars A (LinearMap.ker (KaehlerDifferential.mapBaseChange R A B))
-- KaehlerDifferential.exact_kerCotangentToTensor_mapBaseChange
theorem KaehlerDifferential.exact_kerCotangentToTensor_mapBaseChange
    (h : Function.Surjective (algebraMap A B)) :
    Function.Exact (kerCotangentToTensor R A B) (KaehlerDifferential.mapBaseChange R A B) 
Arguments: (R : Type u) [CommRing R] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] [Algebra A B] [IsScalarTower R A B] (h : Function.Surjective ⇑(algebraMap A B))
Goal: Function.Exact ⇑(KaehlerDifferential.kerCotangentToTensor R A B) ⇑(KaehlerDifferential.mapBaseChange R A B)
-- KaehlerDifferential.mapBaseChange_surjective
lemma KaehlerDifferential.mapBaseChange_surjective
    (h : Function.Surjective (algebraMap A B)) :
    Function.Surjective (KaehlerDifferential.mapBaseChange R A B) 
Arguments: (R : Type u) [CommRing R] (A : Type u_2) (B : Type u_3) [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] [Algebra A B] [IsScalarTower R A B] (h : Function.Surjective ⇑(algebraMap A B))
Goal: Function.Surjective ⇑(KaehlerDifferential.mapBaseChange R A B)
-- Algebra.Flat.out
class Algebra.Flat (R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] : Prop where
  out : Module.Flat R S
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] [self : Algebra.Flat R S]
Goal: Module.Flat R S
-- Algebra.Flat.comp
theorem comp (T : Type w) [CommRing T] [Algebra R S] [Algebra R T] [Algebra S T]
    [IsScalarTower R S T] [Algebra.Flat R S] [Algebra.Flat S T] : Algebra.Flat R T 
Arguments: (R : Type u) (S : Type v) [CommRing R] [CommRing S] (T : Type w) [CommRing T] [Algebra R S] [Algebra R T] [Algebra S T] [IsScalarTower R S T] [Algebra.Flat R S] [Algebra.Flat S T]
Goal: Algebra.Flat R T
-- Algebra.Flat.isBaseChange
theorem isBaseChange [Algebra R S] (R' : Type w) (S' : Type t) [CommRing R'] [CommRing S']
    [Algebra R R'] [Algebra S S'] [Algebra R' S'] [Algebra R S'] [IsScalarTower R R' S']
    [IsScalarTower R S S'] [h : IsPushout R S R' S'] [Algebra.Flat R R'] : Algebra.Flat S S' 
Arguments: (R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] (R' : Type w) (S' : Type t) [CommRing R'] [CommRing S'] [Algebra R R'] [Algebra S S'] [Algebra R' S'] [Algebra R S'] [IsScalarTower R R' S'] [IsScalarTower R S S'] [h : Algebra.IsPushout R S R' S'] [Algebra.Flat R R']
Goal: Algebra.Flat S S'
-- RingHom.Flat.out
class RingHom.Flat {R : Type u} {S : Type v} [CommRing R] [CommRing S] (f : R →+* S) : Prop where
  out : f.toAlgebra.Flat := by infer_instance
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] {f : R →+* S} [self : f.Flat]
Goal: Algebra.Flat R S
-- Module.Flat.lTensor_shortComplex_exact
lemma lTensor_shortComplex_exact [Flat R M] (C : ShortComplex $ ModuleCat R) (hC : C.Exact) :
    C.map (tensorLeft M) |>.Exact 
Arguments: {R : Type u} [CommRing R] (M : ModuleCat R) [Module.Flat R ↑M] (C : CategoryTheory.ShortComplex (ModuleCat R)) (hC : C.Exact)
Goal: (C.map (CategoryTheory.MonoidalCategory.tensorLeft M)).Exact
-- Module.Flat.rTensor_shortComplex_exact
lemma rTensor_shortComplex_exact [Flat R M] (C : ShortComplex $ ModuleCat R) (hC : C.Exact) :
    C.map (tensorRight M) |>.Exact 
Arguments: {R : Type u} [CommRing R] (M : ModuleCat R) [Module.Flat R ↑M] (C : CategoryTheory.ShortComplex (ModuleCat R)) (hC : C.Exact)
Goal: (C.map (CategoryTheory.MonoidalCategory.tensorRight M)).Exact
-- Module.Flat.iff_lTensor_preserves_shortComplex_exact
lemma iff_lTensor_preserves_shortComplex_exact :
    Flat R M ↔
    ∀ (C : ShortComplex $ ModuleCat R) (_ : C.Exact), (C.map (tensorLeft M) |>.Exact) 
Arguments: {R : Type u} [CommRing R] (M : ModuleCat R)
Goal: Module.Flat R ↑M ↔
  ∀ (C : CategoryTheory.ShortComplex (ModuleCat R)),
    C.Exact → (C.map (CategoryTheory.MonoidalCategory.tensorLeft M)).Exact
-- Module.Flat.iff_rTensor_preserves_shortComplex_exact
lemma iff_rTensor_preserves_shortComplex_exact :
    Flat R M ↔
    ∀ (C : ShortComplex $ ModuleCat R) (_ : C.Exact), (C.map (tensorRight M) |>.Exact) 
Arguments: {R : Type u} [CommRing R] (M : ModuleCat R)
Goal: Module.Flat R ↑M ↔
  ∀ (C : CategoryTheory.ShortComplex (ModuleCat R)),
    C.Exact → (C.map (CategoryTheory.MonoidalCategory.tensorRight M)).Exact
-- IsBezout.isPrincipal_of_FG
class IsBezout : Prop where
    isPrincipal_of_FG : ∀ I : Ideal R, I.FG → I.IsPrincipal
Arguments: {R : Type u} [Ring R] [self : IsBezout R] (I : Ideal R)
Goal: I.FG → Submodule.IsPrincipal I
-- Submodule.IsPrincipal.span_singleton_generator
theorem span_singleton_generator (S : Submodule R M) [S.IsPrincipal] : span R {generator S} = S 
Arguments: {R : Type u} {M : Type v} [AddCommGroup M] [Ring R] [Module R M] (S : Submodule R M) [S.IsPrincipal]
Goal: Submodule.span R {Submodule.IsPrincipal.generator S} = S
-- Ideal.span_singleton_generator
@[simp]
theorem _root_.Ideal.span_singleton_generator (I : Ideal R) [I.IsPrincipal] :
    Ideal.span ({generator I} : Set R) = I 
Arguments: {R : Type u} [Ring R] (I : Ideal R) [Submodule.IsPrincipal I]
Goal: Ideal.span {Submodule.IsPrincipal.generator I} = I
-- Submodule.IsPrincipal.generator_mem
@[simp]
theorem generator_mem (S : Submodule R M) [S.IsPrincipal] : generator S ∈ S 
Arguments: {R : Type u} {M : Type v} [AddCommGroup M] [Ring R] [Module R M] (S : Submodule R M) [S.IsPrincipal]
Goal: Submodule.IsPrincipal.generator S ∈ S
-- Submodule.IsPrincipal.mem_iff_eq_smul_generator
theorem mem_iff_eq_smul_generator (S : Submodule R M) [S.IsPrincipal] {x : M} :
    x ∈ S ↔ ∃ s : R, x = s • generator S 
Arguments: {R : Type u} {M : Type v} [AddCommGroup M] [Ring R] [Module R M] (S : Submodule R M) [S.IsPrincipal] {x : M}
Goal: x ∈ S ↔ ∃ s, x = s • Submodule.IsPrincipal.generator S
-- Submodule.IsPrincipal.eq_bot_iff_generator_eq_zero
theorem eq_bot_iff_generator_eq_zero (S : Submodule R M) [S.IsPrincipal] :
    S = ⊥ ↔ generator S = 0 
Arguments: {R : Type u} {M : Type v} [AddCommGroup M] [Ring R] [Module R M] (S : Submodule R M) [S.IsPrincipal]
Goal: S = ⊥ ↔ Submodule.IsPrincipal.generator S = 0
-- Submodule.IsPrincipal.associated_generator_span_self
theorem associated_generator_span_self [IsPrincipalIdealRing R] [IsDomain R] (r : R) :
    Associated (generator <| Ideal.span {r}) r 
Arguments: {R : Type u} [CommRing R] [IsPrincipalIdealRing R] [IsDomain R] (r : R)
Goal: Associated (Submodule.IsPrincipal.generator (Ideal.span {r})) r
-- Submodule.IsPrincipal.mem_iff_generator_dvd
theorem mem_iff_generator_dvd (S : Ideal R) [S.IsPrincipal] {x : R} : x ∈ S ↔ generator S ∣ x 
Arguments: {R : Type u} [CommRing R] (S : Ideal R) [Submodule.IsPrincipal S] {x : R}
Goal: x ∈ S ↔ Submodule.IsPrincipal.generator S ∣ x
-- Submodule.IsPrincipal.prime_generator_of_isPrime
theorem prime_generator_of_isPrime (S : Ideal R) [S.IsPrincipal] [is_prime : S.IsPrime]
    (ne_bot : S ≠ ⊥) : Prime (generator S) 
Arguments: {R : Type u} [CommRing R] (S : Ideal R) [Submodule.IsPrincipal S] [is_prime : S.IsPrime] (ne_bot : S ≠ ⊥)
Goal: Prime (Submodule.IsPrincipal.generator S)
-- Submodule.IsPrincipal.generator_map_dvd_of_mem
theorem generator_map_dvd_of_mem {N : Submodule R M} (ϕ : M →ₗ[R] R) [(N.map ϕ).IsPrincipal] {x : M}
    (hx : x ∈ N) : generator (N.map ϕ) ∣ ϕ x 
Arguments: {R : Type u} {M : Type v} [AddCommGroup M] [CommRing R] [Module R M] {N : Submodule R M} (ϕ : M →ₗ[R] R) [(Submodule.map ϕ N).IsPrincipal] {x : M} (hx : x ∈ N)
Goal: Submodule.IsPrincipal.generator (Submodule.map ϕ N) ∣ ϕ x
-- Submodule.IsPrincipal.generator_submoduleImage_dvd_of_mem
theorem generator_submoduleImage_dvd_of_mem {N O : Submodule R M} (hNO : N ≤ O) (ϕ : O →ₗ[R] R)
    [(ϕ.submoduleImage N).IsPrincipal] {x : M} (hx : x ∈ N) :
    generator (ϕ.submoduleImage N) ∣ ϕ ⟨x, hNO hx⟩ 
Arguments: {R : Type u} {M : Type v} [AddCommGroup M] [CommRing R] [Module R M] {N O : Submodule R M} (hNO : N ≤ O) (ϕ : ↥O →ₗ[R] R) [(ϕ.submoduleImage N).IsPrincipal] {x : M} (hx : x ∈ N)
Goal: Submodule.IsPrincipal.generator (ϕ.submoduleImage N) ∣ ϕ ⟨x, ⋯⟩
-- IsBezout.span_gcd
theorem span_gcd : Ideal.span {gcd x y} = Ideal.span {x, y} 
Arguments: {R : Type u} [Ring R] (x y : R) [Submodule.IsPrincipal (Ideal.span {x, y})]
Goal: Ideal.span {IsBezout.gcd x y} = Ideal.span {x, y}
-- IsBezout.gcd_dvd_left
theorem gcd_dvd_left : gcd x y ∣ x 
Arguments: {R : Type u} [CommRing R] (x y : R) [Submodule.IsPrincipal (Ideal.span {x, y})]
Goal: IsBezout.gcd x y ∣ x
-- IsBezout.gcd_dvd_right
theorem gcd_dvd_right : gcd x y ∣ y 
Arguments: {R : Type u} [CommRing R] (x y : R) [Submodule.IsPrincipal (Ideal.span {x, y})]
Goal: IsBezout.gcd x y ∣ y
-- IsBezout.dvd_gcd
theorem dvd_gcd (hx : z ∣ x) (hy : z ∣ y) : z ∣ gcd x y 
Arguments: {R : Type u} [CommRing R] {x y z : R} [Submodule.IsPrincipal (Ideal.span {x, y})] (hx : z ∣ x) (hy : z ∣ y)
Goal: z ∣ IsBezout.gcd x y
-- IsBezout.gcd_eq_sum
theorem gcd_eq_sum : ∃ a b : R, a * x + b * y = gcd x y 
Arguments: {R : Type u} [CommRing R] (x y : R) [Submodule.IsPrincipal (Ideal.span {x, y})]
Goal: ∃ a b, a * x + b * y = IsBezout.gcd x y
-- IsRelPrime.isCoprime
theorem _root_.IsRelPrime.isCoprime (h : IsRelPrime x y) : IsCoprime x y 
Arguments: {R : Type u} [CommRing R] {x y : R} [Submodule.IsPrincipal (Ideal.span {x, y})] (h : IsRelPrime x y)
Goal: IsCoprime x y
-- isRelPrime_iff_isCoprime
theorem _root_.isRelPrime_iff_isCoprime : IsRelPrime x y ↔ IsCoprime x y 
Arguments: {R : Type u} [CommRing R] {x y : R} [Submodule.IsPrincipal (Ideal.span {x, y})]
Goal: IsRelPrime x y ↔ IsCoprime x y
-- IsBezout.associated_gcd_gcd
theorem associated_gcd_gcd [IsDomain R] [GCDMonoid R] :
    Associated (IsBezout.gcd x y) (GCDMonoid.gcd x y) 
Arguments: (R : Type u) [CommRing R] {x y : R} [Submodule.IsPrincipal (Ideal.span {x, y})] [IsDomain R] [GCDMonoid R]
Goal: Associated (IsBezout.gcd x y) (gcd x y)
-- IsPrime.to_maximal_ideal
theorem to_maximal_ideal [CommRing R] [IsDomain R] [IsPrincipalIdealRing R] {S : Ideal R}
    [hpi : IsPrime S] (hS : S ≠ ⊥) : IsMaximal S 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [IsPrincipalIdealRing R] {S : Ideal R} [hpi : S.IsPrime] (hS : S ≠ ⊥)
Goal: S.IsMaximal
-- mod_mem_iff
theorem mod_mem_iff {S : Ideal R} {x y : R} (hy : y ∈ S) : x % y ∈ S ↔ x ∈ S 
Arguments: {R : Type u} [EuclideanDomain R] {S : Ideal R} {x y : R} (hy : y ∈ S)
Goal: x % y ∈ S ↔ x ∈ S
-- IsField.isPrincipalIdealRing
theorem IsField.isPrincipalIdealRing {R : Type*} [CommRing R] (h : IsField R) :
    IsPrincipalIdealRing R 
Arguments: {R : Type u_1} [CommRing R] (h : IsField R)
Goal: IsPrincipalIdealRing R
-- PrincipalIdealRing.isMaximal_of_irreducible
theorem isMaximal_of_irreducible [CommRing R] [IsPrincipalIdealRing R] {p : R}
    (hp : Irreducible p) : Ideal.IsMaximal (span R ({p} : Set R)) 
Arguments: {R : Type u} [CommRing R] [IsPrincipalIdealRing R] {p : R} (hp : Irreducible p)
Goal: Ideal.IsMaximal (Submodule.span R {p})
-- PrincipalIdealRing.factors_spec
theorem factors_spec (a : R) (h : a ≠ 0) :
    (∀ b ∈ factors a, Irreducible b) ∧ Associated (factors a).prod a 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [IsPrincipalIdealRing R] (a : R) (h : a ≠ 0)
Goal: (∀ b ∈ PrincipalIdealRing.factors a, Irreducible b) ∧ Associated (PrincipalIdealRing.factors a).prod a
-- PrincipalIdealRing.ne_zero_of_mem_factors
theorem ne_zero_of_mem_factors {R : Type v} [CommRing R] [IsDomain R] [IsPrincipalIdealRing R]
    {a b : R} (ha : a ≠ 0) (hb : b ∈ factors a) : b ≠ 0 
Arguments: {R : Type v} [CommRing R] [IsDomain R] [IsPrincipalIdealRing R] {a b : R} (ha : a ≠ 0) (hb : b ∈ PrincipalIdealRing.factors a)
Goal: b ≠ 0
-- PrincipalIdealRing.mem_submonoid_of_factors_subset_of_units_subset
theorem mem_submonoid_of_factors_subset_of_units_subset (s : Submonoid R) {a : R} (ha : a ≠ 0)
    (hfac : ∀ b ∈ factors a, b ∈ s) (hunit : ∀ c : Rˣ, (c : R) ∈ s) : a ∈ s 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [IsPrincipalIdealRing R] (s : Submonoid R) {a : R} (ha : a ≠ 0) (hfac : ∀ b ∈ PrincipalIdealRing.factors a, b ∈ s) (hunit : ∀ (c : Rˣ), ↑c ∈ s)
Goal: a ∈ s
-- PrincipalIdealRing.ringHom_mem_submonoid_of_factors_subset_of_units_subset
theorem ringHom_mem_submonoid_of_factors_subset_of_units_subset {R S : Type*} [CommRing R]
    [IsDomain R] [IsPrincipalIdealRing R] [Semiring S] (f : R →+* S) (s : Submonoid S) (a : R)
    (ha : a ≠ 0) (h : ∀ b ∈ factors a, f b ∈ s) (hf : ∀ c : Rˣ, f c ∈ s) : f a ∈ s 
Arguments: {R : Type u_1} {S : Type u_2} [CommRing R] [IsDomain R] [IsPrincipalIdealRing R] [Semiring S] (f : R →+* S) (s : Submonoid S) (a : R) (ha : a ≠ 0) (h : ∀ b ∈ PrincipalIdealRing.factors a, f b ∈ s) (hf : ∀ (c : Rˣ), f ↑c ∈ s)
Goal: f a ∈ s
-- Submodule.IsPrincipal.of_comap
theorem Submodule.IsPrincipal.of_comap (f : M →ₗ[R] N) (hf : Function.Surjective f)
    (S : Submodule R N) [hI : IsPrincipal (S.comap f)] : IsPrincipal S 
Arguments: {R : Type u} {M : Type v} {N : Type u_2} [Ring R] [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] (f : M →ₗ[R] N) (hf : Function.Surjective ⇑f) (S : Submodule R N) [hI : (Submodule.comap f S).IsPrincipal]
Goal: S.IsPrincipal
-- Ideal.IsPrincipal.of_comap
theorem Ideal.IsPrincipal.of_comap (f : R →+* S) (hf : Function.Surjective f) (I : Ideal S)
    [hI : IsPrincipal (I.comap f)] : IsPrincipal I 
Arguments: {R : Type u} {S : Type u_1} [Ring R] [Ring S] (f : R →+* S) (hf : Function.Surjective ⇑f) (I : Ideal S) [hI : Submodule.IsPrincipal (Ideal.comap f I)]
Goal: Submodule.IsPrincipal I
-- IsPrincipalIdealRing.of_surjective
theorem IsPrincipalIdealRing.of_surjective [IsPrincipalIdealRing R] (f : R →+* S)
    (hf : Function.Surjective f) : IsPrincipalIdealRing S 
Arguments: {R : Type u} {S : Type u_1} [Ring R] [Ring S] [IsPrincipalIdealRing R] (f : R →+* S) (hf : Function.Surjective ⇑f)
Goal: IsPrincipalIdealRing S
-- IsBezout.span_gcd_eq_span_gcd
theorem IsBezout.span_gcd_eq_span_gcd (x y : R) :
    span {GCDMonoid.gcd x y} = span {IsBezout.gcd x y} 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [IsBezout R] [GCDMonoid R] (x y : R)
Goal: Ideal.span {gcd x y} = Ideal.span {IsBezout.gcd x y}
-- span_gcd
theorem span_gcd (x y : R) : span {gcd x y} = span {x, y} 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [IsBezout R] [GCDMonoid R] (x y : R)
Goal: Ideal.span {gcd x y} = Ideal.span {x, y}
-- gcd_dvd_iff_exists
theorem gcd_dvd_iff_exists (a b : R) {z} : gcd a b ∣ z ↔ ∃ x y, z = a * x + b * y 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [IsBezout R] [GCDMonoid R] (a b : R) {z : R}
Goal: gcd a b ∣ z ↔ ∃ x y, z = a * x + b * y
-- exists_gcd_eq_mul_add_mul
theorem exists_gcd_eq_mul_add_mul (a b : R) : ∃ x y, gcd a b = a * x + b * y 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [IsBezout R] [GCDMonoid R] (a b : R)
Goal: ∃ x y, gcd a b = a * x + b * y
-- gcd_isUnit_iff
theorem gcd_isUnit_iff (x y : R) : IsUnit (gcd x y) ↔ IsCoprime x y 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [IsBezout R] [GCDMonoid R] (x y : R)
Goal: IsUnit (gcd x y) ↔ IsCoprime x y
-- isCoprime_of_dvd
theorem isCoprime_of_dvd (x y : R) (nonzero : ¬(x = 0 ∧ y = 0))
    (H : ∀ z ∈ nonunits R, z ≠ 0 → z ∣ x → ¬z ∣ y) : IsCoprime x y 
Arguments: {R : Type u} [CommRing R] [IsBezout R] (x y : R) (nonzero : ¬(x = 0 ∧ y = 0)) (H : ∀ z ∈ nonunits R, z ≠ 0 → z ∣ x → ¬z ∣ y)
Goal: IsCoprime x y
-- dvd_or_coprime
theorem dvd_or_coprime (x y : R) (h : Irreducible x) : x ∣ y ∨ IsCoprime x y 
Arguments: {R : Type u} [CommRing R] [IsBezout R] (x y : R) (h : Irreducible x)
Goal: x ∣ y ∨ IsCoprime x y
-- Irreducible.coprime_iff_not_dvd
theorem Irreducible.coprime_iff_not_dvd {p n : R} (hp : Irreducible p) :
    IsCoprime p n ↔ ¬p ∣ n 
Arguments: {R : Type u} [CommRing R] [IsBezout R] {p n : R} (hp : Irreducible p)
Goal: IsCoprime p n ↔ ¬p ∣ n
-- Prime.coprime_iff_not_dvd
theorem Prime.coprime_iff_not_dvd {p n : R} (hp : Prime p) : IsCoprime p n ↔ ¬p ∣ n 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [IsBezout R] {p n : R} (hp : Prime p)
Goal: IsCoprime p n ↔ ¬p ∣ n
-- Irreducible.dvd_iff_not_coprime
theorem Irreducible.dvd_iff_not_coprime {p n : R} (hp : Irreducible p) : p ∣ n ↔ ¬IsCoprime p n 
Arguments: {R : Type u} [CommRing R] [IsBezout R] {p n : R} (hp : Irreducible p)
Goal: p ∣ n ↔ ¬IsCoprime p n
-- Irreducible.coprime_pow_of_not_dvd
theorem Irreducible.coprime_pow_of_not_dvd {p a : R} (m : ℕ) (hp : Irreducible p) (h : ¬p ∣ a) :
    IsCoprime a (p ^ m) 
Arguments: {R : Type u} [CommRing R] [IsBezout R] {p a : R} (m : ℕ) (hp : Irreducible p) (h : ¬p ∣ a)
Goal: IsCoprime a (p ^ m)
-- Irreducible.coprime_or_dvd
theorem Irreducible.coprime_or_dvd {p : R} (hp : Irreducible p) (i : R) : IsCoprime p i ∨ p ∣ i 
Arguments: {R : Type u} [CommRing R] [IsBezout R] {p : R} (hp : Irreducible p) (i : R)
Goal: IsCoprime p i ∨ p ∣ i
-- exists_associated_pow_of_mul_eq_pow'
theorem exists_associated_pow_of_mul_eq_pow' {a b c : R} (hab : IsCoprime a b) {k : ℕ}
    (h : a * b = c ^ k) : ∃ d : R, Associated (d ^ k) a 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [IsBezout R] {a b c : R} (hab : IsCoprime a b) {k : ℕ} (h : a * b = c ^ k)
Goal: ∃ d, Associated (d ^ k) a
-- exists_associated_pow_of_associated_pow_mul
theorem exists_associated_pow_of_associated_pow_mul {a b c : R} (hab : IsCoprime a b) {k : ℕ}
    (h : Associated (c ^ k) (a * b)) : ∃ d : R, Associated (d ^ k) a 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [IsBezout R] {a b c : R} (hab : IsCoprime a b) {k : ℕ} (h : Associated (c ^ k) (a * b))
Goal: ∃ d, Associated (d ^ k) a
-- isCoprime_of_irreducible_dvd
theorem isCoprime_of_irreducible_dvd {x y : R} (nonzero : ¬(x = 0 ∧ y = 0))
    (H : ∀ z : R, Irreducible z → z ∣ x → ¬z ∣ y) : IsCoprime x y 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [IsPrincipalIdealRing R] {x y : R} (nonzero : ¬(x = 0 ∧ y = 0)) (H : ∀ (z : R), Irreducible z → z ∣ x → ¬z ∣ y)
Goal: IsCoprime x y
-- isCoprime_of_prime_dvd
theorem isCoprime_of_prime_dvd {x y : R} (nonzero : ¬(x = 0 ∧ y = 0))
    (H : ∀ z : R, Prime z → z ∣ x → ¬z ∣ y) : IsCoprime x y 
Arguments: {R : Type u} [CommRing R] [IsDomain R] [IsPrincipalIdealRing R] {x y : R} (nonzero : ¬(x = 0 ∧ y = 0)) (H : ∀ (z : R), Prime z → z ∣ x → ¬z ∣ y)
Goal: IsCoprime x y
-- nonPrincipals_def
theorem nonPrincipals_def {I : Ideal R} : I ∈ nonPrincipals R ↔ ¬I.IsPrincipal 
Arguments: (R : Type u) [CommRing R] {I : Ideal R}
Goal: I ∈ nonPrincipals R ↔ ¬Submodule.IsPrincipal I
-- nonPrincipals_eq_empty_iff
theorem nonPrincipals_eq_empty_iff : nonPrincipals R = ∅ ↔ IsPrincipalIdealRing R 
Arguments: {R : Type u} [CommRing R]
Goal: nonPrincipals R = ∅ ↔ IsPrincipalIdealRing R