ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Associates.le_one_iff
theorem le_one_iff {p : Associates α} : p ≤ 1 ↔ p = 1 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] {p : Associates α}
Goal: p ≤ 1 ↔ p = 1
-- DvdNotUnit.isUnit_of_irreducible_right
theorem DvdNotUnit.isUnit_of_irreducible_right [CommMonoidWithZero α] {p q : α}
    (h : DvdNotUnit p q) (hq : Irreducible q) : IsUnit p 
Arguments: {α : Type u_1} [CommMonoidWithZero α] {p q : α} (h : DvdNotUnit p q) (hq : Irreducible q)
Goal: IsUnit p
-- not_irreducible_of_not_unit_dvdNotUnit
theorem not_irreducible_of_not_unit_dvdNotUnit [CommMonoidWithZero α] {p q : α} (hp : ¬IsUnit p)
    (h : DvdNotUnit p q) : ¬Irreducible q 
Arguments: {α : Type u_1} [CommMonoidWithZero α] {p q : α} (hp : ¬IsUnit p) (h : DvdNotUnit p q)
Goal: ¬Irreducible q
-- DvdNotUnit.not_unit
theorem DvdNotUnit.not_unit [CommMonoidWithZero α] {p q : α} (hp : DvdNotUnit p q) : ¬IsUnit q 
Arguments: {α : Type u_1} [CommMonoidWithZero α] {p q : α} (hp : DvdNotUnit p q)
Goal: ¬IsUnit q
-- dvdNotUnit_of_dvdNotUnit_associated
theorem dvdNotUnit_of_dvdNotUnit_associated [CommMonoidWithZero α] [Nontrivial α] {p q r : α}
    (h : DvdNotUnit p q) (h' : Associated q r) : DvdNotUnit p r 
Arguments: {α : Type u_1} [CommMonoidWithZero α] [Nontrivial α] {p q r : α} (h : DvdNotUnit p q) (h' : q ~ᵤ r)
Goal: DvdNotUnit p r
-- isUnit_of_associated_mul
theorem isUnit_of_associated_mul [CancelCommMonoidWithZero α] {p b : α} (h : Associated (p * b) p)
    (hp : p ≠ 0) : IsUnit b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] {p b : α} (h : p * b ~ᵤ p) (hp : p ≠ 0)
Goal: IsUnit b
-- DvdNotUnit.not_associated
theorem DvdNotUnit.not_associated [CancelCommMonoidWithZero α] {p q : α} (h : DvdNotUnit p q) :
    ¬Associated p q 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] {p q : α} (h : DvdNotUnit p q)
Goal: ¬p ~ᵤ q
-- DvdNotUnit.ne
theorem DvdNotUnit.ne [CancelCommMonoidWithZero α] {p q : α} (h : DvdNotUnit p q) : p ≠ q 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] {p q : α} (h : DvdNotUnit p q)
Goal: p ≠ q
-- pow_injective_of_not_unit
theorem pow_injective_of_not_unit [CancelCommMonoidWithZero α] {q : α} (hq : ¬IsUnit q)
    (hq' : q ≠ 0) : Function.Injective fun n : ℕ => q ^ n 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] {q : α} (hq : ¬IsUnit q) (hq' : q ≠ 0)
Goal: Function.Injective fun n => q ^ n
-- dvd_prime_pow
theorem dvd_prime_pow [CancelCommMonoidWithZero α] {p q : α} (hp : Prime p) (n : ℕ) :
    q ∣ p ^ n ↔ ∃ i ≤ n, Associated q (p ^ i) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] {p q : α} (hp : Prime p) (n : ℕ)
Goal: q ∣ p ^ n ↔ ∃ i, i ≤ n ∧ q ~ᵤ p ^ i
-- AlgebraicGeometry.isOpenImmersion_iff_stalk
theorem isOpenImmersion_iff_stalk {f : X ⟶ Y} : IsOpenImmersion f ↔
    OpenEmbedding f.1.base ∧ ∀ x, IsIso (f.stalkMap x) 
Arguments: {X Y : AlgebraicGeometry.Scheme} {f : X ⟶ Y}
Goal: AlgebraicGeometry.IsOpenImmersion f ↔
  OpenEmbedding ⇑f.val.base ∧
    ∀ (x : ↑↑X.toPresheafedSpace), CategoryTheory.IsIso (AlgebraicGeometry.Scheme.Hom.stalkMap f x)
-- AlgebraicGeometry.isOpenImmersion_eq_inf
theorem isOpenImmersion_eq_inf :
    @IsOpenImmersion = (topologically OpenEmbedding) ⊓
      stalkwise (fun f ↦ Function.Bijective f) 
