ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Set.mem_center_iff_addMonoidHom
lemma _root_.Set.mem_center_iff_addMonoidHom (a : R) :
    a ∈ Set.center R ↔
      AddMonoidHom.mulLeft a = .mulRight a ∧
      AddMonoidHom.compr₂ .mul (.mulLeft a) = .comp .mul (.mulLeft a) ∧
      AddMonoidHom.comp .mul (.mulRight a) = .compl₂ .mul (.mulLeft a) ∧
      AddMonoidHom.compr₂ .mul (.mulRight a) = .compl₂ .mul (.mulRight a) 
Arguments: (R : Type u) [NonUnitalNonAssocSemiring R] (a : R)
Goal: a ∈ Set.center R ↔
  AddMonoidHom.mulLeft a = AddMonoidHom.mulRight a ∧
    AddMonoidHom.mul.compr₂ (AddMonoidHom.mulLeft a) = AddMonoidHom.mul.comp (AddMonoidHom.mulLeft a) ∧
      AddMonoidHom.mul.comp (AddMonoidHom.mulRight a) = AddMonoidHom.mul.compl₂ (AddMonoidHom.mulLeft a) ∧
        AddMonoidHom.mul.compr₂ (AddMonoidHom.mulRight a) = AddMonoidHom.mul.compl₂ (AddMonoidHom.mulRight a)
-- NonUnitalSubsemiring.mem_center_iff
theorem mem_center_iff {R} [NonUnitalSemiring R] {z : R} : z ∈ center R ↔ ∀ g, g * z = z * g 
Arguments: {R : Type u_1} [NonUnitalSemiring R] {z : R}
Goal: z ∈ NonUnitalSubsemiring.center R ↔ ∀ (g : R), g * z = z * g
-- NonUnitalSubsemiring.center_eq_top
@[simp]
theorem center_eq_top (R) [NonUnitalCommSemiring R] : center R = ⊤ 
Arguments: (R : Type u_1) [NonUnitalCommSemiring R]
Goal: NonUnitalSubsemiring.center R = ⊤
-- NonUnitalSubsemiring.coe_centralizer
@[simp, norm_cast]
theorem coe_centralizer {R} [NonUnitalSemiring R] (s : Set R) :
    (centralizer s : Set R) = s.centralizer 
Arguments: {R : Type u_1} [NonUnitalSemiring R] (s : Set R)
Goal: ↑(NonUnitalSubsemiring.centralizer s) = s.centralizer
-- NonUnitalSubsemiring.centralizer_toSubsemigroup
theorem centralizer_toSubsemigroup {R} [NonUnitalSemiring R] (s : Set R) :
    (centralizer s).toSubsemigroup = Subsemigroup.centralizer s 
Arguments: {R : Type u_1} [NonUnitalSemiring R] (s : Set R)
Goal: (NonUnitalSubsemiring.centralizer s).toSubsemigroup = Subsemigroup.centralizer s
-- NonUnitalSubsemiring.mem_centralizer_iff
theorem mem_centralizer_iff {R} [NonUnitalSemiring R] {s : Set R} {z : R} :
    z ∈ centralizer s ↔ ∀ g ∈ s, g * z = z * g 
Arguments: {R : Type u_1} [NonUnitalSemiring R] {s : Set R} {z : R}
Goal: z ∈ NonUnitalSubsemiring.centralizer s ↔ ∀ g ∈ s, g * z = z * g
-- NonUnitalSubsemiring.center_le_centralizer
theorem center_le_centralizer {R} [NonUnitalSemiring R] (s) : center R ≤ centralizer s 
Arguments: {R : Type u_1} [NonUnitalSemiring R] (s : Set R)
Goal: NonUnitalSubsemiring.center R ≤ NonUnitalSubsemiring.centralizer s
-- NonUnitalSubsemiring.centralizer_le
theorem centralizer_le {R} [NonUnitalSemiring R] (s t : Set R) (h : s ⊆ t) :
    centralizer t ≤ centralizer s 
