ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- IsAddUnit.eq_on_neg
@[to_additive
  "If two homomorphisms from a subtraction monoid to an additive monoid are equal at an
  additive unit `x`, then they are equal at `-x`."]
theorem IsUnit.eq_on_inv {F G N} [DivisionMonoid G] [Monoid N] [FunLike F G N]
    [MonoidHomClass F G N] {x : G} (hx : IsUnit x) (f g : F) (h : f x = g x) : f x⁻¹ = g x⁻¹ 
Arguments: {F : Type u_1} {G : Type u_2} {N : Type u_3} [SubtractionMonoid G] [AddMonoid N] [FunLike F G N] [AddMonoidHomClass F G N] {x : G} (hx : IsAddUnit x) (f g : F) (h : f x = g x)
Goal: f (-x) = g (-x)
-- eq_on_inv
@[to_additive
    "If two homomorphism from an additive group to an additive monoid are equal at `x`,
    then they are equal at `-x`."]
theorem eq_on_inv {F G M} [Group G] [Monoid M] [FunLike F G M] [MonoidHomClass F G M]
    (f g : F) {x : G} (h : f x = g x) : f x⁻¹ = g x⁻¹ 
Arguments: {F : Type u_1} {G : Type u_2} {M : Type u_3} [Group G] [Monoid M] [FunLike F G M] [MonoidHomClass F G M] (f g : F) {x : G} (h : f x = g x)
Goal: f x⁻¹ = g x⁻¹
-- eq_on_neg
@[to_additive
    "If two homomorphism from an additive group to an additive monoid are equal at `x`,
    then they are equal at `-x`."]
theorem eq_on_inv {F G M} [Group G] [Monoid M] [FunLike F G M] [MonoidHomClass F G M]
    (f g : F) {x : G} (h : f x = g x) : f x⁻¹ = g x⁻¹ 
Arguments: {F : Type u_1} {G : Type u_2} {M : Type u_3} [AddGroup G] [AddMonoid M] [FunLike F G M] [AddMonoidHomClass F G M] (f g : F) {x : G} (h : f x = g x)
Goal: f (-x) = g (-x)
-- AddUnits.coe_map
@[to_additive (attr := simp)]
theorem coe_map (f : M →* N) (x : Mˣ) : ↑(map f x) = f x 
Arguments: {M : Type u} {N : Type v} [AddMonoid M] [AddMonoid N] (f : M →+ N) (x : AddUnits M)
Goal: ↑((AddUnits.map f) x) = f ↑x
-- Units.coe_map
@[to_additive (attr := simp)]
theorem coe_map (f : M →* N) (x : Mˣ) : ↑(map f x) = f x 
Arguments: {M : Type u} {N : Type v} [Monoid M] [Monoid N] (f : M →* N) (x : Mˣ)
Goal: ↑((Units.map f) x) = f ↑x
-- AddUnits.coe_map_neg
@[to_additive (attr := simp)]
theorem coe_map_inv (f : M →* N) (u : Mˣ) : ↑(map f u)⁻¹ = f ↑u⁻¹ 
Arguments: {M : Type u} {N : Type v} [AddMonoid M] [AddMonoid N] (f : M →+ N) (u : AddUnits M)
Goal: ↑(-(AddUnits.map f) u) = f ↑(-u)
-- Units.coe_map_inv
@[to_additive (attr := simp)]
theorem coe_map_inv (f : M →* N) (u : Mˣ) : ↑(map f u)⁻¹ = f ↑u⁻¹ 
Arguments: {M : Type u} {N : Type v} [Monoid M] [Monoid N] (f : M →* N) (u : Mˣ)
Goal: ↑((Units.map f) u)⁻¹ = f ↑u⁻¹
-- Units.map_comp
@[to_additive (attr := simp)]
theorem map_comp (f : M →* N) (g : N →* P) : map (g.comp f) = (map g).comp (map f) 
Arguments: {M : Type u} {N : Type v} {P : Type w} [Monoid M] [Monoid N] [Monoid P] (f : M →* N) (g : N →* P)
Goal: Units.map (g.comp f) = (Units.map g).comp (Units.map f)
-- AddUnits.map_comp
@[to_additive (attr := simp)]
theorem map_comp (f : M →* N) (g : N →* P) : map (g.comp f) = (map g).comp (map f) 
Arguments: {M : Type u} {N : Type v} {P : Type w} [AddMonoid M] [AddMonoid N] [AddMonoid P] (f : M →+ N) (g : N →+ P)
Goal: AddUnits.map (g.comp f) = (AddUnits.map g).comp (AddUnits.map f)
-- AddUnits.map_injective
@[to_additive]
lemma map_injective {f : M →* N} (hf : Function.Injective f) :
    Function.Injective (map f) 
Arguments: {M : Type u} {N : Type v} [AddMonoid M] [AddMonoid N] {f : M →+ N} (hf : Function.Injective ⇑f)
Goal: Function.Injective ⇑(AddUnits.map f)
-- Units.map_injective
@[to_additive]
lemma map_injective {f : M →* N} (hf : Function.Injective f) :
    Function.Injective (map f) 
Arguments: {M : Type u} {N : Type v} [Monoid M] [Monoid N] {f : M →* N} (hf : Function.Injective ⇑f)
Goal: Function.Injective ⇑(Units.map f)
-- Units.map_id
@[to_additive (attr := simp)]
theorem map_id : map (MonoidHom.id M) = MonoidHom.id Mˣ 
Arguments: (M : Type u) [Monoid M]
Goal: Units.map (MonoidHom.id M) = MonoidHom.id Mˣ
-- AddUnits.map_id
@[to_additive (attr := simp)]
theorem map_id : map (MonoidHom.id M) = MonoidHom.id Mˣ 
Arguments: (M : Type u) [AddMonoid M]
Goal: AddUnits.map (AddMonoidHom.id M) = AddMonoidHom.id (AddUnits M)
-- AddUnits.coeHom_apply
@[to_additive (attr := simp)]
theorem coeHom_apply (x : Mˣ) : coeHom M x = ↑x 
Arguments: {M : Type u} [AddMonoid M] (x : AddUnits M)
Goal: (AddUnits.coeHom M) x = ↑x
-- Units.coeHom_apply
@[to_additive (attr := simp)]
theorem coeHom_apply (x : Mˣ) : coeHom M x = ↑x 
Arguments: {M : Type u} [Monoid M] (x : Mˣ)
Goal: (Units.coeHom M) x = ↑x
-- Units.val_zpow_eq_zpow_val
@[to_additive (attr := simp, norm_cast)]
theorem val_zpow_eq_zpow_val : ∀ (u : αˣ) (n : ℤ), ((u ^ n : αˣ) : α) = (u : α) ^ n 
Arguments: {α : Type u_1} [DivisionMonoid α] (u : αˣ) (n : ℤ)
Goal: ↑(u ^ n) = ↑u ^ n
-- AddUnits.val_zsmul_eq_zsmul_val
@[to_additive (attr := simp, norm_cast)]
theorem val_zpow_eq_zpow_val : ∀ (u : αˣ) (n : ℤ), ((u ^ n : αˣ) : α) = (u : α) ^ n 
Arguments: {α : Type u_1} [SubtractionMonoid α] (u : AddUnits α) (n : ℤ)
Goal: ↑(n • u) = n • ↑u
-- map_addUnits_neg
@[to_additive (attr := simp)]
theorem _root_.map_units_inv {F : Type*} [FunLike F M α] [MonoidHomClass F M α]
    (f : F) (u : Units M) :
    f ↑u⁻¹ = (f u)⁻¹ 
Arguments: {α : Type u_1} {M : Type u} [AddMonoid M] [SubtractionMonoid α] {F : Type u_2} [FunLike F M α] [AddMonoidHomClass F M α] (f : F) (u : AddUnits M)
Goal: f ↑(-u) = -f ↑u
-- map_units_inv
@[to_additive (attr := simp)]
theorem _root_.map_units_inv {F : Type*} [FunLike F M α] [MonoidHomClass F M α]
    (f : F) (u : Units M) :
    f ↑u⁻¹ = (f u)⁻¹ 
Arguments: {α : Type u_1} {M : Type u} [Monoid M] [DivisionMonoid α] {F : Type u_2} [FunLike F M α] [MonoidHomClass F M α] (f : F) (u : Mˣ)
Goal: f ↑u⁻¹ = (f ↑u)⁻¹
-- Units.coe_liftRight
@[to_additive (attr := simp)]
theorem coe_liftRight {f : M →* N} {g : M → Nˣ} (h : ∀ x, ↑(g x) = f x) (x) :
    (liftRight f g h x : N) = f x 
Arguments: {M : Type u} {N : Type v} [Monoid M] [Monoid N] {f : M →* N} {g : M → Nˣ} (h : ∀ (x : M), ↑(g x) = f x) (x : M)
Goal: ↑((Units.liftRight f g h) x) = f x
-- AddUnits.coe_liftRight
@[to_additive (attr := simp)]
theorem coe_liftRight {f : M →* N} {g : M → Nˣ} (h : ∀ x, ↑(g x) = f x) (x) :
    (liftRight f g h x : N) = f x 
Arguments: {M : Type u} {N : Type v} [AddMonoid M] [AddMonoid N] {f : M →+ N} {g : M → AddUnits N} (h : ∀ (x : M), ↑(g x) = f x) (x : M)
Goal: ↑((AddUnits.liftRight f g h) x) = f x
-- AddUnits.add_liftRight_neg
@[to_additive (attr := simp)]
theorem mul_liftRight_inv {f : M →* N} {g : M → Nˣ} (h : ∀ x, ↑(g x) = f x) (x) :
    f x * ↑(liftRight f g h x)⁻¹ = 1 
Arguments: {M : Type u} {N : Type v} [AddMonoid M] [AddMonoid N] {f : M →+ N} {g : M → AddUnits N} (h : ∀ (x : M), ↑(g x) = f x) (x : M)
Goal: f x + ↑(-(AddUnits.liftRight f g h) x) = 0
-- Units.mul_liftRight_inv
@[to_additive (attr := simp)]
theorem mul_liftRight_inv {f : M →* N} {g : M → Nˣ} (h : ∀ x, ↑(g x) = f x) (x) :
    f x * ↑(liftRight f g h x)⁻¹ = 1 
Arguments: {M : Type u} {N : Type v} [Monoid M] [Monoid N] {f : M →* N} {g : M → Nˣ} (h : ∀ (x : M), ↑(g x) = f x) (x : M)
Goal: f x * ↑((Units.liftRight f g h) x)⁻¹ = 1
-- Units.liftRight_inv_mul
@[to_additive (attr := simp)]
theorem liftRight_inv_mul {f : M →* N} {g : M → Nˣ} (h : ∀ x, ↑(g x) = f x) (x) :
    ↑(liftRight f g h x)⁻¹ * f x = 1 
Arguments: {M : Type u} {N : Type v} [Monoid M] [Monoid N] {f : M →* N} {g : M → Nˣ} (h : ∀ (x : M), ↑(g x) = f x) (x : M)
Goal: ↑((Units.liftRight f g h) x)⁻¹ * f x = 1
-- AddUnits.liftRight_neg_add
@[to_additive (attr := simp)]
theorem liftRight_inv_mul {f : M →* N} {g : M → Nˣ} (h : ∀ x, ↑(g x) = f x) (x) :
    ↑(liftRight f g h x)⁻¹ * f x = 1 
Arguments: {M : Type u} {N : Type v} [AddMonoid M] [AddMonoid N] {f : M →+ N} {g : M → AddUnits N} (h : ∀ (x : M), ↑(g x) = f x) (x : M)
Goal: ↑(-(AddUnits.liftRight f g h) x) + f x = 0
-- MonoidHom.coe_toHomUnits
@[to_additive (attr := simp)]
theorem coe_toHomUnits {G M : Type*} [Group G] [Monoid M] (f : G →* M) (g : G) :
    (f.toHomUnits g : M) = f g 
Arguments: {G : Type u_1} {M : Type u_2} [Group G] [Monoid M] (f : G →* M) (g : G)
Goal: ↑(f.toHomUnits g) = f g
-- AddMonoidHom.coe_toHomAddUnits
@[to_additive (attr := simp)]
theorem coe_toHomUnits {G M : Type*} [Group G] [Monoid M] (f : G →* M) (g : G) :
    (f.toHomUnits g : M) = f g 
Arguments: {G : Type u_1} {M : Type u_2} [AddGroup G] [AddMonoid M] (f : G →+ M) (g : G)
Goal: ↑(f.toHomAddUnits g) = f g
-- IsAddUnit.map
@[to_additive]
theorem map [MonoidHomClass F M N] (f : F) {x : M} (h : IsUnit x) : IsUnit (f x) 
Arguments: {F : Type u_1} {M : Type u_4} {N : Type u_5} [FunLike F M N] [AddMonoid M] [AddMonoid N] [AddMonoidHomClass F M N] (f : F) {x : M} (h : IsAddUnit x)
Goal: IsAddUnit (f x)
-- IsUnit.map
@[to_additive]
theorem map [MonoidHomClass F M N] (f : F) {x : M} (h : IsUnit x) : IsUnit (f x) 
Arguments: {F : Type u_1} {M : Type u_4} {N : Type u_5} [FunLike F M N] [Monoid M] [Monoid N] [MonoidHomClass F M N] (f : F) {x : M} (h : IsUnit x)
Goal: IsUnit (f x)
-- IsAddUnit.of_leftInverse
@[to_additive]
theorem of_leftInverse [MonoidHomClass G N M] {f : F} {x : M} (g : G)
    (hfg : Function.LeftInverse g f) (h : IsUnit (f x)) : IsUnit x 
Arguments: {F : Type u_1} {G : Type u_2} {M : Type u_4} {N : Type u_5} [FunLike F M N] [FunLike G N M] [AddMonoid M] [AddMonoid N] [AddMonoidHomClass G N M] {f : F} {x : M} (g : G) (hfg : Function.LeftInverse ⇑g ⇑f) (h : IsAddUnit (f x))
Goal: IsAddUnit x
-- IsUnit.of_leftInverse
@[to_additive]
theorem of_leftInverse [MonoidHomClass G N M] {f : F} {x : M} (g : G)
    (hfg : Function.LeftInverse g f) (h : IsUnit (f x)) : IsUnit x 
Arguments: {F : Type u_1} {G : Type u_2} {M : Type u_4} {N : Type u_5} [FunLike F M N] [FunLike G N M] [Monoid M] [Monoid N] [MonoidHomClass G N M] {f : F} {x : M} (g : G) (hfg : Function.LeftInverse ⇑g ⇑f) (h : IsUnit (f x))
Goal: IsUnit x
-- isUnit_map_of_leftInverse
@[to_additive]
theorem _root_.isUnit_map_of_leftInverse [MonoidHomClass F M N] [MonoidHomClass G N M]
    {f : F} {x : M} (g : G) (hfg : Function.LeftInverse g f) :
    IsUnit (f x) ↔ IsUnit x 
Arguments: {F : Type u_1} {G : Type u_2} {M : Type u_4} {N : Type u_5} [FunLike F M N] [FunLike G N M] [Monoid M] [Monoid N] [MonoidHomClass F M N] [MonoidHomClass G N M] {f : F} {x : M} (g : G) (hfg : Function.LeftInverse ⇑g ⇑f)
Goal: IsUnit (f x) ↔ IsUnit x
-- isAddUnit_map_of_leftInverse
@[to_additive]
theorem _root_.isUnit_map_of_leftInverse [MonoidHomClass F M N] [MonoidHomClass G N M]
    {f : F} {x : M} (g : G) (hfg : Function.LeftInverse g f) :
    IsUnit (f x) ↔ IsUnit x 
Arguments: {F : Type u_1} {G : Type u_2} {M : Type u_4} {N : Type u_5} [FunLike F M N] [FunLike G N M] [AddMonoid M] [AddMonoid N] [AddMonoidHomClass F M N] [AddMonoidHomClass G N M] {f : F} {x : M} (g : G) (hfg : Function.LeftInverse ⇑g ⇑f)
Goal: IsAddUnit (f x) ↔ IsAddUnit x
-- IsAddUnit.coe_liftRight
@[to_additive]
theorem coe_liftRight (f : M →* N) (hf : ∀ x, IsUnit (f x)) (x) :
    (IsUnit.liftRight f hf x : N) = f x 
Arguments: {M : Type u_4} {N : Type u_5} [AddMonoid M] [AddMonoid N] (f : M →+ N) (hf : ∀ (x : M), IsAddUnit (f x)) (x : M)
Goal: ↑((IsAddUnit.liftRight f hf) x) = f x
-- IsUnit.coe_liftRight
@[to_additive]
theorem coe_liftRight (f : M →* N) (hf : ∀ x, IsUnit (f x)) (x) :
    (IsUnit.liftRight f hf x : N) = f x 
Arguments: {M : Type u_4} {N : Type u_5} [Monoid M] [Monoid N] (f : M →* N) (hf : ∀ (x : M), IsUnit (f x)) (x : M)
Goal: ↑((IsUnit.liftRight f hf) x) = f x
-- IsUnit.mul_liftRight_inv
@[to_additive (attr := simp)]
theorem mul_liftRight_inv (f : M →* N) (h : ∀ x, IsUnit (f x)) (x) :
    f x * ↑(IsUnit.liftRight f h x)⁻¹ = 1 
Arguments: {M : Type u_4} {N : Type u_5} [Monoid M] [Monoid N] (f : M →* N) (h : ∀ (x : M), IsUnit (f x)) (x : M)
Goal: f x * ↑((IsUnit.liftRight f h) x)⁻¹ = 1
-- IsAddUnit.add_liftRight_neg
@[to_additive (attr := simp)]
theorem mul_liftRight_inv (f : M →* N) (h : ∀ x, IsUnit (f x)) (x) :
    f x * ↑(IsUnit.liftRight f h x)⁻¹ = 1 
Arguments: {M : Type u_4} {N : Type u_5} [AddMonoid M] [AddMonoid N] (f : M →+ N) (h : ∀ (x : M), IsAddUnit (f x)) (x : M)
Goal: f x + ↑(-(IsAddUnit.liftRight f h) x) = 0
-- IsUnit.liftRight_inv_mul
@[to_additive (attr := simp)]
theorem liftRight_inv_mul (f : M →* N) (h : ∀ x, IsUnit (f x)) (x) :
    ↑(IsUnit.liftRight f h x)⁻¹ * f x = 1 
Arguments: {M : Type u_4} {N : Type u_5} [Monoid M] [Monoid N] (f : M →* N) (h : ∀ (x : M), IsUnit (f x)) (x : M)
Goal: ↑((IsUnit.liftRight f h) x)⁻¹ * f x = 1
-- IsAddUnit.liftRight_neg_add
@[to_additive (attr := simp)]
theorem liftRight_inv_mul (f : M →* N) (h : ∀ x, IsUnit (f x)) (x) :
    ↑(IsUnit.liftRight f h x)⁻¹ * f x = 1 
Arguments: {M : Type u_4} {N : Type u_5} [AddMonoid M] [AddMonoid N] (f : M →+ N) (h : ∀ (x : M), IsAddUnit (f x)) (x : M)
Goal: ↑(-(IsAddUnit.liftRight f h) x) + f x = 0
-- SubfieldClass.nnratCast_mem
@[aesop safe apply (rule_sets := [SetLike])]
lemma nnratCast_mem (s : S) (q : ℚ≥0) : (q : K) ∈ s 
Arguments: {K : Type u} [DivisionRing K] {S : Type u_1} [SetLike S K] [h : SubfieldClass S K] (s : S) (q : ℚ≥0)
Goal: ↑q ∈ s
-- SubfieldClass.ratCast_mem
@[aesop safe apply (rule_sets := [SetLike])]
lemma ratCast_mem (s : S) (q : ℚ) : (q : K) ∈ s 
Arguments: {K : Type u} [DivisionRing K] {S : Type u_1} [SetLike S K] [h : SubfieldClass S K] (s : S) (q : ℚ)
Goal: ↑q ∈ s
-- SubfieldClass.coe_nnratCast
@[simp, norm_cast] lemma coe_nnratCast (s : S) (q : ℚ≥0) : ((q : s) : K) = q 
Arguments: {K : Type u} [DivisionRing K] {S : Type u_1} [SetLike S K] [h : SubfieldClass S K] (s : S) (q : ℚ≥0)
Goal: ↑↑q = ↑q
-- SubfieldClass.coe_ratCast
@[simp, norm_cast] lemma coe_ratCast (s : S) (x : ℚ) : ((x : s) : K) = x 
Arguments: {K : Type u} [DivisionRing K] {S : Type u_1} [SetLike S K] [h : SubfieldClass S K] (s : S) (x : ℚ)
Goal: ↑↑x = ↑x
-- SubfieldClass.nnqsmul_mem
@[aesop safe apply (rule_sets := [SetLike])]
lemma nnqsmul_mem (s : S) (q : ℚ≥0) (hx : x ∈ s) : q • x ∈ s 
Arguments: {K : Type u} [DivisionRing K] {S : Type u_1} [SetLike S K] [h : SubfieldClass S K] {x : K} (s : S) (q : ℚ≥0) (hx : x ∈ s)
Goal: q • x ∈ s
-- SubfieldClass.qsmul_mem
@[aesop safe apply (rule_sets := [SetLike])]
lemma qsmul_mem (s : S) (q : ℚ) (hx : x ∈ s) : q • x ∈ s 
Arguments: {K : Type u} [DivisionRing K] {S : Type u_1} [SetLike S K] [h : SubfieldClass S K] {x : K} (s : S) (q : ℚ) (hx : x ∈ s)
Goal: q • x ∈ s
-- SubfieldClass.ofScientific_mem
@[aesop safe apply (rule_sets := [SetLike])]
lemma ofScientific_mem (s : S) {b : Bool} {n m : ℕ} :
    (OfScientific.ofScientific n b m : K) ∈ s 
Arguments: {K : Type u} [DivisionRing K] {S : Type u_1} [SetLike S K] [h : SubfieldClass S K] (s : S) {b : Bool} {n m : ℕ}
Goal: OfScientific.ofScientific n b m ∈ s
-- SubfieldClass.coe_nnqsmul
@[simp, norm_cast] lemma coe_nnqsmul (s : S) (q : ℚ≥0) (x : s) : ↑(q • x) = q • (x : K) 
Arguments: {K : Type u} [DivisionRing K] {S : Type u_1} [SetLike S K] [h : SubfieldClass S K] (s : S) (q : ℚ≥0) (x : ↥s)
Goal: ↑(q • x) = q • ↑x
-- SubfieldClass.coe_qsmul
@[simp, norm_cast] lemma coe_qsmul (s : S) (q : ℚ) (x : s) : ↑(q • x) = q • (x : K) 
Arguments: {K : Type u} [DivisionRing K] {S : Type u_1} [SetLike S K] [h : SubfieldClass S K] (s : S) (q : ℚ) (x : ↥s)
Goal: ↑(q • x) = q • ↑x
-- Subfield.inv_mem'
structure Subfield (K : Type u) [DivisionRing K] extends Subring K where
    inv_mem' : ∀ x ∈ carrier, x⁻¹ ∈ carrier
Arguments: {K : Type u} [DivisionRing K] (self : Subfield K) (x : K)
Goal: x ∈ self.carrier → x⁻¹ ∈ self.carrier
-- Subfield.mem_carrier
theorem mem_carrier {s : Subfield K} {x : K} : x ∈ s.carrier ↔ x ∈ s 
Arguments: {K : Type u} [DivisionRing K] {s : Subfield K} {x : K}
Goal: x ∈ s.carrier ↔ x ∈ s
-- Subfield.mem_mk
@[simp]
theorem mem_mk {S : Subring K} {x : K} (h) : x ∈ (⟨S, h⟩ : Subfield K) ↔ x ∈ S 
Arguments: {K : Type u} [DivisionRing K] {S : Subring K} {x : K} (h : ∀ x ∈ S.carrier, x⁻¹ ∈ S.carrier)
Goal: x ∈ { toSubring := S, inv_mem' := h } ↔ x ∈ S
-- Subfield.coe_set_mk
@[simp]
theorem coe_set_mk (S : Subring K) (h) : ((⟨S, h⟩ : Subfield K) : Set K) = S 
Arguments: {K : Type u} [DivisionRing K] (S : Subring K) (h : ∀ x ∈ S.carrier, x⁻¹ ∈ S.carrier)
Goal: ↑{ toSubring := S, inv_mem' := h } = ↑S
-- Subfield.mk_le_mk
@[simp]
theorem mk_le_mk {S S' : Subring K} (h h') : (⟨S, h⟩ : Subfield K) ≤ (⟨S', h'⟩ : Subfield K) ↔
    S ≤ S' 
Arguments: {K : Type u} [DivisionRing K] {S S' : Subring K} (h : ∀ x ∈ S.carrier, x⁻¹ ∈ S.carrier) (h' : ∀ x ∈ S'.carrier, x⁻¹ ∈ S'.carrier)
Goal: { toSubring := S, inv_mem' := h } ≤ { toSubring := S', inv_mem' := h' } ↔ S ≤ S'
-- Subfield.ext
@[ext]
theorem ext {S T : Subfield K} (h : ∀ x, x ∈ S ↔ x ∈ T) : S = T 
Arguments: {K : Type u} [DivisionRing K] {S T : Subfield K} (h : ∀ (x : K), x ∈ S ↔ x ∈ T)
Goal: S = T
-- Subfield.coe_copy
@[simp]
theorem coe_copy (S : Subfield K) (s : Set K) (hs : s = ↑S) : (S.copy s hs : Set K) = s 
Arguments: {K : Type u} [DivisionRing K] (S : Subfield K) (s : Set K) (hs : s = ↑S)
Goal: ↑(S.copy s hs) = s
-- Subfield.copy_eq
theorem copy_eq (S : Subfield K) (s : Set K) (hs : s = ↑S) : S.copy s hs = S 
Arguments: {K : Type u} [DivisionRing K] (S : Subfield K) (s : Set K) (hs : s = ↑S)
Goal: S.copy s hs = S
-- Subfield.coe_toSubring
@[simp]
theorem coe_toSubring (s : Subfield K) : (s.toSubring : Set K) = s 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K)
Goal: ↑s.toSubring = ↑s
-- Subfield.mem_toSubring
@[simp]
theorem mem_toSubring (s : Subfield K) (x : K) : x ∈ s.toSubring ↔ x ∈ s 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K) (x : K)
Goal: x ∈ s.toSubring ↔ x ∈ s
-- Subfield.one_mem
protected theorem one_mem : (1 : K) ∈ s 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K)
Goal: 1 ∈ s
-- Subfield.zero_mem
protected theorem zero_mem : (0 : K) ∈ s 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K)
Goal: 0 ∈ s
-- Subfield.mul_mem
protected theorem mul_mem {x y : K} : x ∈ s → y ∈ s → x * y ∈ s 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K) {x y : K}
Goal: x ∈ s → y ∈ s → x * y ∈ s
-- Subfield.add_mem
protected theorem add_mem {x y : K} : x ∈ s → y ∈ s → x + y ∈ s 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K) {x y : K}
Goal: x ∈ s → y ∈ s → x + y ∈ s
-- Subfield.neg_mem
protected theorem neg_mem {x : K} : x ∈ s → -x ∈ s 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K) {x : K}
Goal: x ∈ s → -x ∈ s
-- Subfield.sub_mem
protected theorem sub_mem {x y : K} : x ∈ s → y ∈ s → x - y ∈ s 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K) {x y : K}
Goal: x ∈ s → y ∈ s → x - y ∈ s
-- Subfield.inv_mem
protected theorem inv_mem {x : K} : x ∈ s → x⁻¹ ∈ s 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K) {x : K}
Goal: x ∈ s → x⁻¹ ∈ s
-- Subfield.div_mem
protected theorem div_mem {x y : K} : x ∈ s → y ∈ s → x / y ∈ s 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K) {x y : K}
Goal: x ∈ s → y ∈ s → x / y ∈ s
-- Subfield.list_prod_mem
protected theorem list_prod_mem {l : List K} : (∀ x ∈ l, x ∈ s) → l.prod ∈ s 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K) {l : List K}
Goal: (∀ x ∈ l, x ∈ s) → l.prod ∈ s
-- Subfield.list_sum_mem
protected theorem list_sum_mem {l : List K} : (∀ x ∈ l, x ∈ s) → l.sum ∈ s 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K) {l : List K}
Goal: (∀ x ∈ l, x ∈ s) → l.sum ∈ s
-- Subfield.multiset_sum_mem
protected theorem multiset_sum_mem (m : Multiset K) : (∀ a ∈ m, a ∈ s) → m.sum ∈ s 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K) (m : Multiset K)
Goal: (∀ a ∈ m, a ∈ s) → m.sum ∈ s
-- Subfield.sum_mem
protected theorem sum_mem {ι : Type*} {t : Finset ι} {f : ι → K} (h : ∀ c ∈ t, f c ∈ s) :
    (∑ i ∈ t, f i) ∈ s 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K) {ι : Type u_1} {t : Finset ι} {f : ι → K} (h : ∀ c ∈ t, f c ∈ s)
