ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Group.mem_closure_union_iff
@[to_additive]
theorem mem_closure_union_iff {G : Type*} [CommGroup G] {s t : Set G} {x : G} :
    x ∈ closure (s ∪ t) ↔ ∃ y ∈ closure s, ∃ z ∈ closure t, y * z = x 
Arguments: {G : Type u_4} [CommGroup G] {s t : Set G} {x : G}
Goal: x ∈ Group.closure (s ∪ t) ↔ ∃ y ∈ Group.closure s, ∃ z ∈ Group.closure t, y * z = x
-- IsSubgroup.trivial_eq_closure
@[to_additive]
theorem trivial_eq_closure : trivial G = Group.closure ∅ 
Arguments: {G : Type u_1} [Group G]
Goal: IsSubgroup.trivial G = Group.closure ∅
-- IsAddSubgroup.trivial_eq_closure
@[to_additive]
theorem trivial_eq_closure : trivial G = Group.closure ∅ 
Arguments: {G : Type u_1} [AddGroup G]
Goal: IsAddSubgroup.trivial G = AddGroup.closure ∅
-- Group.conjugatesOf_subset
theorem conjugatesOf_subset {t : Set G} (ht : IsNormalSubgroup t) {a : G} (h : a ∈ t) :
    conjugatesOf a ⊆ t 
Arguments: {G : Type u_1} [Group G] {t : Set G} (ht : IsNormalSubgroup t) {a : G} (h : a ∈ t)
Goal: conjugatesOf a ⊆ t
-- Group.conjugatesOfSet_subset'
theorem conjugatesOfSet_subset' {s t : Set G} (ht : IsNormalSubgroup t) (h : s ⊆ t) :
    conjugatesOfSet s ⊆ t 
Arguments: {G : Type u_1} [Group G] {s t : Set G} (ht : IsNormalSubgroup t) (h : s ⊆ t)
Goal: Group.conjugatesOfSet s ⊆ t
-- Group.conjugatesOfSet_subset_normalClosure
theorem conjugatesOfSet_subset_normalClosure : conjugatesOfSet s ⊆ normalClosure s 
Arguments: {G : Type u_1} {s : Set G} [Group G]
Goal: Group.conjugatesOfSet s ⊆ Group.normalClosure s
-- Group.subset_normalClosure
theorem subset_normalClosure : s ⊆ normalClosure s 
Arguments: {G : Type u_1} {s : Set G} [Group G]
Goal: s ⊆ Group.normalClosure s
-- Group.normalClosure.isSubgroup
theorem normalClosure.isSubgroup (s : Set G) : IsSubgroup (normalClosure s) 
Arguments: {G : Type u_1} [Group G] (s : Set G)
Goal: IsSubgroup (Group.normalClosure s)
-- Group.normalClosure.is_normal
theorem normalClosure.is_normal : IsNormalSubgroup (normalClosure s) 
Arguments: {G : Type u_1} {s : Set G} [Group G]
Goal: IsNormalSubgroup (Group.normalClosure s)
-- Group.normalClosure_subset
theorem normalClosure_subset {s t : Set G} (ht : IsNormalSubgroup t) (h : s ⊆ t) :
    normalClosure s ⊆ t 
Arguments: {G : Type u_1} [Group G] {s t : Set G} (ht : IsNormalSubgroup t) (h : s ⊆ t)
Goal: Group.normalClosure s ⊆ t
-- Group.normalClosure_subset_iff
theorem normalClosure_subset_iff {s t : Set G} (ht : IsNormalSubgroup t) :
    s ⊆ t ↔ normalClosure s ⊆ t 