Goal: @AlgebraicGeometry.IsOpenImmersion =
  (AlgebraicGeometry.topologically fun {α β} [TopologicalSpace α] [TopologicalSpace β] => OpenEmbedding) ⊓
    AlgebraicGeometry.stalkwise fun {R S} [CommRing R] [CommRing S] f => Function.Bijective ⇑f
-- AlgebraicGeometry.isOpenImmersion_stableUnderBaseChange
theorem isOpenImmersion_stableUnderBaseChange :
    MorphismProperty.StableUnderBaseChange @IsOpenImmersion 
Goal: CategoryTheory.MorphismProperty.StableUnderBaseChange @AlgebraicGeometry.IsOpenImmersion
-- RingHom.isSubring_preimage
theorem isSubring_preimage {R : Type u} {S : Type v} [Ring R] [Ring S] (f : R →+* S) {s : Set S}
    (hs : IsSubring s) : IsSubring (f ⁻¹' s) 
Arguments: {R : Type u} {S : Type v} [Ring R] [Ring S] (f : R →+* S) {s : Set S} (hs : IsSubring s)
Goal: IsSubring (⇑f ⁻¹' s)
-- RingHom.isSubring_image
theorem isSubring_image {R : Type u} {S : Type v} [Ring R] [Ring S] (f : R →+* S) {s : Set R}
    (hs : IsSubring s) : IsSubring (f '' s) 
Arguments: {R : Type u} {S : Type v} [Ring R] [Ring S] (f : R →+* S) {s : Set R} (hs : IsSubring s)
Goal: IsSubring (⇑f '' s)
-- RingHom.isSubring_set_range
theorem isSubring_set_range {R : Type u} {S : Type v} [Ring R] [Ring S] (f : R →+* S) :
    IsSubring (Set.range f) 
Arguments: {R : Type u} {S : Type v} [Ring R] [Ring S] (f : R →+* S)
Goal: IsSubring (Set.range ⇑f)
-- IsSubring.inter
theorem IsSubring.inter {S₁ S₂ : Set R} (hS₁ : IsSubring S₁) (hS₂ : IsSubring S₂) :
    IsSubring (S₁ ∩ S₂) 
Arguments: {R : Type u} [Ring R] {S₁ S₂ : Set R} (hS₁ : IsSubring S₁) (hS₂ : IsSubring S₂)
Goal: IsSubring (S₁ ∩ S₂)
-- IsSubring.iInter
theorem IsSubring.iInter {ι : Sort*} {S : ι → Set R} (h : ∀ y : ι, IsSubring (S y)) :
    IsSubring (Set.iInter S) 
Arguments: {R : Type u} [Ring R] {ι : Sort u_1} {S : ι → Set R} (h : ∀ (y : ι), IsSubring (S y))
Goal: IsSubring (Set.iInter S)
-- isSubring_iUnion_of_directed
theorem isSubring_iUnion_of_directed {ι : Type*} [Nonempty ι] {s : ι → Set R}
    (h : ∀ i, IsSubring (s i)) (directed : ∀ i j, ∃ k, s i ⊆ s k ∧ s j ⊆ s k) :
    IsSubring (⋃ i, s i) 
Arguments: {R : Type u} [Ring R] {ι : Type u_1} [Nonempty ι] {s : ι → Set R} (h : ∀ (i : ι), IsSubring (s i)) (directed : ∀ (i j : ι), ∃ k, s i ⊆ s k ∧ s j ⊆ s k)
Goal: IsSubring (⋃ i, s i)
-- Ring.exists_list_of_mem_closure
theorem exists_list_of_mem_closure {a : R} (h : a ∈ closure s) :
    ∃ L : List (List R), (∀ l ∈ L, ∀ x ∈ l, x ∈ s ∨ x = (-1 : R)) ∧ (L.map List.prod).sum = a 
Arguments: {R : Type u} [Ring R] {s : Set R} {a : R} (h : a ∈ Ring.closure s)
Goal: ∃ L, (∀ l ∈ L, ∀ x ∈ l, x ∈ s ∨ x = -1) ∧ (List.map List.prod L).sum = a
-- Ring.InClosure.recOn
@[elab_as_elim]
protected theorem InClosure.recOn {C : R → Prop} {x : R} (hx : x ∈ closure s) (h1 : C 1)
    (hneg1 : C (-1)) (hs : ∀ z ∈ s, ∀ n, C n → C (z * n)) (ha : ∀ {x y}, C x → C y → C (x + y)) :
    C x 
Arguments: {R : Type u} [Ring R] {s : Set R} {C : R → Prop} {x : R} (hx : x ∈ Ring.closure s) (h1 : C 1) (hneg1 : C (-1)) (hs : ∀ z ∈ s, ∀ (n : R), C n → C (z * n)) (ha : ∀ {x y : R}, C x → C y → C (x + y))
Goal: C x
-- Ring.closure.isSubring
theorem closure.isSubring : IsSubring (closure s) 
Arguments: {R : Type u} [Ring R] {s : Set R}
Goal: IsSubring (Ring.closure s)
-- Ring.mem_closure
theorem mem_closure {a : R} : a ∈ s → a ∈ closure s 
Arguments: {R : Type u} [Ring R] {s : Set R} {a : R}
Goal: a ∈ s → a ∈ Ring.closure s
-- Ring.subset_closure
theorem subset_closure : s ⊆ closure s 
Arguments: {R : Type u} [Ring R] {s : Set R}
Goal: s ⊆ Ring.closure s
-- Ring.closure_subset
theorem closure_subset {t : Set R} (ht : IsSubring t) : s ⊆ t → closure s ⊆ t 
Arguments: {R : Type u} [Ring R] {s t : Set R} (ht : IsSubring t)
Goal: s ⊆ t → Ring.closure s ⊆ t
-- Ring.closure_subset_iff
theorem closure_subset_iff {s t : Set R} (ht : IsSubring t) : closure s ⊆ t ↔ s ⊆ t 
Arguments: {R : Type u} [Ring R] {s t : Set R} (ht : IsSubring t)
Goal: Ring.closure s ⊆ t ↔ s ⊆ t
-- Ring.closure_mono
theorem closure_mono {s t : Set R} (H : s ⊆ t) : closure s ⊆ closure t 
Arguments: {R : Type u} [Ring R] {s t : Set R} (H : s ⊆ t)
Goal: Ring.closure s ⊆ Ring.closure t
-- Ring.image_closure
theorem image_closure {S : Type*} [Ring S] (f : R →+* S) (s : Set R) :
    f '' closure s = closure (f '' s) 
Arguments: {R : Type u} [Ring R] {S : Type u_1} [Ring S] (f : R →+* S) (s : Set R)
Goal: ⇑f '' Ring.closure s = Ring.closure (⇑f '' s)
-- AlgebraicGeometry.UniversallyClosed.out
@[mk_iff]
class UniversallyClosed (f : X ⟶ Y) : Prop where
  out : universally (topologically @IsClosedMap) f
Arguments: {X Y : AlgebraicGeometry.Scheme} {f : X ⟶ Y} [self : AlgebraicGeometry.UniversallyClosed f]
Goal: (AlgebraicGeometry.topologically @IsClosedMap).universally f
-- AlgebraicGeometry.universallyClosed_iff
@[mk_iff]
class UniversallyClosed (f : X ⟶ Y) : Prop where
  out : universally (topologically @IsClosedMap) f
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y)
Goal: AlgebraicGeometry.UniversallyClosed f ↔ (AlgebraicGeometry.topologically @IsClosedMap).universally f
-- AlgebraicGeometry.universallyClosed_eq
theorem universallyClosed_eq : @UniversallyClosed = universally (topologically @IsClosedMap) 
Goal: @AlgebraicGeometry.UniversallyClosed = (AlgebraicGeometry.topologically @IsClosedMap).universally
-- AlgebraicGeometry.universallyClosed_respectsIso
theorem universallyClosed_respectsIso : RespectsIso @UniversallyClosed 
Goal: CategoryTheory.MorphismProperty.RespectsIso @AlgebraicGeometry.UniversallyClosed
-- AlgebraicGeometry.universallyClosed_stableUnderBaseChange
theorem universallyClosed_stableUnderBaseChange : StableUnderBaseChange @UniversallyClosed 
Goal: CategoryTheory.MorphismProperty.StableUnderBaseChange @AlgebraicGeometry.UniversallyClosed
-- AlgebraicGeometry.IsAffineOpen.fromSpecStalk_eq
theorem IsAffineOpen.fromSpecStalk_eq {X : Scheme} (x : X) {U V : X.Opens}
    (hU : IsAffineOpen U) (hV : IsAffineOpen V) (hxU : x ∈ U) (hxV : x ∈ V) :
    hU.fromSpecStalk hxU = hV.fromSpecStalk hxV 
Arguments: {X : AlgebraicGeometry.Scheme} (x : ↑↑X.toPresheafedSpace) {U V : X.Opens} (hU : AlgebraicGeometry.IsAffineOpen U) (hV : AlgebraicGeometry.IsAffineOpen V) (hxU : x ∈ U) (hxV : x ∈ V)
Goal: hU.fromSpecStalk hxU = hV.fromSpecStalk hxV
-- AlgebraicGeometry.IsAffineOpen.fromSpecStalk_eq_fromSpecStalk
@[simp]
theorem IsAffineOpen.fromSpecStalk_eq_fromSpecStalk
    {X : Scheme} {U : X.Opens} (hU : IsAffineOpen U) {x : X} (hxU : x ∈ U) :
    hU.fromSpecStalk hxU = X.fromSpecStalk x 
Arguments: {X : AlgebraicGeometry.Scheme} {U : X.Opens} (hU : AlgebraicGeometry.IsAffineOpen U) {x : ↑↑X.toPresheafedSpace} (hxU : x ∈ U)
Goal: hU.fromSpecStalk hxU = X.fromSpecStalk x
-- AlgebraicGeometry.locallyOfFiniteType_iff
@[mk_iff]
class LocallyOfFiniteType (f : X ⟶ Y) : Prop where
  finiteType_of_affine_subset :
    ∀ (U : Y.affineOpens) (V : X.affineOpens) (e : V.1 ≤ f ⁻¹ᵁ U.1), (f.appLE U V e).FiniteType
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y)
Goal: AlgebraicGeometry.LocallyOfFiniteType f ↔
  ∀ (U : ↑Y.affineOpens) (V : ↑X.affineOpens) (e : ↑V ≤ (TopologicalSpace.Opens.map f.val.base).obj ↑U),
    RingHom.FiniteType (AlgebraicGeometry.Scheme.Hom.appLE f (↑U) (↑V) e)