Arguments: {R : Type u_1} [NonUnitalSemiring R] (s t : Set R) (h : s ⊆ t)
Goal: NonUnitalSubsemiring.centralizer t ≤ NonUnitalSubsemiring.centralizer s
-- NonUnitalSubsemiring.centralizer_eq_top_iff_subset
@[simp]
theorem centralizer_eq_top_iff_subset {R} [NonUnitalSemiring R] {s : Set R} :
    centralizer s = ⊤ ↔ s ⊆ center R 
Arguments: {R : Type u_1} [NonUnitalSemiring R] {s : Set R}
Goal: NonUnitalSubsemiring.centralizer s = ⊤ ↔ s ⊆ ↑(NonUnitalSubsemiring.center R)
-- NonUnitalSubsemiring.centralizer_univ
@[simp]
theorem centralizer_univ {R} [NonUnitalSemiring R] : centralizer Set.univ = center R 
Arguments: {R : Type u_1} [NonUnitalSemiring R]
Goal: NonUnitalSubsemiring.centralizer Set.univ = NonUnitalSubsemiring.center R
-- NonUnitalSubsemiring.mem_closure
theorem mem_closure {x : R} {s : Set R} :
    x ∈ closure s ↔ ∀ S : NonUnitalSubsemiring R, s ⊆ S → x ∈ S 
Arguments: {R : Type u} [NonUnitalNonAssocSemiring R] {x : R} {s : Set R}
Goal: x ∈ NonUnitalSubsemiring.closure s ↔ ∀ (S : NonUnitalSubsemiring R), s ⊆ ↑S → x ∈ S
-- NonUnitalSubsemiring.subset_closure
@[simp, aesop safe 20 apply (rule_sets := [SetLike])]
theorem subset_closure {s : Set R} : s ⊆ closure s 
Arguments: {R : Type u} [NonUnitalNonAssocSemiring R] {s : Set R}
Goal: s ⊆ ↑(NonUnitalSubsemiring.closure s)
-- NonUnitalSubsemiring.not_mem_of_not_mem_closure
theorem not_mem_of_not_mem_closure {s : Set R} {P : R} (hP : P ∉ closure s) : P ∉ s 
Arguments: {R : Type u} [NonUnitalNonAssocSemiring R] {s : Set R} {P : R} (hP : P ∉ NonUnitalSubsemiring.closure s)
Goal: P ∉ s
-- NonUnitalSubsemiring.closure_le
@[simp]
theorem closure_le {s : Set R} {t : NonUnitalSubsemiring R} : closure s ≤ t ↔ s ⊆ t 
Arguments: {R : Type u} [NonUnitalNonAssocSemiring R] {s : Set R} {t : NonUnitalSubsemiring R}
Goal: NonUnitalSubsemiring.closure s ≤ t ↔ s ⊆ ↑t
-- NonUnitalSubsemiring.closure_mono
theorem closure_mono ⦃s t : Set R⦄ (h : s ⊆ t) : closure s ≤ closure t 
Arguments: {R : Type u} [NonUnitalNonAssocSemiring R] ⦃s t : Set R⦄ (h : s ⊆ t)
Goal: NonUnitalSubsemiring.closure s ≤ NonUnitalSubsemiring.closure t
-- NonUnitalSubsemiring.closure_eq_of_le
theorem closure_eq_of_le {s : Set R} {t : NonUnitalSubsemiring R} (h₁ : s ⊆ t)
    (h₂ : t ≤ closure s) : closure s = t 
Arguments: {R : Type u} [NonUnitalNonAssocSemiring R] {s : Set R} {t : NonUnitalSubsemiring R} (h₁ : s ⊆ ↑t) (h₂ : t ≤ NonUnitalSubsemiring.closure s)
Goal: NonUnitalSubsemiring.closure s = t
-- NonUnitalSubsemiring.mem_map_equiv
theorem mem_map_equiv {f : R ≃+* S} {K : NonUnitalSubsemiring R} {x : S} :
    x ∈ K.map (f : R →ₙ+* S) ↔ f.symm x ∈ K 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] {f : R ≃+* S} {K : NonUnitalSubsemiring R} {x : S}