Arguments: {G : Type u_1} [Group G] {s t : Set G} (ht : IsNormalSubgroup t)
Goal: s ⊆ t ↔ Group.normalClosure s ⊆ t
-- Group.normalClosure_mono
theorem normalClosure_mono {s t : Set G} : s ⊆ t → normalClosure s ⊆ normalClosure t 
Arguments: {G : Type u_1} [Group G] {s t : Set G}
Goal: s ⊆ t → Group.normalClosure s ⊆ Group.normalClosure t
-- AddSubgroup.isAddSubgroup
@[to_additive]
theorem Subgroup.isSubgroup [Group G] (K : Subgroup G) : IsSubgroup (K : Set G) 
Arguments: {G : Type u_1} [AddGroup G] (K : AddSubgroup G)
Goal: IsAddSubgroup ↑K
-- Subgroup.isSubgroup
@[to_additive]
theorem Subgroup.isSubgroup [Group G] (K : Subgroup G) : IsSubgroup (K : Set G) 
Arguments: {G : Type u_1} [Group G] (K : Subgroup G)
Goal: IsSubgroup ↑K
-- Subgroup.of_normal
@[to_additive]
theorem Subgroup.of_normal [Group G] (s : Set G) (h : IsSubgroup s) (n : IsNormalSubgroup s) :
    Subgroup.Normal (Subgroup.of h) 
Arguments: {G : Type u_1} [Group G] (s : Set G) (h : IsSubgroup s) (n : IsNormalSubgroup s)
Goal: (Subgroup.of h).Normal
-- AddSubgroup.of_normal
@[to_additive]
theorem Subgroup.of_normal [Group G] (s : Set G) (h : IsSubgroup s) (n : IsNormalSubgroup s) :
    Subgroup.Normal (Subgroup.of h) 