-- AlgebraicGeometry.LocallyOfFiniteType.finiteType_of_affine_subset
@[mk_iff]
class LocallyOfFiniteType (f : X ⟶ Y) : Prop where
  finiteType_of_affine_subset :
    ∀ (U : Y.affineOpens) (V : X.affineOpens) (e : V.1 ≤ f ⁻¹ᵁ U.1), (f.appLE U V e).FiniteType
Arguments: {X Y : AlgebraicGeometry.Scheme} {f : X ⟶ Y} [self : AlgebraicGeometry.LocallyOfFiniteType f] (U : ↑Y.affineOpens) (V : ↑X.affineOpens) (e : ↑V ≤ (TopologicalSpace.Opens.map f.val.base).obj ↑U)
Goal: RingHom.FiniteType (AlgebraicGeometry.Scheme.Hom.appLE f (↑U) (↑V) e)
-- AlgebraicGeometry.locallyOfFiniteType_of_comp
theorem locallyOfFiniteType_of_comp {X Y Z : Scheme} (f : X ⟶ Y) (g : Y ⟶ Z)
    [LocallyOfFiniteType (f ≫ g)] : LocallyOfFiniteType f 
Arguments: {X Y Z : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (g : Y ⟶ Z) [AlgebraicGeometry.LocallyOfFiniteType (f ≫ g)]
Goal: AlgebraicGeometry.LocallyOfFiniteType f
-- AlgebraicGeometry.locallyOfFiniteType_stableUnderBaseChange
lemma locallyOfFiniteType_stableUnderBaseChange :
    MorphismProperty.StableUnderBaseChange @LocallyOfFiniteType 
Goal: CategoryTheory.MorphismProperty.StableUnderBaseChange @AlgebraicGeometry.LocallyOfFiniteType
-- AlgebraicGeometry.isomorphisms_eq_isOpenImmersion_inf_surjective
lemma isomorphisms_eq_isOpenImmersion_inf_surjective :
    isomorphisms Scheme = (@IsOpenImmersion ⊓ @Surjective : MorphismProperty Scheme) 
Goal: CategoryTheory.MorphismProperty.isomorphisms AlgebraicGeometry.Scheme =
  @AlgebraicGeometry.IsOpenImmersion ⊓ @AlgebraicGeometry.Surjective
-- AlgebraicGeometry.isomorphisms_eq_stalkwise
lemma isomorphisms_eq_stalkwise :
    isomorphisms Scheme = (isomorphisms TopCat).inverseImage Scheme.forgetToTop ⊓
      stalkwise (fun f ↦ Function.Bijective f) 
Goal: CategoryTheory.MorphismProperty.isomorphisms AlgebraicGeometry.Scheme =
  (CategoryTheory.MorphismProperty.isomorphisms TopCat).inverseImage AlgebraicGeometry.Scheme.forgetToTop ⊓
    AlgebraicGeometry.stalkwise fun {R S} [CommRing R] [CommRing S] f => Function.Bijective ⇑f
-- AlgebraicGeometry.IsClosedImmersion.surj_on_stalks
@[mk_iff]
class IsClosedImmersion {X Y : Scheme} (f : X ⟶ Y) : Prop where
  base_closed : ClosedEmbedding f.1.base
  surj_on_stalks : ∀ x, Function.Surjective (f.stalkMap x)
Arguments: {X Y : AlgebraicGeometry.Scheme} {f : X ⟶ Y} [self : AlgebraicGeometry.IsClosedImmersion f] (x : ↑↑X.toPresheafedSpace)
Goal: Function.Surjective ⇑(AlgebraicGeometry.Scheme.Hom.stalkMap f x)
-- AlgebraicGeometry.IsClosedImmersion.base_closed
@[mk_iff]
class IsClosedImmersion {X Y : Scheme} (f : X ⟶ Y) : Prop where
  base_closed : ClosedEmbedding f.1.base
  surj_on_stalks : ∀ x, Function.Surjective (f.stalkMap x)
Arguments: {X Y : AlgebraicGeometry.Scheme} {f : X ⟶ Y} [self : AlgebraicGeometry.IsClosedImmersion f]
Goal: ClosedEmbedding ⇑f.val.base
-- AlgebraicGeometry.isClosedImmersion_iff
@[mk_iff]
class IsClosedImmersion {X Y : Scheme} (f : X ⟶ Y) : Prop where
  base_closed : ClosedEmbedding f.1.base
  surj_on_stalks : ∀ x, Function.Surjective (f.stalkMap x)
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y)
Goal: AlgebraicGeometry.IsClosedImmersion f ↔
  ClosedEmbedding ⇑f.val.base ∧
    ∀ (x : ↑↑X.toPresheafedSpace), Function.Surjective ⇑(AlgebraicGeometry.Scheme.Hom.stalkMap f x)