Goal: ∑ i ∈ t, f i ∈ s
-- Subfield.pow_mem
protected theorem pow_mem {x : K} (hx : x ∈ s) (n : ℕ) : x ^ n ∈ s 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K) {x : K} (hx : x ∈ s) (n : ℕ)
Goal: x ^ n ∈ s
-- Subfield.zsmul_mem
protected theorem zsmul_mem {x : K} (hx : x ∈ s) (n : ℤ) : n • x ∈ s 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K) {x : K} (hx : x ∈ s) (n : ℤ)
Goal: n • x ∈ s
-- Subfield.intCast_mem
protected theorem intCast_mem (n : ℤ) : (n : K) ∈ s 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K) (n : ℤ)
Goal: ↑n ∈ s
-- Subfield.zpow_mem
theorem zpow_mem {x : K} (hx : x ∈ s) (n : ℤ) : x ^ n ∈ s 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K) {x : K} (hx : x ∈ s) (n : ℤ)
Goal: x ^ n ∈ s
-- Subfield.coe_add
@[simp, norm_cast]
theorem coe_add (x y : s) : (↑(x + y) : K) = ↑x + ↑y 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K) (x y : ↥s)
Goal: ↑(x + y) = ↑x + ↑y
-- Subfield.coe_sub
@[simp, norm_cast]
theorem coe_sub (x y : s) : (↑(x - y) : K) = ↑x - ↑y 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K) (x y : ↥s)
Goal: ↑(x - y) = ↑x - ↑y
-- Subfield.coe_neg
@[simp, norm_cast]
theorem coe_neg (x : s) : (↑(-x) : K) = -↑x 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K) (x : ↥s)
Goal: ↑(-x) = -↑x
-- Subfield.coe_mul
@[simp, norm_cast]
theorem coe_mul (x y : s) : (↑(x * y) : K) = ↑x * ↑y 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K) (x y : ↥s)
Goal: ↑(x * y) = ↑x * ↑y
-- Subfield.coe_div
@[simp, norm_cast]
theorem coe_div (x y : s) : (↑(x / y) : K) = ↑x / ↑y 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K) (x y : ↥s)
Goal: ↑(x / y) = ↑x / ↑y
-- Subfield.coe_inv
@[simp, norm_cast]
theorem coe_inv (x : s) : (↑x⁻¹ : K) = (↑x)⁻¹ 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K) (x : ↥s)
Goal: ↑x⁻¹ = (↑x)⁻¹
-- Subfield.coe_zero
@[simp, norm_cast]
theorem coe_zero : ((0 : s) : K) = 0 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K)
Goal: ↑0 = 0
-- Subfield.coe_one
@[simp, norm_cast]
theorem coe_one : ((1 : s) : K) = 1 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K)
Goal: ↑1 = 1
-- Subfield.coe_subtype
@[simp]
theorem coe_subtype : ⇑(s.subtype) = ((↑) : s → K) 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K)
Goal: ⇑s.subtype = Subtype.val
-- Subfield.toSubring_subtype_eq_subtype
theorem toSubring_subtype_eq_subtype (S : Subfield K) :
    S.toSubring.subtype = S.subtype 