Arguments: {G : Type u_1} [AddGroup G] (s : Set G) (h : IsAddSubgroup s) (n : IsNormalAddSubgroup s)
Goal: (AddSubgroup.of h).Normal
-- AlgebraicGeometry.Scheme.emptyTo_val_base_apply
@[simps]
def Scheme.emptyTo (X : Scheme.{u}) : ∅ ⟶ X 
Arguments: (X : AlgebraicGeometry.Scheme) (x : ↑↑∅.toPresheafedSpace)
Goal: X.emptyTo.val.base x = PEmpty.elim x
-- AlgebraicGeometry.Scheme.emptyTo_val_c_app
@[simps]
def Scheme.emptyTo (X : Scheme.{u}) : ∅ ⟶ X 
Arguments: (X : AlgebraicGeometry.Scheme) (U : (TopologicalSpace.Opens ↑↑X.toPresheafedSpace)ᵒᵖ)
Goal: X.emptyTo.val.c.app U = CommRingCat.punitIsTerminal.from (X.presheaf.obj U)
-- AlgebraicGeometry.Scheme.empty_ext
@[ext]
theorem Scheme.empty_ext {X : Scheme.{u}} (f g : ∅ ⟶ X) : f = g 
Arguments: {X : AlgebraicGeometry.Scheme} (f g : ∅ ⟶ X)
Goal: f = g
-- AlgebraicGeometry.Scheme.eq_emptyTo
theorem Scheme.eq_emptyTo {X : Scheme.{u}} (f : ∅ ⟶ X) : f = Scheme.emptyTo X 
Arguments: {X : AlgebraicGeometry.Scheme} (f : ∅ ⟶ X)
Goal: f = X.emptyTo
-- AlgebraicGeometry.emptyIsInitial_to
@[simp]
theorem emptyIsInitial_to : emptyIsInitial.to = Scheme.emptyTo 
Goal: AlgebraicGeometry.emptyIsInitial.to = AlgebraicGeometry.Scheme.emptyTo
-- AlgebraicGeometry.isAffineOpen_bot
theorem isAffineOpen_bot (X : Scheme) : IsAffineOpen (⊥ : X.Opens) 
Arguments: (X : AlgebraicGeometry.Scheme)
Goal: AlgebraicGeometry.IsAffineOpen ⊥
-- AlgebraicGeometry.disjointGlueData'_t
@[simps]
noncomputable
def disjointGlueData' : GlueData' Scheme 
Arguments: {ι : Type u} (f : ι → AlgebraicGeometry.Scheme)
Goal: ∀ (x x_1 : ι) (x_2 : x ≠ x_1), (AlgebraicGeometry.disjointGlueData' f).t x x_1 x_2 = 𝟙 ((fun x x_3 x => ∅) x x_1 x_2)
-- AlgebraicGeometry.disjointGlueData'_J
@[simps]
noncomputable
def disjointGlueData' : GlueData' Scheme 
Arguments: {ι : Type u} (f : ι → AlgebraicGeometry.Scheme)
Goal: (AlgebraicGeometry.disjointGlueData' f).J = ι
-- AlgebraicGeometry.disjointGlueData'_U
@[simps]
noncomputable
def disjointGlueData' : GlueData' Scheme 
Arguments: {ι : Type u} (f : ι → AlgebraicGeometry.Scheme)
Goal: ∀ (a : ι), (AlgebraicGeometry.disjointGlueData' f).U a = f a
-- AlgebraicGeometry.disjointGlueData'_f
@[simps]
noncomputable
def disjointGlueData' : GlueData' Scheme 
Arguments: {ι : Type u} (f : ι → AlgebraicGeometry.Scheme)
Goal: ∀ (x x_1 : ι) (x_2 : x ≠ x_1), (AlgebraicGeometry.disjointGlueData' f).f x x_1 x_2 = (f x).emptyTo
-- AlgebraicGeometry.disjointGlueData'_t'
@[simps]
noncomputable
def disjointGlueData' : GlueData' Scheme 
Arguments: {ι : Type u} (f : ι → AlgebraicGeometry.Scheme)
Goal: ∀ (x x_1 x_2 : ι) (x_3 : x ≠ x_1) (x_4 : x ≠ x_2) (x_5 : x_1 ≠ x_2),
  (AlgebraicGeometry.disjointGlueData' f).t' x x_1 x_2 x_3 x_4 x_5 =
    CategoryTheory.Limits.pullback.fst ((fun x x_6 x_7 => (f x).emptyTo) x x_1 x_3)
        ((fun x x_6 x_7 => (f x).emptyTo) x x_2 x_4) ≫
      (CategoryTheory.Limits.pullback ((fun x x_6 x_7 => (f x).emptyTo) x_1 x_2 x_5)
          ((fun x x_6 x_7 => (f x).emptyTo) x_1 x ⋯)).emptyTo
-- AlgebraicGeometry.disjointGlueData'_V
@[simps]
noncomputable
def disjointGlueData' : GlueData' Scheme 
Arguments: {ι : Type u} (f : ι → AlgebraicGeometry.Scheme)
Goal: ∀ (x x_1 : ι) (x_2 : x ≠ x_1), (AlgebraicGeometry.disjointGlueData' f).V x x_1 x_2 = ∅
-- AlgebraicGeometry.disjointGlueData_f
@[simps! J V U f t]
noncomputable
def disjointGlueData : Scheme.GlueData 
Arguments: {ι : Type u} (f : ι → AlgebraicGeometry.Scheme) (i j : (AlgebraicGeometry.disjointGlueData' f).J)
Goal: (AlgebraicGeometry.disjointGlueData f).f i j = (AlgebraicGeometry.disjointGlueData' f).f' i j
-- AlgebraicGeometry.disjointGlueData_V
@[simps! J V U f t]
noncomputable
def disjointGlueData : Scheme.GlueData 
Arguments: {ι : Type u} (f : ι → AlgebraicGeometry.Scheme) (ij : (AlgebraicGeometry.disjointGlueData' f).J × (AlgebraicGeometry.disjointGlueData' f).J)
Goal: (AlgebraicGeometry.disjointGlueData f).V ij = if ij.1 = ij.2 then f ij.1 else ∅
-- AlgebraicGeometry.disjointGlueData_t
@[simps! J V U f t]
noncomputable
def disjointGlueData : Scheme.GlueData 
Arguments: {ι : Type u} (f : ι → AlgebraicGeometry.Scheme) (i j : (AlgebraicGeometry.disjointGlueData' f).J)
Goal: (AlgebraicGeometry.disjointGlueData f).t i j = if h : i = j then CategoryTheory.eqToHom ⋯ else CategoryTheory.eqToHom ⋯
-- AlgebraicGeometry.disjointGlueData_J
@[simps! J V U f t]
noncomputable
def disjointGlueData : Scheme.GlueData 
Arguments: {ι : Type u} (f : ι → AlgebraicGeometry.Scheme)
Goal: (AlgebraicGeometry.disjointGlueData f).J = ι
-- AlgebraicGeometry.disjointGlueData_U
@[simps! J V U f t]
noncomputable
def disjointGlueData : Scheme.GlueData 
Arguments: {ι : Type u} (f : ι → AlgebraicGeometry.Scheme)
Goal: ∀ (a : (AlgebraicGeometry.disjointGlueData' f).J), (AlgebraicGeometry.disjointGlueData f).U a = f a
-- AlgebraicGeometry.ι_sigmaIsoGlued_inv
@[reassoc (attr := simp)]
lemma ι_sigmaIsoGlued_inv (i) : (disjointGlueData f).ι i ≫ (sigmaIsoGlued f).inv = Sigma.ι f i 
Arguments: {ι : Type u} (f : ι → AlgebraicGeometry.Scheme) (i : (AlgebraicGeometry.disjointGlueData f).J)
Goal: (AlgebraicGeometry.disjointGlueData f).ι i ≫ (AlgebraicGeometry.sigmaIsoGlued f).inv = CategoryTheory.Limits.Sigma.ι f i
-- AlgebraicGeometry.ι_sigmaIsoGlued_hom
@[reassoc (attr := simp)]
lemma ι_sigmaIsoGlued_hom (i) :
    Sigma.ι f i ≫ (sigmaIsoGlued f).hom = (disjointGlueData f).ι i 
Arguments: {ι : Type u} (f : ι → AlgebraicGeometry.Scheme) (i : ι)
Goal: CategoryTheory.Limits.Sigma.ι f i ≫ (AlgebraicGeometry.sigmaIsoGlued f).hom = (AlgebraicGeometry.disjointGlueData f).ι i
-- AlgebraicGeometry.sigmaι_eq_iff
lemma sigmaι_eq_iff (i j : ι) (x y) :
    (Sigma.ι f i).1.base x = (Sigma.ι f j).1.base y ↔
      (Sigma.mk i x : Σ i, f i) = Sigma.mk j y 
Arguments: {ι : Type u} (f : ι → AlgebraicGeometry.Scheme) (i j : ι) (x : ↑↑(f i).toPresheafedSpace) (y : ↑↑(f j).toPresheafedSpace)
Goal: (CategoryTheory.Limits.Sigma.ι f i).val.base x = (CategoryTheory.Limits.Sigma.ι f j).val.base y ↔ ⟨i, x⟩ = ⟨j, y⟩
-- AlgebraicGeometry.disjoint_opensRange_sigmaι
lemma disjoint_opensRange_sigmaι (i j : ι) (h : i ≠ j) :
    Disjoint (Sigma.ι f i).opensRange (Sigma.ι f j).opensRange 
Arguments: {ι : Type u} (f : ι → AlgebraicGeometry.Scheme) (i j : ι) (h : i ≠ j)
Goal: Disjoint (AlgebraicGeometry.Scheme.Hom.opensRange (CategoryTheory.Limits.Sigma.ι f i))
  (AlgebraicGeometry.Scheme.Hom.opensRange (CategoryTheory.Limits.Sigma.ι f j))
-- AlgebraicGeometry.exists_sigmaι_eq
lemma exists_sigmaι_eq (x : (∐ f : _)) : ∃ i y, (Sigma.ι f i).1.base y = x 
Arguments: {ι : Type u} (f : ι → AlgebraicGeometry.Scheme) (x : ↑↑(∐ f).toPresheafedSpace)
Goal: ∃ i y, (CategoryTheory.Limits.Sigma.ι f i).val.base y = x
-- AlgebraicGeometry.iSup_opensRange_sigmaι
lemma iSup_opensRange_sigmaι : ⨆ i, (Sigma.ι f i).opensRange = ⊤ 
Arguments: {ι : Type u} (f : ι → AlgebraicGeometry.Scheme)
Goal: ⨆ i, AlgebraicGeometry.Scheme.Hom.opensRange (CategoryTheory.Limits.Sigma.ι f i) = ⊤
-- AlgebraicGeometry.sigmaOpenCover_map
@[simps obj map]
noncomputable
def sigmaOpenCover : (∐ f).OpenCover 
Arguments: {ι : Type u} (f : ι → AlgebraicGeometry.Scheme) (b : ι)
Goal: (AlgebraicGeometry.sigmaOpenCover f).map b = CategoryTheory.Limits.Sigma.ι f b
-- AlgebraicGeometry.sigmaOpenCover_obj
@[simps obj map]
noncomputable
def sigmaOpenCover : (∐ f).OpenCover 
Arguments: {ι : Type u} (f : ι → AlgebraicGeometry.Scheme)
Goal: ∀ (a : ι), (AlgebraicGeometry.sigmaOpenCover f).obj a = f a
-- AlgebraicGeometry.sigmaMk_mk
@[simp]
lemma sigmaMk_mk (i) (x : f i) :
    sigmaMk f (.mk i x) = (Sigma.ι f i).1.base x 
Arguments: {ι : Type u} (f : ι → AlgebraicGeometry.Scheme) (i : ι) (x : ↑↑(f i).toPresheafedSpace)
Goal: (AlgebraicGeometry.sigmaMk f) ⟨i, x⟩ = (CategoryTheory.Limits.Sigma.ι f i).val.base x
-- NormalizationMonoid.normUnit_coe_units
class NormalizationMonoid (α : Type*) [CancelCommMonoidWithZero α] where
    normUnit : α → αˣ
    normUnit_zero : normUnit 0 = 1
    normUnit_mul : ∀ {a b}, a ≠ 0 → b ≠ 0 → normUnit (a * b) = normUnit a * normUnit b
    normUnit_coe_units : ∀ u : αˣ, normUnit u = u⁻¹
Arguments: {α : Type u_2} [CancelCommMonoidWithZero α] [self : NormalizationMonoid α] (u : αˣ)
Goal: normUnit ↑u = u⁻¹
-- NormalizationMonoid.normUnit_zero
class NormalizationMonoid (α : Type*) [CancelCommMonoidWithZero α] where
    normUnit : α → αˣ
    normUnit_zero : normUnit 0 = 1
    normUnit_mul : ∀ {a b}, a ≠ 0 → b ≠ 0 → normUnit (a * b) = normUnit a * normUnit b
    normUnit_coe_units : ∀ u : αˣ, normUnit u = u⁻¹
Arguments: {α : Type u_2} [CancelCommMonoidWithZero α] [self : NormalizationMonoid α]
Goal: normUnit 0 = 1
-- NormalizationMonoid.normUnit_mul
class NormalizationMonoid (α : Type*) [CancelCommMonoidWithZero α] where
    normUnit : α → αˣ
    normUnit_zero : normUnit 0 = 1
    normUnit_mul : ∀ {a b}, a ≠ 0 → b ≠ 0 → normUnit (a * b) = normUnit a * normUnit b
    normUnit_coe_units : ∀ u : αˣ, normUnit u = u⁻¹
Arguments: {α : Type u_2} [CancelCommMonoidWithZero α] [self : NormalizationMonoid α] {a b : α}
Goal: a ≠ 0 → b ≠ 0 → normUnit (a * b) = normUnit a * normUnit b
-- normUnit_one
@[simp]
theorem normUnit_one : normUnit (1 : α) = 1 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α]
Goal: normUnit 1 = 1
-- associated_normalize
theorem associated_normalize (x : α) : Associated x (normalize x) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] (x : α)
Goal: Associated x (normalize x)
-- normalize_associated
theorem normalize_associated (x : α) : Associated (normalize x) x 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] (x : α)
Goal: Associated (normalize x) x
-- associated_normalize_iff
theorem associated_normalize_iff {x y : α} : Associated x (normalize y) ↔ Associated x y 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] {x y : α}
Goal: Associated x (normalize y) ↔ Associated x y
-- normalize_associated_iff
theorem normalize_associated_iff {x y : α} : Associated (normalize x) y ↔ Associated x y 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] {x y : α}
Goal: Associated (normalize x) y ↔ Associated x y
-- Associates.mk_normalize
theorem Associates.mk_normalize (x : α) : Associates.mk (normalize x) = Associates.mk x 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] (x : α)
Goal: Associates.mk (normalize x) = Associates.mk x
-- normalize_apply
@[simp]
theorem normalize_apply (x : α) : normalize x = x * normUnit x 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] (x : α)
Goal: normalize x = x * ↑(normUnit x)
-- normalize_zero
theorem normalize_zero : normalize (0 : α) = 0 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α]
Goal: normalize 0 = 0
-- normalize_one
theorem normalize_one : normalize (1 : α) = 1 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α]
Goal: normalize 1 = 1
-- normalize_coe_units
theorem normalize_coe_units (u : αˣ) : normalize (u : α) = 1 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] (u : αˣ)
Goal: normalize ↑u = 1
-- normalize_eq_zero
theorem normalize_eq_zero {x : α} : normalize x = 0 ↔ x = 0 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] {x : α}
Goal: normalize x = 0 ↔ x = 0
-- normalize_eq_one
theorem normalize_eq_one {x : α} : normalize x = 1 ↔ IsUnit x 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] {x : α}
Goal: normalize x = 1 ↔ IsUnit x
-- normUnit_mul_normUnit
@[simp]
theorem normUnit_mul_normUnit (a : α) : normUnit (a * normUnit a) = 1 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] (a : α)
Goal: normUnit (a * ↑(normUnit a)) = 1
-- normalize_idem
theorem normalize_idem (x : α) : normalize (normalize x) = normalize x 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] (x : α)
Goal: normalize (normalize x) = normalize x
-- normalize_eq_normalize
theorem normalize_eq_normalize {a b : α} (hab : a ∣ b) (hba : b ∣ a) :
    normalize a = normalize b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] {a b : α} (hab : a ∣ b) (hba : b ∣ a)