-- AlgebraicGeometry.IsClosedImmersion.closedEmbedding
lemma closedEmbedding {X Y : Scheme} (f : X ⟶ Y)
    [IsClosedImmersion f] : ClosedEmbedding f.1.base 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y) [AlgebraicGeometry.IsClosedImmersion f]
Goal: ClosedEmbedding ⇑f.val.base
-- AlgebraicGeometry.IsClosedImmersion.eq_inf
lemma eq_inf : @IsClosedImmersion = (topologically ClosedEmbedding) ⊓
    stalkwise (fun f ↦ Function.Surjective f) 
Goal: @AlgebraicGeometry.IsClosedImmersion =
  (AlgebraicGeometry.topologically fun {α β} [TopologicalSpace α] [TopologicalSpace β] => ClosedEmbedding) ⊓
    AlgebraicGeometry.stalkwise fun {R S} [CommRing R] [CommRing S] f => Function.Surjective ⇑f
-- AlgebraicGeometry.IsClosedImmersion.iff_isPreimmersion
lemma iff_isPreimmersion {X Y : Scheme} {f : X ⟶ Y} :
    IsClosedImmersion f ↔ IsPreimmersion f ∧ IsClosed (Set.range f.1.base) 
Arguments: {X Y : AlgebraicGeometry.Scheme} {f : X ⟶ Y}
Goal: AlgebraicGeometry.IsClosedImmersion f ↔ AlgebraicGeometry.IsPreimmersion f ∧ IsClosed (Set.range ⇑f.val.base)
-- AlgebraicGeometry.IsClosedImmersion.of_isPreimmersion
lemma of_isPreimmersion {X Y : Scheme} (f : X ⟶ Y) [IsPreimmersion f]
    (hf : IsClosed (Set.range f.1.base)) : IsClosedImmersion f 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y) [AlgebraicGeometry.IsPreimmersion f] (hf : IsClosed (Set.range ⇑f.val.base))