Goal: x ∈ NonUnitalSubsemiring.map (↑f) K ↔ f.symm x ∈ K
-- NonUnitalSubsemiring.map_equiv_eq_comap_symm
theorem map_equiv_eq_comap_symm (f : R ≃+* S) (K : NonUnitalSubsemiring R) :
    K.map (f : R →ₙ+* S) = K.comap f.symm 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] (f : R ≃+* S) (K : NonUnitalSubsemiring R)
Goal: NonUnitalSubsemiring.map (↑f) K = NonUnitalSubsemiring.comap f.symm K
-- NonUnitalSubsemiring.comap_equiv_eq_map_symm
theorem comap_equiv_eq_map_symm (f : R ≃+* S) (K : NonUnitalSubsemiring S) :
    K.comap (f : R →ₙ+* S) = K.map f.symm 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] (f : R ≃+* S) (K : NonUnitalSubsemiring S)
Goal: NonUnitalSubsemiring.comap (↑f) K = NonUnitalSubsemiring.map f.symm K
-- Subsemigroup.nonUnitalSubsemiringClosure_coe
theorem nonUnitalSubsemiringClosure_coe :
    (M.nonUnitalSubsemiringClosure : Set R) = AddSubmonoid.closure (M : Set R) 
Arguments: {R : Type u} [NonUnitalNonAssocSemiring R] (M : Subsemigroup R)
Goal: ↑M.nonUnitalSubsemiringClosure = ↑(AddSubmonoid.closure ↑M)
-- Subsemigroup.nonUnitalSubsemiringClosure_toAddSubmonoid
theorem nonUnitalSubsemiringClosure_toAddSubmonoid :
    M.nonUnitalSubsemiringClosure.toAddSubmonoid = AddSubmonoid.closure (M : Set R) 
Arguments: {R : Type u} [NonUnitalNonAssocSemiring R] (M : Subsemigroup R)
Goal: M.nonUnitalSubsemiringClosure.toAddSubmonoid = AddSubmonoid.closure ↑M
-- Subsemigroup.nonUnitalSubsemiringClosure_eq_closure
theorem nonUnitalSubsemiringClosure_eq_closure :
    M.nonUnitalSubsemiringClosure = NonUnitalSubsemiring.closure (M : Set R) 
Arguments: {R : Type u} [NonUnitalNonAssocSemiring R] (M : Subsemigroup R)
Goal: M.nonUnitalSubsemiringClosure = NonUnitalSubsemiring.closure ↑M
-- NonUnitalSubsemiring.closure_subsemigroup_closure
@[simp]
theorem closure_subsemigroup_closure (s : Set R) : closure ↑(Subsemigroup.closure s) = closure s 
Arguments: {R : Type u} [NonUnitalNonAssocSemiring R] (s : Set R)
Goal: NonUnitalSubsemiring.closure ↑(Subsemigroup.closure s) = NonUnitalSubsemiring.closure s
-- NonUnitalSubsemiring.coe_closure_eq
theorem coe_closure_eq (s : Set R) :
    (closure s : Set R) = AddSubmonoid.closure (Subsemigroup.closure s : Set R) 
Arguments: {R : Type u} [NonUnitalNonAssocSemiring R] (s : Set R)
Goal: ↑(NonUnitalSubsemiring.closure s) = ↑(AddSubmonoid.closure ↑(Subsemigroup.closure s))
-- NonUnitalSubsemiring.mem_closure_iff
theorem mem_closure_iff {s : Set R} {x} :
    x ∈ closure s ↔ x ∈ AddSubmonoid.closure (Subsemigroup.closure s : Set R) 
Arguments: {R : Type u} [NonUnitalNonAssocSemiring R] {s : Set R} {x : R}
Goal: x ∈ NonUnitalSubsemiring.closure s ↔ x ∈ AddSubmonoid.closure ↑(Subsemigroup.closure s)
-- NonUnitalSubsemiring.closure_addSubmonoid_closure
@[simp]
theorem closure_addSubmonoid_closure {s : Set R} :
    closure ↑(AddSubmonoid.closure s) = closure s 