Goal: normalize a = normalize b
-- normalize_eq_normalize_iff
theorem normalize_eq_normalize_iff {x y : α} : normalize x = normalize y ↔ x ∣ y ∧ y ∣ x 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] {x y : α}
Goal: normalize x = normalize y ↔ x ∣ y ∧ y ∣ x
-- dvd_antisymm_of_normalize_eq
theorem dvd_antisymm_of_normalize_eq {a b : α} (ha : normalize a = a) (hb : normalize b = b)
    (hab : a ∣ b) (hba : b ∣ a) : a = b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] {a b : α} (ha : normalize a = a) (hb : normalize b = b) (hab : a ∣ b) (hba : b ∣ a)
Goal: a = b
-- Associated.eq_of_normalized
theorem Associated.eq_of_normalized
    {a b : α} (h : Associated a b) (ha : normalize a = a) (hb : normalize b = b) :
    a = b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] {a b : α} (h : Associated a b) (ha : normalize a = a) (hb : normalize b = b)
Goal: a = b
-- dvd_normalize_iff
theorem dvd_normalize_iff {a b : α} : a ∣ normalize b ↔ a ∣ b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] {a b : α}
Goal: a ∣ normalize b ↔ a ∣ b
-- normalize_dvd_iff
theorem normalize_dvd_iff {a b : α} : normalize a ∣ b ↔ a ∣ b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] {a b : α}
Goal: normalize a ∣ b ↔ a ∣ b
-- Associates.out_mk
@[simp]
theorem out_mk (a : α) : (Associates.mk a).out = normalize a 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] (a : α)
Goal: (Associates.mk a).out = normalize a
-- Associates.out_one
@[simp]
theorem out_one : (1 : Associates α).out = 1 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α]
Goal: Associates.out 1 = 1
-- Associates.out_mul
theorem out_mul (a b : Associates α) : (a * b).out = a.out * b.out 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] (a b : Associates α)
Goal: (a * b).out = a.out * b.out
-- Associates.dvd_out_iff
theorem dvd_out_iff (a : α) (b : Associates α) : a ∣ b.out ↔ Associates.mk a ≤ b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] (a : α) (b : Associates α)
Goal: a ∣ b.out ↔ Associates.mk a ≤ b
-- Associates.out_dvd_iff
theorem out_dvd_iff (a : α) (b : Associates α) : b.out ∣ a ↔ b ≤ Associates.mk a 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] (a : α) (b : Associates α)
Goal: b.out ∣ a ↔ b ≤ Associates.mk a
-- Associates.out_top
@[simp]
theorem out_top : (⊤ : Associates α).out = 0 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α]
Goal: ⊤.out = 0
-- Associates.normalize_out
@[simp 1100]
theorem normalize_out (a : Associates α) : normalize a.out = a.out 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] (a : Associates α)
Goal: normalize a.out = a.out
-- Associates.mk_out
@[simp]
theorem mk_out (a : Associates α) : Associates.mk a.out = a 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] (a : Associates α)
Goal: Associates.mk a.out = a
-- Associates.out_injective
theorem out_injective : Function.Injective (Associates.out : _ → α) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α]
Goal: Function.Injective Associates.out
-- GCDMonoid.lcm_zero_left
class GCDMonoid (α : Type*) [CancelCommMonoidWithZero α] where
    gcd : α → α → α
    lcm : α → α → α
    gcd_dvd_left : ∀ a b, gcd a b ∣ a
    gcd_dvd_right : ∀ a b, gcd a b ∣ b
    dvd_gcd : ∀ {a b c}, a ∣ c → a ∣ b → a ∣ gcd c b
    gcd_mul_lcm : ∀ a b, Associated (gcd a b * lcm a b) (a * b)
    lcm_zero_left : ∀ a, lcm 0 a = 0
    lcm_zero_right : ∀ a, lcm a 0 = 0