Goal: AlgebraicGeometry.IsClosedImmersion f
-- AlgebraicGeometry.IsClosedImmersion.spec_of_surjective
theorem spec_of_surjective {R S : CommRingCat} (f : R ⟶ S) (h : Function.Surjective f) :
    IsClosedImmersion (Spec.map f) 
Arguments: {R S : CommRingCat} (f : R ⟶ S) (h : Function.Surjective ⇑f)
Goal: AlgebraicGeometry.IsClosedImmersion (AlgebraicGeometry.Spec.map f)
-- AlgebraicGeometry.IsClosedImmersion.of_surjective_of_isAffine
lemma of_surjective_of_isAffine {X Y : Scheme} [IsAffine X] [IsAffine Y] (f : X ⟶ Y)
    (h : Function.Surjective (Scheme.Γ.map f.op)) : IsClosedImmersion f 
Arguments: {X Y : AlgebraicGeometry.Scheme} [AlgebraicGeometry.IsAffine X] [AlgebraicGeometry.IsAffine Y] (f : X ⟶ Y) (h : Function.Surjective ⇑(AlgebraicGeometry.Scheme.Γ.map f.op))
Goal: AlgebraicGeometry.IsClosedImmersion f
-- AlgebraicGeometry.IsClosedImmersion.of_comp
theorem of_comp {X Y Z : Scheme} (f : X ⟶ Y) (g : Y ⟶ Z) [IsClosedImmersion g]
    [IsClosedImmersion (f ≫ g)] : IsClosedImmersion f 