Arguments: {R : Type u} [NonUnitalNonAssocSemiring R] {s : Set R}
Goal: NonUnitalSubsemiring.closure ↑(AddSubmonoid.closure s) = NonUnitalSubsemiring.closure s
-- NonUnitalSubsemiring.closure_induction
@[elab_as_elim]
theorem closure_induction {s : Set R} {p : R → Prop} {x} (h : x ∈ closure s) (mem : ∀ x ∈ s, p x)
    (zero : p 0) (add : ∀ x y, p x → p y → p (x + y)) (mul : ∀ x y, p x → p y → p (x * y)) : p x 
Arguments: {R : Type u} [NonUnitalNonAssocSemiring R] {s : Set R} {p : R → Prop} {x : R} (h : x ∈ NonUnitalSubsemiring.closure s) (mem : ∀ x ∈ s, p x) (zero : p 0) (add : ∀ (x y : R), p x → p y → p (x + y)) (mul : ∀ (x y : R), p x → p y → p (x * y))
Goal: p x
-- NonUnitalSubsemiring.closure_induction₂
@[elab_as_elim]
theorem closure_induction₂ {s : Set R} {p : R → R → Prop} {x} {y : R} (hx : x ∈ closure s)
    (hy : y ∈ closure s) (Hs : ∀ x ∈ s, ∀ y ∈ s, p x y) (H0_left : ∀ x, p 0 x)
    (H0_right : ∀ x, p x 0) (Hadd_left : ∀ x₁ x₂ y, p x₁ y → p x₂ y → p (x₁ + x₂) y)
    (Hadd_right : ∀ x y₁ y₂, p x y₁ → p x y₂ → p x (y₁ + y₂))
    (Hmul_left : ∀ x₁ x₂ y, p x₁ y → p x₂ y → p (x₁ * x₂) y)
    (Hmul_right : ∀ x y₁ y₂, p x y₁ → p x y₂ → p x (y₁ * y₂)) : p x y 
Arguments: {R : Type u} [NonUnitalNonAssocSemiring R] {s : Set R} {p : R → R → Prop} {x y : R} (hx : x ∈ NonUnitalSubsemiring.closure s) (hy : y ∈ NonUnitalSubsemiring.closure s) (Hs : ∀ x ∈ s, ∀ y ∈ s, p x y) (H0_left : ∀ (x : R), p 0 x) (H0_right : ∀ (x : R), p x 0) (Hadd_left : ∀ (x₁ x₂ y : R), p x₁ y → p x₂ y → p (x₁ + x₂) y) (Hadd_right : ∀ (x y₁ y₂ : R), p x y₁ → p x y₂ → p x (y₁ + y₂)) (Hmul_left : ∀ (x₁ x₂ y : R), p x₁ y → p x₂ y → p (x₁ * x₂) y) (Hmul_right : ∀ (x y₁ y₂ : R), p x y₁ → p x y₂ → p x (y₁ * y₂))
Goal: p x y
-- NonUnitalSubsemiring.closure_eq
theorem closure_eq (s : NonUnitalSubsemiring R) : closure (s : Set R) = s 
Arguments: {R : Type u} [NonUnitalNonAssocSemiring R] (s : NonUnitalSubsemiring R)
Goal: NonUnitalSubsemiring.closure ↑s = s
-- NonUnitalSubsemiring.closure_empty
@[simp]
theorem closure_empty : closure (∅ : Set R) = ⊥ 
Arguments: {R : Type u} [NonUnitalNonAssocSemiring R]
Goal: NonUnitalSubsemiring.closure ∅ = ⊥
-- NonUnitalSubsemiring.closure_univ
@[simp]
theorem closure_univ : closure (Set.univ : Set R) = ⊤ 
Arguments: {R : Type u} [NonUnitalNonAssocSemiring R]
Goal: NonUnitalSubsemiring.closure Set.univ = ⊤
-- NonUnitalSubsemiring.closure_union
theorem closure_union (s t : Set R) : closure (s ∪ t) = closure s ⊔ closure t 
Arguments: {R : Type u} [NonUnitalNonAssocSemiring R] (s t : Set R)
Goal: NonUnitalSubsemiring.closure (s ∪ t) = NonUnitalSubsemiring.closure s ⊔ NonUnitalSubsemiring.closure t
-- NonUnitalSubsemiring.closure_iUnion
theorem closure_iUnion {ι} (s : ι → Set R) : closure (⋃ i, s i) = ⨆ i, closure (s i) 
Arguments: {R : Type u} [NonUnitalNonAssocSemiring R] {ι : Sort u_2} (s : ι → Set R)
Goal: NonUnitalSubsemiring.closure (⋃ i, s i) = ⨆ i, NonUnitalSubsemiring.closure (s i)
-- NonUnitalSubsemiring.closure_sUnion
theorem closure_sUnion (s : Set (Set R)) : closure (⋃₀ s) = ⨆ t ∈ s, closure t 
Arguments: {R : Type u} [NonUnitalNonAssocSemiring R] (s : Set (Set R))
Goal: NonUnitalSubsemiring.closure (⋃₀ s) = ⨆ t ∈ s, NonUnitalSubsemiring.closure t
-- NonUnitalSubsemiring.map_sup
theorem map_sup (s t : NonUnitalSubsemiring R) (f : F) :
    (map f (s ⊔ t) : NonUnitalSubsemiring S) = map f s ⊔ map f t 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] {F : Type u_1} [FunLike F R S] [NonUnitalRingHomClass F R S] (s t : NonUnitalSubsemiring R) (f : F)