Arguments: {α : Type u_2} [CancelCommMonoidWithZero α] [self : GCDMonoid α] (a : α)
Goal: lcm 0 a = 0
-- GCDMonoid.dvd_gcd
class GCDMonoid (α : Type*) [CancelCommMonoidWithZero α] where
    gcd : α → α → α
    lcm : α → α → α
    gcd_dvd_left : ∀ a b, gcd a b ∣ a
    gcd_dvd_right : ∀ a b, gcd a b ∣ b
    dvd_gcd : ∀ {a b c}, a ∣ c → a ∣ b → a ∣ gcd c b
    gcd_mul_lcm : ∀ a b, Associated (gcd a b * lcm a b) (a * b)
    lcm_zero_left : ∀ a, lcm 0 a = 0
    lcm_zero_right : ∀ a, lcm a 0 = 0
Arguments: {α : Type u_2} [CancelCommMonoidWithZero α] [self : GCDMonoid α] {a b c : α}
Goal: a ∣ c → a ∣ b → a ∣ gcd c b
-- GCDMonoid.gcd_mul_lcm
class GCDMonoid (α : Type*) [CancelCommMonoidWithZero α] where
    gcd : α → α → α
    lcm : α → α → α
    gcd_dvd_left : ∀ a b, gcd a b ∣ a
    gcd_dvd_right : ∀ a b, gcd a b ∣ b
    dvd_gcd : ∀ {a b c}, a ∣ c → a ∣ b → a ∣ gcd c b
    gcd_mul_lcm : ∀ a b, Associated (gcd a b * lcm a b) (a * b)
    lcm_zero_left : ∀ a, lcm 0 a = 0
    lcm_zero_right : ∀ a, lcm a 0 = 0