Arguments: {X Y Z : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (g : Y ⟶ Z) [AlgebraicGeometry.IsClosedImmersion g] [AlgebraicGeometry.IsClosedImmersion (f ≫ g)]
Goal: AlgebraicGeometry.IsClosedImmersion f
-- AlgebraicGeometry.Surjective.surj
@[mk_iff]
class Surjective : Prop where
  surj : Function.Surjective f.1.base
Arguments: {X Y : AlgebraicGeometry.Scheme} {f : X ⟶ Y} [self : AlgebraicGeometry.Surjective f]
Goal: Function.Surjective ⇑f.val.base
-- AlgebraicGeometry.surjective_iff
@[mk_iff]
class Surjective : Prop where
  surj : Function.Surjective f.1.base
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y)
Goal: AlgebraicGeometry.Surjective f ↔ Function.Surjective ⇑f.val.base
-- AlgebraicGeometry.surjective_eq_topologically
lemma surjective_eq_topologically :
    @Surjective = topologically Function.Surjective 
Goal: @AlgebraicGeometry.Surjective =
  AlgebraicGeometry.topologically fun {α β} [TopologicalSpace α] [TopologicalSpace β] => Function.Surjective
-- AlgebraicGeometry.Scheme.Hom.surjective
lemma Scheme.Hom.surjective (f : X.Hom Y) [Surjective f] : Function.Surjective f.1.base 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X.Hom Y) [AlgebraicGeometry.Surjective f]
Goal: Function.Surjective ⇑f.val.base
-- AlgebraicGeometry.Surjective.of_comp
lemma Surjective.of_comp [Surjective (f ≫ g)] : Surjective g 
Arguments: {X Y Z : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (g : Y ⟶ Z) [AlgebraicGeometry.Surjective (f ≫ g)]
Goal: AlgebraicGeometry.Surjective g
-- AlgebraicGeometry.Surjective.comp_iff
lemma Surjective.comp_iff [Surjective f] : Surjective (f ≫ g) ↔ Surjective g 
Arguments: {X Y Z : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (g : Y ⟶ Z) [AlgebraicGeometry.Surjective f]
Goal: AlgebraicGeometry.Surjective (f ≫ g) ↔ AlgebraicGeometry.Surjective g
-- AlgebraicGeometry.isSeparated_iff
@[mk_iff]
class IsSeparated : Prop where
    diagonal_isClosedImmersion : IsClosedImmersion (pullback.diagonal f) := by infer_instance
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y)
Goal: AlgebraicGeometry.IsSeparated f ↔
  autoParam (AlgebraicGeometry.IsClosedImmersion (CategoryTheory.Limits.pullback.diagonal f)) _auto✝
-- AlgebraicGeometry.IsSeparated.diagonal_isClosedImmersion
@[mk_iff]
class IsSeparated : Prop where
    diagonal_isClosedImmersion : IsClosedImmersion (pullback.diagonal f) := by infer_instance
Arguments: {X Y : AlgebraicGeometry.Scheme} {f : X ⟶ Y} [self : AlgebraicGeometry.IsSeparated f]
Goal: AlgebraicGeometry.IsClosedImmersion (CategoryTheory.Limits.pullback.diagonal f)
-- AlgebraicGeometry.IsSeparated.isSeparated_eq_diagonal_isClosedImmersion
theorem isSeparated_eq_diagonal_isClosedImmersion :
    @IsSeparated = MorphismProperty.diagonal @IsClosedImmersion 
Goal: @AlgebraicGeometry.IsSeparated = CategoryTheory.MorphismProperty.diagonal @AlgebraicGeometry.IsClosedImmersion
-- IsAddSubgroup.neg_mem
structure IsAddSubgroup (s : Set A) extends IsAddSubmonoid s : Prop where
    neg_mem {a} : a ∈ s → -a ∈ s
Arguments: {A : Type u_3} [AddGroup A] {s : Set A} (self : IsAddSubgroup s) {a : A}
Goal: a ∈ s → -a ∈ s
-- IsSubgroup.inv_mem
@[to_additive]
structure IsSubgroup (s : Set G) extends IsSubmonoid s : Prop where
    inv_mem {a} : a ∈ s → a⁻¹ ∈ s
Arguments: {G : Type u_1} [Group G] {s : Set G} (self : IsSubgroup s) {a : G}
Goal: a ∈ s → a⁻¹ ∈ s
-- IsAddSubgroup.sub_mem
@[to_additive]
theorem IsSubgroup.div_mem {s : Set G} (hs : IsSubgroup s) {x y : G} (hx : x ∈ s) (hy : y ∈ s) :
    x / y ∈ s 
Arguments: {G : Type u_1} [AddGroup G] {s : Set G} (hs : IsAddSubgroup s) {x y : G} (hx : x ∈ s) (hy : y ∈ s)
Goal: x - y ∈ s
-- IsSubgroup.div_mem
@[to_additive]
theorem IsSubgroup.div_mem {s : Set G} (hs : IsSubgroup s) {x y : G} (hx : x ∈ s) (hy : y ∈ s) :
    x / y ∈ s 
Arguments: {G : Type u_1} [Group G] {s : Set G} (hs : IsSubgroup s) {x y : G} (hx : x ∈ s) (hy : y ∈ s)
Goal: x / y ∈ s
-- Additive.isAddSubgroup
theorem Additive.isAddSubgroup {s : Set G} (hs : IsSubgroup s) : @IsAddSubgroup (Additive G) _ s 
Arguments: {G : Type u_1} [Group G] {s : Set G} (hs : IsSubgroup s)
Goal: IsAddSubgroup s
-- Additive.isAddSubgroup_iff
theorem Additive.isAddSubgroup_iff {s : Set G} : @IsAddSubgroup (Additive G) _ s ↔ IsSubgroup s 
Arguments: {G : Type u_1} [Group G] {s : Set G}
Goal: IsAddSubgroup s ↔ IsSubgroup s
-- Multiplicative.isSubgroup
theorem Multiplicative.isSubgroup {s : Set A} (hs : IsAddSubgroup s) :
    @IsSubgroup (Multiplicative A) _ s 
Arguments: {A : Type u_3} [AddGroup A] {s : Set A} (hs : IsAddSubgroup s)
Goal: IsSubgroup s
-- Multiplicative.isSubgroup_iff
theorem Multiplicative.isSubgroup_iff {s : Set A} :
    @IsSubgroup (Multiplicative A) _ s ↔ IsAddSubgroup s 
Arguments: {A : Type u_3} [AddGroup A] {s : Set A}
Goal: IsSubgroup s ↔ IsAddSubgroup s
-- IsSubgroup.of_div
@[to_additive of_add_neg]
theorem IsSubgroup.of_div (s : Set G) (one_mem : (1 : G) ∈ s)
    (div_mem : ∀ {a b : G}, a ∈ s → b ∈ s → a * b⁻¹ ∈ s) : IsSubgroup s 
Arguments: {G : Type u_1} [Group G] (s : Set G) (one_mem : 1 ∈ s) (div_mem : ∀ {a b : G}, a ∈ s → b ∈ s → a * b⁻¹ ∈ s)
Goal: IsSubgroup s
-- IsAddSubgroup.of_add_neg
@[to_additive of_add_neg]
theorem IsSubgroup.of_div (s : Set G) (one_mem : (1 : G) ∈ s)
    (div_mem : ∀ {a b : G}, a ∈ s → b ∈ s → a * b⁻¹ ∈ s) : IsSubgroup s 
Arguments: {G : Type u_1} [AddGroup G] (s : Set G) (one_mem : 0 ∈ s) (div_mem : ∀ {a b : G}, a ∈ s → b ∈ s → a + -b ∈ s)
Goal: IsAddSubgroup s
-- IsAddSubgroup.of_sub
theorem IsAddSubgroup.of_sub (s : Set A) (zero_mem : (0 : A) ∈ s)
    (sub_mem : ∀ {a b : A}, a ∈ s → b ∈ s → a - b ∈ s) : IsAddSubgroup s 
Arguments: {A : Type u_3} [AddGroup A] (s : Set A) (zero_mem : 0 ∈ s) (sub_mem : ∀ {a b : A}, a ∈ s → b ∈ s → a - b ∈ s)
Goal: IsAddSubgroup s
-- IsAddSubgroup.inter
@[to_additive]
theorem IsSubgroup.inter {s₁ s₂ : Set G} (hs₁ : IsSubgroup s₁) (hs₂ : IsSubgroup s₂) :
    IsSubgroup (s₁ ∩ s₂) 
Arguments: {G : Type u_1} [AddGroup G] {s₁ s₂ : Set G} (hs₁ : IsAddSubgroup s₁) (hs₂ : IsAddSubgroup s₂)
Goal: IsAddSubgroup (s₁ ∩ s₂)
-- IsSubgroup.inter
@[to_additive]
theorem IsSubgroup.inter {s₁ s₂ : Set G} (hs₁ : IsSubgroup s₁) (hs₂ : IsSubgroup s₂) :
    IsSubgroup (s₁ ∩ s₂) 
Arguments: {G : Type u_1} [Group G] {s₁ s₂ : Set G} (hs₁ : IsSubgroup s₁) (hs₂ : IsSubgroup s₂)
Goal: IsSubgroup (s₁ ∩ s₂)
-- IsSubgroup.iInter
@[to_additive]
theorem IsSubgroup.iInter {ι : Sort*} {s : ι → Set G} (hs : ∀ y : ι, IsSubgroup (s y)) :
    IsSubgroup (Set.iInter s) 
Arguments: {G : Type u_1} [Group G] {ι : Sort u_4} {s : ι → Set G} (hs : ∀ (y : ι), IsSubgroup (s y))
Goal: IsSubgroup (Set.iInter s)
-- IsAddSubgroup.iInter
@[to_additive]
theorem IsSubgroup.iInter {ι : Sort*} {s : ι → Set G} (hs : ∀ y : ι, IsSubgroup (s y)) :
    IsSubgroup (Set.iInter s) 
Arguments: {G : Type u_1} [AddGroup G] {ι : Sort u_4} {s : ι → Set G} (hs : ∀ (y : ι), IsAddSubgroup (s y))
Goal: IsAddSubgroup (Set.iInter s)
-- isAddSubgroup_iUnion_of_directed
@[to_additive]
theorem isSubgroup_iUnion_of_directed {ι : Type*} [Nonempty ι] {s : ι → Set G}
    (hs : ∀ i, IsSubgroup (s i)) (directed : ∀ i j, ∃ k, s i ⊆ s k ∧ s j ⊆ s k) :
    IsSubgroup (⋃ i, s i) 
Arguments: {G : Type u_1} [AddGroup G] {ι : Type u_4} [Nonempty ι] {s : ι → Set G} (hs : ∀ (i : ι), IsAddSubgroup (s i)) (directed : ∀ (i j : ι), ∃ k, s i ⊆ s k ∧ s j ⊆ s k)
Goal: IsAddSubgroup (⋃ i, s i)
-- isSubgroup_iUnion_of_directed
@[to_additive]
theorem isSubgroup_iUnion_of_directed {ι : Type*} [Nonempty ι] {s : ι → Set G}
    (hs : ∀ i, IsSubgroup (s i)) (directed : ∀ i j, ∃ k, s i ⊆ s k ∧ s j ⊆ s k) :
    IsSubgroup (⋃ i, s i) 
Arguments: {G : Type u_1} [Group G] {ι : Type u_4} [Nonempty ι] {s : ι → Set G} (hs : ∀ (i : ι), IsSubgroup (s i)) (directed : ∀ (i j : ι), ∃ k, s i ⊆ s k ∧ s j ⊆ s k)
Goal: IsSubgroup (⋃ i, s i)
-- IsAddSubgroup.neg_mem_iff
@[to_additive]
theorem inv_mem_iff : a⁻¹ ∈ s ↔ a ∈ s 
Arguments: {G : Type u_1} {a : G} [AddGroup G] {s : Set G} (hs : IsAddSubgroup s)
Goal: -a ∈ s ↔ a ∈ s
-- IsSubgroup.inv_mem_iff
@[to_additive]
theorem inv_mem_iff : a⁻¹ ∈ s ↔ a ∈ s 
Arguments: {G : Type u_1} {a : G} [Group G] {s : Set G} (hs : IsSubgroup s)
Goal: a⁻¹ ∈ s ↔ a ∈ s
-- IsSubgroup.mul_mem_cancel_right
@[to_additive]
theorem mul_mem_cancel_right (h : a ∈ s) : b * a ∈ s ↔ b ∈ s 
Arguments: {G : Type u_1} {a b : G} [Group G] {s : Set G} (hs : IsSubgroup s) (h : a ∈ s)
Goal: b * a ∈ s ↔ b ∈ s