Goal: NonUnitalSubsemiring.map f (s ⊔ t) = NonUnitalSubsemiring.map f s ⊔ NonUnitalSubsemiring.map f t
-- NonUnitalSubsemiring.map_iSup
theorem map_iSup {ι : Sort*} (f : F) (s : ι → NonUnitalSubsemiring R) :
    (map f (iSup s) : NonUnitalSubsemiring S) = ⨆ i, map f (s i) 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] {F : Type u_1} [FunLike F R S] [NonUnitalRingHomClass F R S] {ι : Sort u_2} (f : F) (s : ι → NonUnitalSubsemiring R)
Goal: NonUnitalSubsemiring.map f (iSup s) = ⨆ i, NonUnitalSubsemiring.map f (s i)
-- NonUnitalSubsemiring.comap_inf
theorem comap_inf (s t : NonUnitalSubsemiring S) (f : F) :
    (comap f (s ⊓ t) : NonUnitalSubsemiring R) = comap f s ⊓ comap f t 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] {F : Type u_1} [FunLike F R S] [NonUnitalRingHomClass F R S] (s t : NonUnitalSubsemiring S) (f : F)
Goal: NonUnitalSubsemiring.comap f (s ⊓ t) = NonUnitalSubsemiring.comap f s ⊓ NonUnitalSubsemiring.comap f t
-- NonUnitalSubsemiring.comap_iInf
theorem comap_iInf {ι : Sort*} (f : F) (s : ι → NonUnitalSubsemiring S) :
    (comap f (iInf s) : NonUnitalSubsemiring R) = ⨅ i, comap f (s i) 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] {F : Type u_1} [FunLike F R S] [NonUnitalRingHomClass F R S] {ι : Sort u_2} (f : F) (s : ι → NonUnitalSubsemiring S)
Goal: NonUnitalSubsemiring.comap f (iInf s) = ⨅ i, NonUnitalSubsemiring.comap f (s i)
-- NonUnitalSubsemiring.map_bot
@[simp]
theorem map_bot (f : F) : map f (⊥ : NonUnitalSubsemiring R) = (⊥ : NonUnitalSubsemiring S) 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] {F : Type u_1} [FunLike F R S] [NonUnitalRingHomClass F R S] (f : F)
Goal: NonUnitalSubsemiring.map f ⊥ = ⊥
-- NonUnitalSubsemiring.comap_top
@[simp]
theorem comap_top (f : F) : comap f (⊤ : NonUnitalSubsemiring S) = (⊤ : NonUnitalSubsemiring R) 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] {F : Type u_1} [FunLike F R S] [NonUnitalRingHomClass F R S] (f : F)
Goal: NonUnitalSubsemiring.comap f ⊤ = ⊤
-- NonUnitalSubsemiring.coe_prod
@[norm_cast]
theorem coe_prod (s : NonUnitalSubsemiring R) (t : NonUnitalSubsemiring S) :
    (s.prod t : Set (R × S)) = (s : Set R) ×ˢ (t : Set S) 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] (s : NonUnitalSubsemiring R) (t : NonUnitalSubsemiring S)