Arguments: (K : Type u) [DivisionRing K] (S : Subfield K)
Goal: S.subtype = S.subtype
-- Subfield.mem_toSubmonoid
theorem mem_toSubmonoid {s : Subfield K} {x : K} : x ∈ s.toSubmonoid ↔ x ∈ s 
Arguments: {K : Type u} [DivisionRing K] {s : Subfield K} {x : K}
Goal: x ∈ s.toSubmonoid ↔ x ∈ s
-- Subfield.coe_toSubmonoid
@[simp]
theorem coe_toSubmonoid : (s.toSubmonoid : Set K) = s 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K)
Goal: ↑s.toSubmonoid = ↑s
-- Subfield.mem_toAddSubgroup
@[simp]
theorem mem_toAddSubgroup {s : Subfield K} {x : K} : x ∈ s.toAddSubgroup ↔ x ∈ s 
Arguments: {K : Type u} [DivisionRing K] {s : Subfield K} {x : K}
Goal: x ∈ s.toAddSubgroup ↔ x ∈ s
-- Subfield.coe_toAddSubgroup
@[simp]
theorem coe_toAddSubgroup : (s.toAddSubgroup : Set K) = s 
Arguments: {K : Type u} [DivisionRing K] (s : Subfield K)
Goal: ↑s.toAddSubgroup = ↑s
-- Subfield.mem_top
@[simp]
theorem mem_top (x : K) : x ∈ (⊤ : Subfield K) 
Arguments: {K : Type u} [DivisionRing K] (x : K)
Goal: x ∈ ⊤
-- Subfield.coe_top
@[simp]
theorem coe_top : ((⊤ : Subfield K) : Set K) = Set.univ 
Arguments: {K : Type u} [DivisionRing K]
Goal: ↑⊤ = Set.univ
-- Subfield.coe_comap
@[simp]
theorem coe_comap (s : Subfield L) : (s.comap f : Set K) = f ⁻¹' s 
Arguments: {K : Type u} {L : Type v} [DivisionRing K] [DivisionRing L] (f : K →+* L) (s : Subfield L)
Goal: ↑(Subfield.comap f s) = ⇑f ⁻¹' ↑s
-- Subfield.mem_comap
@[simp]
theorem mem_comap {s : Subfield L} {f : K →+* L} {x : K} : x ∈ s.comap f ↔ f x ∈ s 
Arguments: {K : Type u} {L : Type v} [DivisionRing K] [DivisionRing L] {s : Subfield L} {f : K →+* L} {x : K}
Goal: x ∈ Subfield.comap f s ↔ f x ∈ s
-- Subfield.comap_comap
theorem comap_comap (s : Subfield M) (g : L →+* M) (f : K →+* L) :
    (s.comap g).comap f = s.comap (g.comp f) 
Arguments: {K : Type u} {L : Type v} {M : Type w} [DivisionRing K] [DivisionRing L] [DivisionRing M] (s : Subfield M) (g : L →+* M) (f : K →+* L)
Goal: Subfield.comap f (Subfield.comap g s) = Subfield.comap (g.comp f) s
-- Subfield.coe_map
@[simp]
theorem coe_map : (s.map f : Set L) = f '' s 
Arguments: {K : Type u} {L : Type v} [DivisionRing K] [DivisionRing L] (s : Subfield K) (f : K →+* L)
Goal: ↑(Subfield.map f s) = ⇑f '' ↑s