Arguments: {α : Type u_2} [CancelCommMonoidWithZero α] [self : GCDMonoid α] (a b : α)
Goal: Associated (gcd a b * lcm a b) (a * b)
-- GCDMonoid.lcm_zero_right
class GCDMonoid (α : Type*) [CancelCommMonoidWithZero α] where
    gcd : α → α → α
    lcm : α → α → α
    gcd_dvd_left : ∀ a b, gcd a b ∣ a
    gcd_dvd_right : ∀ a b, gcd a b ∣ b
    dvd_gcd : ∀ {a b c}, a ∣ c → a ∣ b → a ∣ gcd c b
    gcd_mul_lcm : ∀ a b, Associated (gcd a b * lcm a b) (a * b)
    lcm_zero_left : ∀ a, lcm 0 a = 0
    lcm_zero_right : ∀ a, lcm a 0 = 0
Arguments: {α : Type u_2} [CancelCommMonoidWithZero α] [self : GCDMonoid α] (a : α)
Goal: lcm a 0 = 0
-- GCDMonoid.gcd_dvd_right
class GCDMonoid (α : Type*) [CancelCommMonoidWithZero α] where
    gcd : α → α → α
    lcm : α → α → α
    gcd_dvd_left : ∀ a b, gcd a b ∣ a
    gcd_dvd_right : ∀ a b, gcd a b ∣ b
    dvd_gcd : ∀ {a b c}, a ∣ c → a ∣ b → a ∣ gcd c b
    gcd_mul_lcm : ∀ a b, Associated (gcd a b * lcm a b) (a * b)
    lcm_zero_left : ∀ a, lcm 0 a = 0
    lcm_zero_right : ∀ a, lcm a 0 = 0