Goal: ↑(s.prod t) = ↑s ×ˢ ↑t
-- NonUnitalSubsemiring.mem_prod
theorem mem_prod {s : NonUnitalSubsemiring R} {t : NonUnitalSubsemiring S} {p : R × S} :
    p ∈ s.prod t ↔ p.1 ∈ s ∧ p.2 ∈ t 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] {s : NonUnitalSubsemiring R} {t : NonUnitalSubsemiring S} {p : R × S}
Goal: p ∈ s.prod t ↔ p.1 ∈ s ∧ p.2 ∈ t
-- NonUnitalSubsemiring.prod_mono
@[mono]
theorem prod_mono ⦃s₁ s₂ : NonUnitalSubsemiring R⦄ (hs : s₁ ≤ s₂) ⦃t₁ t₂ : NonUnitalSubsemiring S⦄
    (ht : t₁ ≤ t₂) : s₁.prod t₁ ≤ s₂.prod t₂ 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] ⦃s₁ s₂ : NonUnitalSubsemiring R⦄ (hs : s₁ ≤ s₂) ⦃t₁ t₂ : NonUnitalSubsemiring S⦄ (ht : t₁ ≤ t₂)
Goal: s₁.prod t₁ ≤ s₂.prod t₂
-- NonUnitalSubsemiring.prod_mono_right
theorem prod_mono_right (s : NonUnitalSubsemiring R) :
    Monotone fun t : NonUnitalSubsemiring S => s.prod t 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] (s : NonUnitalSubsemiring R)
Goal: Monotone fun t => s.prod t
-- NonUnitalSubsemiring.prod_mono_left
theorem prod_mono_left (t : NonUnitalSubsemiring S) :
    Monotone fun s : NonUnitalSubsemiring R => s.prod t 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] (t : NonUnitalSubsemiring S)
Goal: Monotone fun s => s.prod t
-- NonUnitalSubsemiring.prod_top
theorem prod_top (s : NonUnitalSubsemiring R) :
    s.prod (⊤ : NonUnitalSubsemiring S) = s.comap (NonUnitalRingHom.fst R S) 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] (s : NonUnitalSubsemiring R)
Goal: s.prod ⊤ = NonUnitalSubsemiring.comap (NonUnitalRingHom.fst R S) s
-- NonUnitalSubsemiring.top_prod
theorem top_prod (s : NonUnitalSubsemiring S) :
    (⊤ : NonUnitalSubsemiring R).prod s = s.comap (NonUnitalRingHom.snd R S) 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] (s : NonUnitalSubsemiring S)
Goal: ⊤.prod s = NonUnitalSubsemiring.comap (NonUnitalRingHom.snd R S) s
-- NonUnitalSubsemiring.top_prod_top
@[simp]
theorem top_prod_top : (⊤ : NonUnitalSubsemiring R).prod (⊤ : NonUnitalSubsemiring S) = ⊤ 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S]
Goal: ⊤.prod ⊤ = ⊤
-- NonUnitalSubsemiring.mem_iSup_of_directed
theorem mem_iSup_of_directed {ι} [hι : Nonempty ι] {S : ι → NonUnitalSubsemiring R}
    (hS : Directed (· ≤ ·) S) {x : R} : (x ∈ ⨆ i, S i) ↔ ∃ i, x ∈ S i 
Arguments: {R : Type u} [NonUnitalNonAssocSemiring R] {ι : Sort u_2} [hι : Nonempty ι] {S : ι → NonUnitalSubsemiring R} (hS : Directed (fun x x_1 => x ≤ x_1) S) {x : R}
Goal: x ∈ ⨆ i, S i ↔ ∃ i, x ∈ S i
-- NonUnitalSubsemiring.coe_iSup_of_directed
theorem coe_iSup_of_directed {ι} [hι : Nonempty ι] {S : ι → NonUnitalSubsemiring R}
    (hS : Directed (· ≤ ·) S) : ((⨆ i, S i : NonUnitalSubsemiring R) : Set R) = ⋃ i, S i 
