ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- AddMonoidAlgebra.supDegree_mul_le
theorem supDegree_mul_le [CovariantClass B B (· + ·) (· ≤ ·)]
    [CovariantClass B B (Function.swap (· + ·)) (· ≤ ·)] :
    (p * q).supDegree D ≤ p.supDegree D + q.supDegree D 
Arguments: {R : Type u_1} {A : Type u_3} {B : Type u_5} [Semiring R] [AddZeroClass A] [SemilatticeSup B] [Add B] [OrderBot B] {D : A → B} {p q : AddMonoidAlgebra R A} (hadd : ∀ (a1 a2 : A), D (a1 + a2) = D a1 + D a2) [CovariantClass B B (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] [CovariantClass B B (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1]
Goal: AddMonoidAlgebra.supDegree D (p * q) ≤ AddMonoidAlgebra.supDegree D p + AddMonoidAlgebra.supDegree D q
-- AddMonoidAlgebra.supDegree_prod_le
theorem supDegree_prod_le {R A B : Type*} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B]
    [SemilatticeSup B] [OrderBot B]
    [CovariantClass B B (· + ·) (· ≤ ·)] [CovariantClass B B (Function.swap (· + ·)) (· ≤ ·)]
    {D : A → B} (hzero : D 0 = 0) (hadd : ∀ a1 a2, D (a1 + a2) = D a1 + D a2)
    {ι} {s : Finset ι} {f : ι → R[A]} :
    (∏ i ∈ s, f i).supDegree D ≤ ∑ i ∈ s, (f i).supDegree D 
Arguments: {R : Type u_7} {A : Type u_8} {B : Type u_9} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [SemilatticeSup B] [OrderBot B] [CovariantClass B B (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] [CovariantClass B B (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] {D : A → B} (hzero : D 0 = 0) (hadd : ∀ (a1 a2 : A), D (a1 + a2) = D a1 + D a2) {ι : Type u_10} {s : Finset ι} {f : ι → AddMonoidAlgebra R A}
Goal: AddMonoidAlgebra.supDegree D (∏ i ∈ s, f i) ≤ ∑ i ∈ s, AddMonoidAlgebra.supDegree D (f i)
-- AddMonoidAlgebra.apply_add_of_supDegree_le
theorem apply_add_of_supDegree_le (hD : D.Injective) {ap aq : A}
    (hp : p.supDegree D ≤ D ap) (hq : q.supDegree D ≤ D aq) :
    (p * q) (ap + aq) = p ap * q aq 
Arguments: {R : Type u_1} {A : Type u_3} {B : Type u_5} [Semiring R] [AddZeroClass A] [SemilatticeSup B] [Add B] [OrderBot B] {D : A → B} {p q : AddMonoidAlgebra R A} (hadd : ∀ (a1 a2 : A), D (a1 + a2) = D a1 + D a2) [CovariantClass B B (fun x x_1 => x + x_1) fun x x_1 => x < x_1] [CovariantClass B B (Function.swap fun x x_1 => x + x_1) fun x x_1 => x < x_1] (hD : Function.Injective D) {ap aq : A} (hp : AddMonoidAlgebra.supDegree D p ≤ D ap) (hq : AddMonoidAlgebra.supDegree D q ≤ D aq)
Goal: (p * q) (ap + aq) = p ap * q aq
-- AddMonoidAlgebra.supDegree_withBot_some_comp
theorem supDegree_withBot_some_comp {s : AddMonoidAlgebra R A} (hs : s.support.Nonempty) :
    supDegree (WithBot.some ∘ D) s = supDegree D s 
Arguments: {R : Type u_1} {A : Type u_3} {B : Type u_5} [Semiring R] [SemilatticeSup B] [OrderBot B] {D : A → B} {s : AddMonoidAlgebra R A} (hs : s.support.Nonempty)
Goal: AddMonoidAlgebra.supDegree (WithBot.some ∘ D) s = ↑(AddMonoidAlgebra.supDegree D s)
-- AddMonoidAlgebra.le_infDegree_add
theorem le_infDegree_add (f g : R[A]) :
    (f.infDegree D) ⊓ (g.infDegree D) ≤ (f + g).infDegree D 
Arguments: {R : Type u_1} {A : Type u_3} {T : Type u_4} [Semiring R] [AddZeroClass A] [SemilatticeInf T] [OrderTop T] (D : A → T) (f g : AddMonoidAlgebra R A)
Goal: AddMonoidAlgebra.infDegree D f ⊓ AddMonoidAlgebra.infDegree D g ≤ AddMonoidAlgebra.infDegree D (f + g)
-- AddMonoidAlgebra.le_infDegree_mul
theorem le_infDegree_mul (f g : R[A]) :
    f.infDegree D + g.infDegree D ≤ (f * g).infDegree D 
Arguments: {R : Type u_1} {A : Type u_3} {T : Type u_4} [Semiring R] [AddZeroClass A] [SemilatticeInf T] [Add T] [OrderTop T] [CovariantClass T T (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] [CovariantClass T T (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] (D : AddHom A T) (f g : AddMonoidAlgebra R A)
Goal: AddMonoidAlgebra.infDegree (⇑D) f + AddMonoidAlgebra.infDegree (⇑D) g ≤ AddMonoidAlgebra.infDegree (⇑D) (f * g)
-- AddMonoidAlgebra.infDegree_withTop_some_comp
theorem infDegree_withTop_some_comp {s : AddMonoidAlgebra R A} (hs : s.support.Nonempty) :
    infDegree (WithTop.some ∘ D) s = infDegree D s 
Arguments: {R : Type u_1} {A : Type u_3} {T : Type u_4} [Semiring R] [SemilatticeInf T] [OrderTop T] {D : A → T} {s : AddMonoidAlgebra R A} (hs : s.support.Nonempty)
Goal: AddMonoidAlgebra.infDegree (WithTop.some ∘ D) s = ↑(AddMonoidAlgebra.infDegree D s)
-- natCast_mem
@[aesop safe apply (rule_sets := [SetLike])]
theorem natCast_mem [AddSubmonoidWithOneClass S R] (n : ℕ) : (n : R) ∈ s 
Arguments: {S : Type u_1} {R : Type u_2} [AddMonoidWithOne R] [SetLike S R] (s : S) [AddSubmonoidWithOneClass S R] (n : ℕ)
Goal: ↑n ∈ s
-- ofNat_mem
@[aesop safe apply (rule_sets := [SetLike])]
lemma ofNat_mem [AddSubmonoidWithOneClass S R] (s : S) (n : ℕ) [n.AtLeastTwo] :
    no_index (OfNat.ofNat n) ∈ s 
Arguments: {S : Type u_1} {R : Type u_2} [AddMonoidWithOne R] [SetLike S R] [AddSubmonoidWithOneClass S R] (s : S) (n : ℕ) [n.AtLeastTwo]
Goal: OfNat.ofNat n ∈ s
-- SubsemiringClass.coe_subtype
@[simp]
theorem coe_subtype : (subtype s : s → R) = ((↑) : s → R) 
Arguments: {R : Type u} {S : Type v} [NonAssocSemiring R] [SetLike S R] [hSR : SubsemiringClass S R] (s : S)
Goal: ⇑(SubsemiringClass.subtype s) = Subtype.val
-- SubsemiringClass.coe_pow
@[simp, norm_cast]
theorem coe_pow {R} [Semiring R] [SetLike S R] [SubsemiringClass S R] (x : s) (n : ℕ) :
    ((x ^ n : s) : R) = (x : R) ^ n 
Arguments: {S : Type v} (s : S) {R : Type u_1} [Semiring R] [SetLike S R] [SubsemiringClass S R] (x : ↥s) (n : ℕ)
Goal: ↑(x ^ n) = ↑x ^ n
-- Subsemiring.mem_toSubmonoid
@[simp]
theorem mem_toSubmonoid {s : Subsemiring R} {x : R} : x ∈ s.toSubmonoid ↔ x ∈ s 
Arguments: {R : Type u} [NonAssocSemiring R] {s : Subsemiring R} {x : R}
Goal: x ∈ s.toSubmonoid ↔ x ∈ s
-- Subsemiring.mem_carrier
theorem mem_carrier {s : Subsemiring R} {x : R} : x ∈ s.carrier ↔ x ∈ s 
Arguments: {R : Type u} [NonAssocSemiring R] {s : Subsemiring R} {x : R}
Goal: x ∈ s.carrier ↔ x ∈ s
-- Subsemiring.ext
@[ext]
theorem ext {S T : Subsemiring R} (h : ∀ x, x ∈ S ↔ x ∈ T) : S = T 
Arguments: {R : Type u} [NonAssocSemiring R] {S T : Subsemiring R} (h : ∀ (x : R), x ∈ S ↔ x ∈ T)
Goal: S = T
-- Subsemiring.coe_copy
@[simp]
theorem coe_copy (S : Subsemiring R) (s : Set R) (hs : s = ↑S) : (S.copy s hs : Set R) = s 
Arguments: {R : Type u} [NonAssocSemiring R] (S : Subsemiring R) (s : Set R) (hs : s = ↑S)
Goal: ↑(S.copy s hs) = s
-- Subsemiring.copy_eq
theorem copy_eq (S : Subsemiring R) (s : Set R) (hs : s = ↑S) : S.copy s hs = S 
Arguments: {R : Type u} [NonAssocSemiring R] (S : Subsemiring R) (s : Set R) (hs : s = ↑S)
Goal: S.copy s hs = S
-- Subsemiring.toSubmonoid_injective
theorem toSubmonoid_injective : Function.Injective (toSubmonoid : Subsemiring R → Submonoid R)
  
Arguments: {R : Type u} [NonAssocSemiring R]
Goal: Function.Injective Subsemiring.toSubmonoid
-- Subsemiring.toSubmonoid_strictMono
@[mono]
theorem toSubmonoid_strictMono : StrictMono (toSubmonoid : Subsemiring R → Submonoid R) 
Arguments: {R : Type u} [NonAssocSemiring R]
Goal: StrictMono Subsemiring.toSubmonoid
-- Subsemiring.toSubmonoid_mono
@[mono]
theorem toSubmonoid_mono : Monotone (toSubmonoid : Subsemiring R → Submonoid R) 
Arguments: {R : Type u} [NonAssocSemiring R]
Goal: Monotone Subsemiring.toSubmonoid
-- Subsemiring.toAddSubmonoid_injective
theorem toAddSubmonoid_injective :
    Function.Injective (toAddSubmonoid : Subsemiring R → AddSubmonoid R)
  
Arguments: {R : Type u} [NonAssocSemiring R]
Goal: Function.Injective Subsemiring.toAddSubmonoid
-- Subsemiring.toAddSubmonoid_strictMono
@[mono]
theorem toAddSubmonoid_strictMono : StrictMono (toAddSubmonoid : Subsemiring R → AddSubmonoid R) 
Arguments: {R : Type u} [NonAssocSemiring R]
Goal: StrictMono Subsemiring.toAddSubmonoid
-- Subsemiring.toAddSubmonoid_mono
@[mono]
theorem toAddSubmonoid_mono : Monotone (toAddSubmonoid : Subsemiring R → AddSubmonoid R) 
Arguments: {R : Type u} [NonAssocSemiring R]
Goal: Monotone Subsemiring.toAddSubmonoid
-- Subsemiring.coe_mk'
@[simp]
theorem coe_mk' {s : Set R} {sm : Submonoid R} (hm : ↑sm = s) {sa : AddSubmonoid R} (ha : ↑sa = s) :
    (Subsemiring.mk' s sm hm sa ha : Set R) = s 
Arguments: {R : Type u} [NonAssocSemiring R] {s : Set R} {sm : Submonoid R} (hm : ↑sm = s) {sa : AddSubmonoid R} (ha : ↑sa = s)
Goal: ↑(Subsemiring.mk' s sm hm sa ha) = s
-- Subsemiring.mem_mk'
@[simp]
theorem mem_mk' {s : Set R} {sm : Submonoid R} (hm : ↑sm = s) {sa : AddSubmonoid R} (ha : ↑sa = s)
    {x : R} : x ∈ Subsemiring.mk' s sm hm sa ha ↔ x ∈ s 
Arguments: {R : Type u} [NonAssocSemiring R] {s : Set R} {sm : Submonoid R} (hm : ↑sm = s) {sa : AddSubmonoid R} (ha : ↑sa = s) {x : R}
Goal: x ∈ Subsemiring.mk' s sm hm sa ha ↔ x ∈ s
-- Subsemiring.mk'_toSubmonoid
@[simp]
theorem mk'_toSubmonoid {s : Set R} {sm : Submonoid R} (hm : ↑sm = s) {sa : AddSubmonoid R}
    (ha : ↑sa = s) : (Subsemiring.mk' s sm hm sa ha).toSubmonoid = sm 
Arguments: {R : Type u} [NonAssocSemiring R] {s : Set R} {sm : Submonoid R} (hm : ↑sm = s) {sa : AddSubmonoid R} (ha : ↑sa = s)
Goal: (Subsemiring.mk' s sm hm sa ha).toSubmonoid = sm
-- Subsemiring.mk'_toAddSubmonoid
@[simp]
theorem mk'_toAddSubmonoid {s : Set R} {sm : Submonoid R} (hm : ↑sm = s) {sa : AddSubmonoid R}
    (ha : ↑sa = s) : (Subsemiring.mk' s sm hm sa ha).toAddSubmonoid = sa 
Arguments: {R : Type u} [NonAssocSemiring R] {s : Set R} {sm : Submonoid R} (hm : ↑sm = s) {sa : AddSubmonoid R} (ha : ↑sa = s)
Goal: (Subsemiring.mk' s sm hm sa ha).toAddSubmonoid = sa
-- Subsemiring.one_mem
protected theorem one_mem : (1 : R) ∈ s 
Arguments: {R : Type u} [NonAssocSemiring R] (s : Subsemiring R)
Goal: 1 ∈ s
-- Subsemiring.zero_mem
protected theorem zero_mem : (0 : R) ∈ s 
Arguments: {R : Type u} [NonAssocSemiring R] (s : Subsemiring R)
Goal: 0 ∈ s
-- Subsemiring.mul_mem
protected theorem mul_mem {x y : R} : x ∈ s → y ∈ s → x * y ∈ s 
Arguments: {R : Type u} [NonAssocSemiring R] (s : Subsemiring R) {x y : R}
Goal: x ∈ s → y ∈ s → x * y ∈ s
-- Subsemiring.add_mem
protected theorem add_mem {x y : R} : x ∈ s → y ∈ s → x + y ∈ s 
Arguments: {R : Type u} [NonAssocSemiring R] (s : Subsemiring R) {x y : R}
Goal: x ∈ s → y ∈ s → x + y ∈ s
-- Subsemiring.list_prod_mem
nonrec theorem list_prod_mem {R : Type*} [Semiring R] (s : Subsemiring R) {l : List R} :
    (∀ x ∈ l, x ∈ s) → l.prod ∈ s 
Arguments: {R : Type u_1} [Semiring R] (s : Subsemiring R) {l : List R}
Goal: (∀ x ∈ l, x ∈ s) → l.prod ∈ s
-- Subsemiring.list_sum_mem
protected theorem list_sum_mem {l : List R} : (∀ x ∈ l, x ∈ s) → l.sum ∈ s 
Arguments: {R : Type u} [NonAssocSemiring R] (s : Subsemiring R) {l : List R}
Goal: (∀ x ∈ l, x ∈ s) → l.sum ∈ s
-- Subsemiring.multiset_prod_mem
protected theorem multiset_prod_mem {R} [CommSemiring R] (s : Subsemiring R) (m : Multiset R) :
    (∀ a ∈ m, a ∈ s) → m.prod ∈ s 
Arguments: {R : Type u_1} [CommSemiring R] (s : Subsemiring R) (m : Multiset R)
Goal: (∀ a ∈ m, a ∈ s) → m.prod ∈ s
-- Subsemiring.multiset_sum_mem
protected theorem multiset_sum_mem (m : Multiset R) : (∀ a ∈ m, a ∈ s) → m.sum ∈ s 
Arguments: {R : Type u} [NonAssocSemiring R] (s : Subsemiring R) (m : Multiset R)
Goal: (∀ a ∈ m, a ∈ s) → m.sum ∈ s
-- Subsemiring.prod_mem
protected theorem prod_mem {R : Type*} [CommSemiring R] (s : Subsemiring R) {ι : Type*}
    {t : Finset ι} {f : ι → R} (h : ∀ c ∈ t, f c ∈ s) : (∏ i ∈ t, f i) ∈ s 
Arguments: {R : Type u_1} [CommSemiring R] (s : Subsemiring R) {ι : Type u_2} {t : Finset ι} {f : ι → R} (h : ∀ c ∈ t, f c ∈ s)
Goal: ∏ i ∈ t, f i ∈ s
-- Subsemiring.sum_mem
protected theorem sum_mem (s : Subsemiring R) {ι : Type*} {t : Finset ι} {f : ι → R}
    (h : ∀ c ∈ t, f c ∈ s) : (∑ i ∈ t, f i) ∈ s 
Arguments: {R : Type u} [NonAssocSemiring R] (s : Subsemiring R) {ι : Type u_1} {t : Finset ι} {f : ι → R} (h : ∀ c ∈ t, f c ∈ s)
Goal: ∑ i ∈ t, f i ∈ s
-- Subsemiring.coe_one
@[simp, norm_cast]
theorem coe_one : ((1 : s) : R) = (1 : R) 
Arguments: {R : Type u} [NonAssocSemiring R] (s : Subsemiring R)
Goal: ↑1 = 1
-- Subsemiring.coe_zero
@[simp, norm_cast]
theorem coe_zero : ((0 : s) : R) = (0 : R) 
Arguments: {R : Type u} [NonAssocSemiring R] (s : Subsemiring R)
Goal: ↑0 = 0
-- Subsemiring.coe_add
@[simp, norm_cast]
theorem coe_add (x y : s) : ((x + y : s) : R) = (x + y : R) 
Arguments: {R : Type u} [NonAssocSemiring R] (s : Subsemiring R) (x y : ↥s)
Goal: ↑(x + y) = ↑x + ↑y
-- Subsemiring.coe_mul
@[simp, norm_cast]
theorem coe_mul (x y : s) : ((x * y : s) : R) = (x * y : R) 
Arguments: {R : Type u} [NonAssocSemiring R] (s : Subsemiring R) (x y : ↥s)
Goal: ↑(x * y) = ↑x * ↑y
-- Subsemiring.pow_mem
protected theorem pow_mem {R : Type*} [Semiring R] (s : Subsemiring R) {x : R} (hx : x ∈ s)
    (n : ℕ) : x ^ n ∈ s 
Arguments: {R : Type u_1} [Semiring R] (s : Subsemiring R) {x : R} (hx : x ∈ s) (n : ℕ)
Goal: x ^ n ∈ s
-- Subsemiring.coe_pow
@[simp, norm_cast]
theorem coe_pow {R} [Semiring R] (s : Subsemiring R) (x : s) (n : ℕ) :
    ((x ^ n : s) : R) = (x : R) ^ n 
Arguments: {R : Type u_1} [Semiring R] (s : Subsemiring R) (x : ↥s) (n : ℕ)
Goal: ↑(x ^ n) = ↑x ^ n
-- Subsemiring.coe_subtype
@[simp]
theorem coe_subtype : ⇑s.subtype = ((↑) : s → R) 
Arguments: {R : Type u} [NonAssocSemiring R] (s : Subsemiring R)
Goal: ⇑s.subtype = Subtype.val
-- Subsemiring.nsmul_mem
protected theorem nsmul_mem {x : R} (hx : x ∈ s) (n : ℕ) : n • x ∈ s 
Arguments: {R : Type u} [NonAssocSemiring R] (s : Subsemiring R) {x : R} (hx : x ∈ s) (n : ℕ)
Goal: n • x ∈ s
-- Subsemiring.coe_toSubmonoid
@[simp]
theorem coe_toSubmonoid (s : Subsemiring R) : (s.toSubmonoid : Set R) = s 
Arguments: {R : Type u} [NonAssocSemiring R] (s : Subsemiring R)
Goal: ↑s.toSubmonoid = ↑s
-- Subsemiring.coe_carrier_toSubmonoid
@[simp]
theorem coe_carrier_toSubmonoid (s : Subsemiring R) : (s.toSubmonoid.carrier : Set R) = s 
Arguments: {R : Type u} [NonAssocSemiring R] (s : Subsemiring R)
Goal: s.carrier = ↑s
-- Subsemiring.mem_toAddSubmonoid
theorem mem_toAddSubmonoid {s : Subsemiring R} {x : R} : x ∈ s.toAddSubmonoid ↔ x ∈ s 
Arguments: {R : Type u} [NonAssocSemiring R] {s : Subsemiring R} {x : R}
Goal: x ∈ s.toAddSubmonoid ↔ x ∈ s
-- Subsemiring.coe_toAddSubmonoid
theorem coe_toAddSubmonoid (s : Subsemiring R) : (s.toAddSubmonoid : Set R) = s 
Arguments: {R : Type u} [NonAssocSemiring R] (s : Subsemiring R)
Goal: ↑s.toAddSubmonoid = ↑s
-- Subsemiring.mem_top
@[simp]
theorem mem_top (x : R) : x ∈ (⊤ : Subsemiring R) 
Arguments: {R : Type u} [NonAssocSemiring R] (x : R)
Goal: x ∈ ⊤
-- Subsemiring.coe_top
@[simp]
theorem coe_top : ((⊤ : Subsemiring R) : Set R) = Set.univ 
Arguments: {R : Type u} [NonAssocSemiring R]
Goal: ↑⊤ = Set.univ
-- Subsemiring.topEquiv_symm_apply_coe
@[simps]
def topEquiv : (⊤ : Subsemiring R) ≃+* R 
Arguments: {R : Type u} [NonAssocSemiring R] (r : R)
Goal: ↑(Subsemiring.topEquiv.symm r) = r
-- Subsemiring.topEquiv_apply
@[simps]
def topEquiv : (⊤ : Subsemiring R) ≃+* R 
Arguments: {R : Type u} [NonAssocSemiring R] (r : ↥⊤)
Goal: Subsemiring.topEquiv r = ↑r
-- Subsemiring.coe_comap
@[simp]
theorem coe_comap (s : Subsemiring S) (f : R →+* S) : (s.comap f : Set R) = f ⁻¹' s 
Arguments: {R : Type u} {S : Type v} [NonAssocSemiring R] [NonAssocSemiring S] (s : Subsemiring S) (f : R →+* S)
Goal: ↑(Subsemiring.comap f s) = ⇑f ⁻¹' ↑s
-- Subsemiring.mem_comap
@[simp]
theorem mem_comap {s : Subsemiring S} {f : R →+* S} {x : R} : x ∈ s.comap f ↔ f x ∈ s 
Arguments: {R : Type u} {S : Type v} [NonAssocSemiring R] [NonAssocSemiring S] {s : Subsemiring S} {f : R →+* S} {x : R}
Goal: x ∈ Subsemiring.comap f s ↔ f x ∈ s
-- Subsemiring.comap_comap
theorem comap_comap (s : Subsemiring T) (g : S →+* T) (f : R →+* S) :
    (s.comap g).comap f = s.comap (g.comp f) 
Arguments: {R : Type u} {S : Type v} {T : Type w} [NonAssocSemiring R] [NonAssocSemiring S] [NonAssocSemiring T] (s : Subsemiring T) (g : S →+* T) (f : R →+* S)
Goal: Subsemiring.comap f (Subsemiring.comap g s) = Subsemiring.comap (g.comp f) s
-- Subsemiring.coe_map
@[simp]
theorem coe_map (f : R →+* S) (s : Subsemiring R) : (s.map f : Set S) = f '' s 
Arguments: {R : Type u} {S : Type v} [NonAssocSemiring R] [NonAssocSemiring S] (f : R →+* S) (s : Subsemiring R)
Goal: ↑(Subsemiring.map f s) = ⇑f '' ↑s
-- Subsemiring.mem_map
@[simp]
lemma mem_map {f : R →+* S} {s : Subsemiring R} {y : S} : y ∈ s.map f ↔ ∃ x ∈ s, f x = y 
Arguments: {R : Type u} {S : Type v} [NonAssocSemiring R] [NonAssocSemiring S] {f : R →+* S} {s : Subsemiring R} {y : S}
Goal: y ∈ Subsemiring.map f s ↔ ∃ x ∈ s, f x = y
-- Subsemiring.map_id
@[simp]
theorem map_id : s.map (RingHom.id R) = s 
Arguments: {R : Type u} [NonAssocSemiring R] (s : Subsemiring R)
Goal: Subsemiring.map (RingHom.id R) s = s
-- Subsemiring.map_map
theorem map_map (g : S →+* T) (f : R →+* S) : (s.map f).map g = s.map (g.comp f) 
Arguments: {R : Type u} {S : Type v} {T : Type w} [NonAssocSemiring R] [NonAssocSemiring S] [NonAssocSemiring T] (s : Subsemiring R) (g : S →+* T) (f : R →+* S)
Goal: Subsemiring.map g (Subsemiring.map f s) = Subsemiring.map (g.comp f) s
-- Subsemiring.map_le_iff_le_comap
theorem map_le_iff_le_comap {f : R →+* S} {s : Subsemiring R} {t : Subsemiring S} :
    s.map f ≤ t ↔ s ≤ t.comap f 
Arguments: {R : Type u} {S : Type v} [NonAssocSemiring R] [NonAssocSemiring S] {f : R →+* S} {s : Subsemiring R} {t : Subsemiring S}
Goal: Subsemiring.map f s ≤ t ↔ s ≤ Subsemiring.comap f t
-- Subsemiring.gc_map_comap
theorem gc_map_comap (f : R →+* S) : GaloisConnection (map f) (comap f) 
Arguments: {R : Type u} {S : Type v} [NonAssocSemiring R] [NonAssocSemiring S] (f : R →+* S)
Goal: GaloisConnection (Subsemiring.map f) (Subsemiring.comap f)
-- Subsemiring.coe_equivMapOfInjective_apply
@[simp]
theorem coe_equivMapOfInjective_apply (f : R →+* S) (hf : Function.Injective f) (x : s) :
    (equivMapOfInjective s f hf x : S) = f x 
Arguments: {R : Type u} {S : Type v} [NonAssocSemiring R] [NonAssocSemiring S] (s : Subsemiring R) (f : R →+* S) (hf : Function.Injective ⇑f) (x : ↥s)
Goal: ↑((s.equivMapOfInjective f hf) x) = f ↑x
-- RingHom.coe_rangeS
@[simp]
theorem coe_rangeS : (f.rangeS : Set S) = Set.range f 
Arguments: {R : Type u} {S : Type v} [NonAssocSemiring R] [NonAssocSemiring S] (f : R →+* S)
Goal: ↑f.rangeS = Set.range ⇑f
-- RingHom.mem_rangeS
@[simp]
theorem mem_rangeS {f : R →+* S} {y : S} : y ∈ f.rangeS ↔ ∃ x, f x = y 
Arguments: {R : Type u} {S : Type v} [NonAssocSemiring R] [NonAssocSemiring S] {f : R →+* S} {y : S}
Goal: y ∈ f.rangeS ↔ ∃ x, f x = y
-- RingHom.rangeS_eq_map
theorem rangeS_eq_map (f : R →+* S) : f.rangeS = (⊤ : Subsemiring R).map f 
Arguments: {R : Type u} {S : Type v} [NonAssocSemiring R] [NonAssocSemiring S] (f : R →+* S)
Goal: f.rangeS = Subsemiring.map f ⊤
-- RingHom.mem_rangeS_self
theorem mem_rangeS_self (f : R →+* S) (x : R) : f x ∈ f.rangeS 
Arguments: {R : Type u} {S : Type v} [NonAssocSemiring R] [NonAssocSemiring S] (f : R →+* S) (x : R)
Goal: f x ∈ f.rangeS
-- RingHom.map_rangeS
theorem map_rangeS : f.rangeS.map g = (g.comp f).rangeS 
Arguments: {R : Type u} {S : Type v} {T : Type w} [NonAssocSemiring R] [NonAssocSemiring S] [NonAssocSemiring T] (g : S →+* T) (f : R →+* S)
Goal: Subsemiring.map g f.rangeS = (g.comp f).rangeS
-- Subsemiring.coe_bot
theorem coe_bot : ((⊥ : Subsemiring R) : Set R) = Set.range ((↑) : ℕ → R) 
Arguments: {R : Type u} [NonAssocSemiring R]
Goal: ↑⊥ = Set.range Nat.cast
-- Subsemiring.mem_bot
theorem mem_bot {x : R} : x ∈ (⊥ : Subsemiring R) ↔ ∃ n : ℕ, ↑n = x 
Arguments: {R : Type u} [NonAssocSemiring R] {x : R}
Goal: x ∈ ⊥ ↔ ∃ n, ↑n = x
-- Subsemiring.coe_inf
@[simp]
theorem coe_inf (p p' : Subsemiring R) : ((p ⊓ p' : Subsemiring R) : Set R) = (p : Set R) ∩ p' 
Arguments: {R : Type u} [NonAssocSemiring R] (p p' : Subsemiring R)
Goal: ↑(p ⊓ p') = ↑p ∩ ↑p'
-- Subsemiring.mem_inf
@[simp]
theorem mem_inf {p p' : Subsemiring R} {x : R} : x ∈ p ⊓ p' ↔ x ∈ p ∧ x ∈ p' 
Arguments: {R : Type u} [NonAssocSemiring R] {p p' : Subsemiring R} {x : R}
Goal: x ∈ p ⊓ p' ↔ x ∈ p ∧ x ∈ p'
-- Subsemiring.coe_sInf
@[simp, norm_cast]
theorem coe_sInf (S : Set (Subsemiring R)) : ((sInf S : Subsemiring R) : Set R) = ⋂ s ∈ S, ↑s 
Arguments: {R : Type u} [NonAssocSemiring R] (S : Set (Subsemiring R))
Goal: ↑(sInf S) = ⋂ s ∈ S, ↑s
-- Subsemiring.mem_sInf
theorem mem_sInf {S : Set (Subsemiring R)} {x : R} : x ∈ sInf S ↔ ∀ p ∈ S, x ∈ p 
Arguments: {R : Type u} [NonAssocSemiring R] {S : Set (Subsemiring R)} {x : R}
Goal: x ∈ sInf S ↔ ∀ p ∈ S, x ∈ p
-- Subsemiring.sInf_toSubmonoid
@[simp]
theorem sInf_toSubmonoid (s : Set (Subsemiring R)) :
    (sInf s).toSubmonoid = ⨅ t ∈ s, Subsemiring.toSubmonoid t 
Arguments: {R : Type u} [NonAssocSemiring R] (s : Set (Subsemiring R))
Goal: (sInf s).toSubmonoid = ⨅ t ∈ s, t.toSubmonoid
-- Subsemiring.sInf_toAddSubmonoid
@[simp]
theorem sInf_toAddSubmonoid (s : Set (Subsemiring R)) :
    (sInf s).toAddSubmonoid = ⨅ t ∈ s, Subsemiring.toAddSubmonoid t 
Arguments: {R : Type u} [NonAssocSemiring R] (s : Set (Subsemiring R))
Goal: (sInf s).toAddSubmonoid = ⨅ t ∈ s, t.toAddSubmonoid
-- Subsemiring.eq_top_iff'
theorem eq_top_iff' (A : Subsemiring R) : A = ⊤ ↔ ∀ x : R, x ∈ A 
Arguments: {R : Type u} [NonAssocSemiring R] (A : Subsemiring R)
Goal: A = ⊤ ↔ ∀ (x : R), x ∈ A
-- Subsemiring.coe_center
theorem coe_center : ↑(center R) = Set.center R 
Arguments: (R : Type u) [NonAssocSemiring R]
Goal: ↑(Subsemiring.center R) = Set.center R
-- Subsemiring.center_toSubmonoid
@[simp]
theorem center_toSubmonoid : (center R).toSubmonoid = Submonoid.center R 
Arguments: (R : Type u) [NonAssocSemiring R]
Goal: (Subsemiring.center R).toSubmonoid = Submonoid.center R
-- Subsemiring.mem_center_iff
theorem mem_center_iff {R} [Semiring R] {z : R} : z ∈ center R ↔ ∀ g, g * z = z * g 
Arguments: {R : Type u_1} [Semiring R] {z : R}
Goal: z ∈ Subsemiring.center R ↔ ∀ (g : R), g * z = z * g
-- Subsemiring.center_eq_top
@[simp]
theorem center_eq_top (R) [CommSemiring R] : center R = ⊤ 
Arguments: (R : Type u_1) [CommSemiring R]
Goal: Subsemiring.center R = ⊤
-- Subsemiring.coe_centralizer
@[simp, norm_cast]
theorem coe_centralizer {R} [Semiring R] (s : Set R) : (centralizer s : Set R) = s.centralizer 
Arguments: {R : Type u_1} [Semiring R] (s : Set R)
Goal: ↑(Subsemiring.centralizer s) = s.centralizer
-- Subsemiring.centralizer_toSubmonoid
theorem centralizer_toSubmonoid {R} [Semiring R] (s : Set R) :
    (centralizer s).toSubmonoid = Submonoid.centralizer s 
Arguments: {R : Type u_1} [Semiring R] (s : Set R)
Goal: (Subsemiring.centralizer s).toSubmonoid = Submonoid.centralizer s
-- Subsemiring.mem_centralizer_iff
theorem mem_centralizer_iff {R} [Semiring R] {s : Set R} {z : R} :
    z ∈ centralizer s ↔ ∀ g ∈ s, g * z = z * g 
Arguments: {R : Type u_1} [Semiring R] {s : Set R} {z : R}
Goal: z ∈ Subsemiring.centralizer s ↔ ∀ g ∈ s, g * z = z * g
-- Subsemiring.center_le_centralizer
theorem center_le_centralizer {R} [Semiring R] (s) : center R ≤ centralizer s 
Arguments: {R : Type u_1} [Semiring R] (s : Set R)
Goal: Subsemiring.center R ≤ Subsemiring.centralizer s
-- Subsemiring.centralizer_le
theorem centralizer_le {R} [Semiring R] (s t : Set R) (h : s ⊆ t) : centralizer t ≤ centralizer s 
Arguments: {R : Type u_1} [Semiring R] (s t : Set R) (h : s ⊆ t)
Goal: Subsemiring.centralizer t ≤ Subsemiring.centralizer s
-- Subsemiring.centralizer_eq_top_iff_subset
@[simp]
theorem centralizer_eq_top_iff_subset {R} [Semiring R] {s : Set R} :
    centralizer s = ⊤ ↔ s ⊆ center R 
Arguments: {R : Type u_1} [Semiring R] {s : Set R}
Goal: Subsemiring.centralizer s = ⊤ ↔ s ⊆ ↑(Subsemiring.center R)
-- Subsemiring.centralizer_univ
@[simp]
theorem centralizer_univ {R} [Semiring R] : centralizer Set.univ = center R 
Arguments: {R : Type u_1} [Semiring R]
Goal: Subsemiring.centralizer Set.univ = Subsemiring.center R
-- Subsemiring.le_centralizer_centralizer
lemma le_centralizer_centralizer {R} [Semiring R] {s : Subsemiring R} :
    s ≤ centralizer (centralizer (s : Set R)) 
Arguments: {R : Type u_1} [Semiring R] {s : Subsemiring R}
Goal: s ≤ Subsemiring.centralizer ↑(Subsemiring.centralizer ↑s)
-- Subsemiring.centralizer_centralizer_centralizer
@[simp]
lemma centralizer_centralizer_centralizer {R} [Semiring R] {s : Set R} :
    centralizer s.centralizer.centralizer = centralizer s 
Arguments: {R : Type u_1} [Semiring R] {s : Set R}
Goal: Subsemiring.centralizer s.centralizer.centralizer = Subsemiring.centralizer s
-- Subsemiring.mem_closure
theorem mem_closure {x : R} {s : Set R} : x ∈ closure s ↔ ∀ S : Subsemiring R, s ⊆ S → x ∈ S 
Arguments: {R : Type u} [NonAssocSemiring R] {x : R} {s : Set R}
Goal: x ∈ Subsemiring.closure s ↔ ∀ (S : Subsemiring R), s ⊆ ↑S → x ∈ S