Arguments: {α : Type u_2} [CancelCommMonoidWithZero α] [self : GCDMonoid α] (a b : α)
Goal: gcd a b ∣ b
-- GCDMonoid.gcd_dvd_left
class GCDMonoid (α : Type*) [CancelCommMonoidWithZero α] where
    gcd : α → α → α
    lcm : α → α → α
    gcd_dvd_left : ∀ a b, gcd a b ∣ a
    gcd_dvd_right : ∀ a b, gcd a b ∣ b
    dvd_gcd : ∀ {a b c}, a ∣ c → a ∣ b → a ∣ gcd c b
    gcd_mul_lcm : ∀ a b, Associated (gcd a b * lcm a b) (a * b)
    lcm_zero_left : ∀ a, lcm 0 a = 0
    lcm_zero_right : ∀ a, lcm a 0 = 0
Arguments: {α : Type u_2} [CancelCommMonoidWithZero α] [self : GCDMonoid α] (a b : α)
Goal: gcd a b ∣ a
-- NormalizedGCDMonoid.normalize_gcd
class NormalizedGCDMonoid (α : Type*) [CancelCommMonoidWithZero α] extends NormalizationMonoid α,
  GCDMonoid α where
    normalize_gcd : ∀ a b, normalize (gcd a b) = gcd a b
    normalize_lcm : ∀ a b, normalize (lcm a b) = lcm a b