Arguments: {R : Type u} [NonUnitalNonAssocSemiring R] {ι : Sort u_2} [hι : Nonempty ι] {S : ι → NonUnitalSubsemiring R} (hS : Directed (fun x x_1 => x ≤ x_1) S)
Goal: ↑(⨆ i, S i) = ⋃ i, ↑(S i)
-- NonUnitalSubsemiring.mem_sSup_of_directedOn
theorem mem_sSup_of_directedOn {S : Set (NonUnitalSubsemiring R)} (Sne : S.Nonempty)
    (hS : DirectedOn (· ≤ ·) S) {x : R} : x ∈ sSup S ↔ ∃ s ∈ S, x ∈ s 
Arguments: {R : Type u} [NonUnitalNonAssocSemiring R] {S : Set (NonUnitalSubsemiring R)} (Sne : S.Nonempty) (hS : DirectedOn (fun x x_1 => x ≤ x_1) S) {x : R}
Goal: x ∈ sSup S ↔ ∃ s ∈ S, x ∈ s
-- NonUnitalSubsemiring.coe_sSup_of_directedOn
theorem coe_sSup_of_directedOn {S : Set (NonUnitalSubsemiring R)} (Sne : S.Nonempty)
    (hS : DirectedOn (· ≤ ·) S) : (↑(sSup S) : Set R) = ⋃ s ∈ S, ↑s 
Arguments: {R : Type u} [NonUnitalNonAssocSemiring R] {S : Set (NonUnitalSubsemiring R)} (Sne : S.Nonempty) (hS : DirectedOn (fun x x_1 => x ≤ x_1) S)
Goal: ↑(sSup S) = ⋃ s ∈ S, ↑s
-- NonUnitalRingHom.coe_srangeRestrict
@[simp]
theorem coe_srangeRestrict (f : F) (x : R) : (srangeRestrict f x : S) = f x 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] {F : Type u_1} [FunLike F R S] [NonUnitalRingHomClass F R S] (f : F) (x : R)
Goal: ↑((NonUnitalRingHom.srangeRestrict f) x) = f x
-- NonUnitalRingHom.srangeRestrict_surjective
theorem srangeRestrict_surjective (f : F) :
    Function.Surjective (srangeRestrict f : R → (srange f : NonUnitalSubsemiring S)) 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] {F : Type u_1} [FunLike F R S] [NonUnitalRingHomClass F R S] (f : F)
Goal: Function.Surjective ⇑(NonUnitalRingHom.srangeRestrict f)
-- NonUnitalRingHom.srange_top_iff_surjective
theorem srange_top_iff_surjective {f : F} :
    srange f = (⊤ : NonUnitalSubsemiring S) ↔ Function.Surjective (f : R → S) 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] {F : Type u_1} [FunLike F R S] [NonUnitalRingHomClass F R S] {f : F}
Goal: NonUnitalRingHom.srange f = ⊤ ↔ Function.Surjective ⇑f
-- NonUnitalRingHom.srange_top_of_surjective
@[simp]
theorem srange_top_of_surjective (f : F) (hf : Function.Surjective (f : R → S)) :
    srange f = (⊤ : NonUnitalSubsemiring S) 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] {F : Type u_1} [FunLike F R S] [NonUnitalRingHomClass F R S] (f : F) (hf : Function.Surjective ⇑f)
Goal: NonUnitalRingHom.srange f = ⊤
-- NonUnitalRingHom.eqOn_sclosure
theorem eqOn_sclosure {f g : F} {s : Set R} (h : Set.EqOn (f : R → S) (g : R → S) s) :
    Set.EqOn f g (closure s) 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] {F : Type u_1} [FunLike F R S] [NonUnitalRingHomClass F R S] {f g : F} {s : Set R} (h : Set.EqOn (⇑f) (⇑g) s)