Arguments: {α : Type u_2} [CancelCommMonoidWithZero α] [self : NormalizedGCDMonoid α] (a b : α)
Goal: normalize (gcd a b) = gcd a b
-- NormalizedGCDMonoid.normalize_lcm
class NormalizedGCDMonoid (α : Type*) [CancelCommMonoidWithZero α] extends NormalizationMonoid α,
  GCDMonoid α where
    normalize_gcd : ∀ a b, normalize (gcd a b) = gcd a b
    normalize_lcm : ∀ a b, normalize (lcm a b) = lcm a b
Arguments: {α : Type u_2} [CancelCommMonoidWithZero α] [self : NormalizedGCDMonoid α] (a b : α)
Goal: normalize (lcm a b) = lcm a b
-- gcd_isUnit_iff_isRelPrime
theorem gcd_isUnit_iff_isRelPrime [GCDMonoid α] {a b : α} :
    IsUnit (gcd a b) ↔ IsRelPrime a b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] {a b : α}
Goal: IsUnit (gcd a b) ↔ IsRelPrime a b
-- normalize_gcd
@[simp 1100]
theorem normalize_gcd [NormalizedGCDMonoid α] : ∀ a b : α, normalize (gcd a b) = gcd a b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] (a b : α)
Goal: normalize (gcd a b) = gcd a b
-- gcd_mul_lcm
theorem gcd_mul_lcm [GCDMonoid α] : ∀ a b : α, Associated (gcd a b * lcm a b) (a * b) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (a b : α)
Goal: Associated (gcd a b * lcm a b) (a * b)
-- dvd_gcd_iff
theorem dvd_gcd_iff [GCDMonoid α] (a b c : α) : a ∣ gcd b c ↔ a ∣ b ∧ a ∣ c 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (a b c : α)
Goal: a ∣ gcd b c ↔ a ∣ b ∧ a ∣ c
-- gcd_comm
theorem gcd_comm [NormalizedGCDMonoid α] (a b : α) : gcd a b = gcd b a 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] (a b : α)
Goal: gcd a b = gcd b a
-- gcd_comm'
theorem gcd_comm' [GCDMonoid α] (a b : α) : Associated (gcd a b) (gcd b a) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (a b : α)
Goal: Associated (gcd a b) (gcd b a)