Goal: Set.EqOn ⇑f ⇑g ↑(NonUnitalSubsemiring.closure s)
-- NonUnitalRingHom.eq_of_eqOn_stop
theorem eq_of_eqOn_stop {f g : F}
    (h : Set.EqOn (f : R → S) (g : R → S) (⊤ : NonUnitalSubsemiring R)) : f = g 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] {F : Type u_1} [FunLike F R S] {f g : F} (h : Set.EqOn ⇑f ⇑g ↑⊤)
Goal: f = g
-- NonUnitalRingHom.eq_of_eqOn_sdense
theorem eq_of_eqOn_sdense {s : Set R} (hs : closure s = ⊤) {f g : F}
    (h : s.EqOn (f : R → S) (g : R → S)) : f = g 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] {F : Type u_1} [FunLike F R S] [NonUnitalRingHomClass F R S] {s : Set R} (hs : NonUnitalSubsemiring.closure s = ⊤) {f g : F} (h : Set.EqOn (⇑f) (⇑g) s)
Goal: f = g
-- NonUnitalRingHom.sclosure_preimage_le
theorem sclosure_preimage_le (f : F) (s : Set S) :
    closure ((f : R → S) ⁻¹' s) ≤ (closure s).comap f 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] {F : Type u_1} [FunLike F R S] [NonUnitalRingHomClass F R S] (f : F) (s : Set S)
Goal: NonUnitalSubsemiring.closure (⇑f ⁻¹' s) ≤ NonUnitalSubsemiring.comap f (NonUnitalSubsemiring.closure s)
-- NonUnitalRingHom.map_sclosure
theorem map_sclosure (f : F) (s : Set R) : (closure s).map f = closure ((f : R → S) '' s) 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] {F : Type u_1} [FunLike F R S] [NonUnitalRingHomClass F R S] (f : F) (s : Set R)
Goal: NonUnitalSubsemiring.map f (NonUnitalSubsemiring.closure s) = NonUnitalSubsemiring.closure (⇑f '' s)
-- NonUnitalSubsemiring.srange_subtype
@[simp]
theorem srange_subtype (s : NonUnitalSubsemiring R) : NonUnitalRingHom.srange (subtype s) = s 
Arguments: {R : Type u} [NonUnitalNonAssocSemiring R] (s : NonUnitalSubsemiring R)
Goal: NonUnitalRingHom.srange (NonUnitalSubsemiringClass.subtype s) = s
-- NonUnitalSubsemiring.range_fst
@[simp]
theorem range_fst : NonUnitalRingHom.srange (fst R S) = ⊤ 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S]
Goal: NonUnitalRingHom.srange (NonUnitalRingHom.fst R S) = ⊤
-- NonUnitalSubsemiring.range_snd
@[simp]
theorem range_snd : NonUnitalRingHom.srange (snd R S) = ⊤ 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S]
Goal: NonUnitalRingHom.srange (NonUnitalRingHom.snd R S) = ⊤
-- RingEquiv.sofLeftInverse'_apply
@[simp]
theorem sofLeftInverse'_apply {g : S → R} {f : F} (h : Function.LeftInverse g f) (x : R) :
    ↑(sofLeftInverse' h x) = f x 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] {F : Type u_1} [FunLike F R S] [NonUnitalRingHomClass F R S] {g : S → R} {f : F} (h : Function.LeftInverse g ⇑f) (x : R)
Goal: ↑((RingEquiv.sofLeftInverse' h) x) = f x
-- RingEquiv.sofLeftInverse'_symm_apply
@[simp]
theorem sofLeftInverse'_symm_apply {g : S → R} {f : F} (h : Function.LeftInverse g f)
    (x : srange f) : (sofLeftInverse' h).symm x = g x 
Arguments: {R : Type u} {S : Type v} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] {F : Type u_1} [FunLike F R S] [NonUnitalRingHomClass F R S] {g : S → R} {f : F} (h : Function.LeftInverse g ⇑f) (x : ↥(NonUnitalRingHom.srange f))
Goal: (RingEquiv.sofLeftInverse' h).symm x = g ↑x
-- RingEquiv.nonUnitalSubsemiringMap_symm_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) (y : ↑(⇑↑e.toAddEquiv '' ↑s.toAddSubmonoid))
Goal: ↑((e.nonUnitalSubsemiringMap s).symm y) = (↑e).symm ↑y