ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- RingEquiv.image_eq_preimage
theorem image_eq_preimage (e : R ≃+* S) (s : Set R) : e '' s = e.symm ⁻¹' s 
Arguments: {R : Type u_4} {S : Type u_5} [Mul R] [Mul S] [Add R] [Add S] (e : R ≃+* S) (s : Set R)
Goal: ⇑e '' s = ⇑e.symm ⁻¹' s
-- RingEquiv.coe_mulEquiv_trans
@[simp]
theorem coe_mulEquiv_trans (e₁ : R ≃+* S) (e₂ : S ≃+* S') :
    (e₁.trans e₂ : R ≃* S') = (e₁ : R ≃* S).trans ↑e₂ 
Arguments: {R : Type u_4} {S : Type u_5} {S' : Type u_6} [Mul R] [Mul S] [Add R] [Add S] [Mul S'] [Add S'] (e₁ : R ≃+* S) (e₂ : S ≃+* S')
Goal: ↑(e₁.trans e₂) = (↑e₁).trans ↑e₂
-- RingEquiv.coe_addEquiv_trans
@[simp]
theorem coe_addEquiv_trans (e₁ : R ≃+* S) (e₂ : S ≃+* S') :
    (e₁.trans e₂ : R ≃+ S') = (e₁ : R ≃+ S).trans ↑e₂ 
Arguments: {R : Type u_4} {S : Type u_5} {S' : Type u_6} [Mul R] [Mul S] [Add R] [Add S] [Mul S'] [Add S'] (e₁ : R ≃+* S) (e₂ : S ≃+* S')
Goal: ↑(e₁.trans e₂) = (↑e₁).trans ↑e₂
-- RingEquiv.op_apply_symm_apply
@[simps! symm_apply_apply symm_apply_symm_apply apply_apply apply_symm_apply]
protected def op {α β} [Add α] [Mul α] [Add β] [Mul β] :
    α ≃+* β ≃ (αᵐᵒᵖ ≃+* βᵐᵒᵖ) 
Arguments: {α : Type u_7} {β : Type u_8} [Add α] [Mul α] [Add β] [Mul β] (f : α ≃+* β)
Goal: ∀ (a : βᵐᵒᵖ), (RingEquiv.op f).symm a = MulOpposite.op ((↑f).symm (MulOpposite.unop a))
-- RingEquiv.op_symm_apply_symm_apply
@[simps! symm_apply_apply symm_apply_symm_apply apply_apply apply_symm_apply]
protected def op {α β} [Add α] [Mul α] [Add β] [Mul β] :
    α ≃+* β ≃ (αᵐᵒᵖ ≃+* βᵐᵒᵖ) 
Arguments: {α : Type u_7} {β : Type u_8} [Add α] [Mul α] [Add β] [Mul β] (f : αᵐᵒᵖ ≃+* βᵐᵒᵖ)
Goal: ∀ (a : β), (RingEquiv.op.symm f).symm a = MulOpposite.unop ((↑f).symm (MulOpposite.op a))
-- RingEquiv.op_symm_apply_apply
@[simps! symm_apply_apply symm_apply_symm_apply apply_apply apply_symm_apply]
protected def op {α β} [Add α] [Mul α] [Add β] [Mul β] :
    α ≃+* β ≃ (αᵐᵒᵖ ≃+* βᵐᵒᵖ) 
Arguments: {α : Type u_7} {β : Type u_8} [Add α] [Mul α] [Add β] [Mul β] (f : αᵐᵒᵖ ≃+* βᵐᵒᵖ)
Goal: ∀ (a : α), (RingEquiv.op.symm f) a = MulOpposite.unop (f (MulOpposite.op a))
-- RingEquiv.op_apply_apply
@[simps! symm_apply_apply symm_apply_symm_apply apply_apply apply_symm_apply]
protected def op {α β} [Add α] [Mul α] [Add β] [Mul β] :
    α ≃+* β ≃ (αᵐᵒᵖ ≃+* βᵐᵒᵖ) 
Arguments: {α : Type u_7} {β : Type u_8} [Add α] [Mul α] [Add β] [Mul β] (f : α ≃+* β)
Goal: ∀ (a : αᵐᵒᵖ), (RingEquiv.op f) a = MulOpposite.op (f (MulOpposite.unop a))
-- RingEquiv.opOp_apply
@[simps!]
def opOp (R : Type*) [Add R] [Mul R] : R ≃+* Rᵐᵒᵖᵐᵒᵖ 
Arguments: (R : Type u_7) [Add R] [Mul R]
Goal: ∀ (a : R), (RingEquiv.opOp R) a = MulOpposite.op (MulOpposite.op a)
-- RingEquiv.opOp_symm_apply
@[simps!]
def opOp (R : Type*) [Add R] [Mul R] : R ≃+* Rᵐᵒᵖᵐᵒᵖ 
Arguments: (R : Type u_7) [Add R] [Mul R]
Goal: ∀ (a : Rᵐᵒᵖᵐᵒᵖ), (RingEquiv.opOp R).symm a = MulOpposite.unop (MulOpposite.unop a)
-- RingEquiv.toOpposite_apply
@[simp]
theorem toOpposite_apply (r : R) : toOpposite R r = op r 
Arguments: (R : Type u_4) [NonUnitalCommSemiring R] (r : R)
Goal: (RingEquiv.toOpposite R) r = MulOpposite.op r
-- RingEquiv.toOpposite_symm_apply
@[simp]
theorem toOpposite_symm_apply (r : Rᵐᵒᵖ) : (toOpposite R).symm r = unop r 
Arguments: (R : Type u_4) [NonUnitalCommSemiring R] (r : Rᵐᵒᵖ)
Goal: (RingEquiv.toOpposite R).symm r = MulOpposite.unop r
-- RingEquiv.map_zero
protected theorem map_zero : f 0 = 0 
Arguments: {R : Type u_4} {S : Type u_5} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] (f : R ≃+* S)
Goal: f 0 = 0
-- RingEquiv.map_eq_zero_iff
protected theorem map_eq_zero_iff : f x = 0 ↔ x = 0 
Arguments: {R : Type u_4} {S : Type u_5} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] (f : R ≃+* S) {x : R}
Goal: f x = 0 ↔ x = 0
-- RingEquiv.map_ne_zero_iff
theorem map_ne_zero_iff : f x ≠ 0 ↔ x ≠ 0 
Arguments: {R : Type u_4} {S : Type u_5} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] (f : R ≃+* S) {x : R}
Goal: f x ≠ 0 ↔ x ≠ 0
-- RingEquiv.coe_ofBijective
@[simp]
theorem coe_ofBijective [NonUnitalRingHomClass F R S] (f : F) (hf : Function.Bijective f) :
    (ofBijective f hf : R → S) = f 
Arguments: {F : Type u_1} {R : Type u_4} {S : Type u_5} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] [FunLike F R S] [NonUnitalRingHomClass F R S] (f : F) (hf : Function.Bijective ⇑f)
Goal: ⇑(RingEquiv.ofBijective f hf) = ⇑f
-- RingEquiv.ofBijective_apply
theorem ofBijective_apply [NonUnitalRingHomClass F R S] (f : F) (hf : Function.Bijective f)
    (x : R) : ofBijective f hf x = f x 
Arguments: {F : Type u_1} {R : Type u_4} {S : Type u_5} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] [FunLike F R S] [NonUnitalRingHomClass F R S] (f : F) (hf : Function.Bijective ⇑f) (x : R)
Goal: (RingEquiv.ofBijective f hf) x = f x
-- RingEquiv.piCongrRight_apply
@[simps apply]
def piCongrRight {ι : Type*} {R S : ι → Type*} [∀ i, NonUnitalNonAssocSemiring (R i)]
    [∀ i, NonUnitalNonAssocSemiring (S i)] (e : ∀ i, R i ≃+* S i) : (∀ i, R i) ≃+* ∀ i, S i 
Arguments: {ι : Type u_7} {R : ι → Type u_8} {S : ι → Type u_9} [(i : ι) → NonUnitalNonAssocSemiring (R i)] [(i : ι) → NonUnitalNonAssocSemiring (S i)] (e : (i : ι) → R i ≃+* S i) (x : (i : ι) → R i) (j : ι)
Goal: (RingEquiv.piCongrRight e) x j = (e j) (x j)
-- RingEquiv.piCongrRight_refl
@[simp]
theorem piCongrRight_refl {ι : Type*} {R : ι → Type*} [∀ i, NonUnitalNonAssocSemiring (R i)] :
    (piCongrRight fun i => RingEquiv.refl (R i)) = RingEquiv.refl _ 
Arguments: {ι : Type u_7} {R : ι → Type u_8} [(i : ι) → NonUnitalNonAssocSemiring (R i)]
Goal: (RingEquiv.piCongrRight fun i => RingEquiv.refl (R i)) = RingEquiv.refl ((i : ι) → R i)
-- RingEquiv.piCongrRight_symm
@[simp]
theorem piCongrRight_symm {ι : Type*} {R S : ι → Type*} [∀ i, NonUnitalNonAssocSemiring (R i)]
    [∀ i, NonUnitalNonAssocSemiring (S i)] (e : ∀ i, R i ≃+* S i) :
    (piCongrRight e).symm = piCongrRight fun i => (e i).symm 
Arguments: {ι : Type u_7} {R : ι → Type u_8} {S : ι → Type u_9} [(i : ι) → NonUnitalNonAssocSemiring (R i)] [(i : ι) → NonUnitalNonAssocSemiring (S i)] (e : (i : ι) → R i ≃+* S i)
Goal: (RingEquiv.piCongrRight e).symm = RingEquiv.piCongrRight fun i => (e i).symm
-- RingEquiv.piCongrRight_trans
@[simp]
theorem piCongrRight_trans {ι : Type*} {R S T : ι → Type*}
    [∀ i, NonUnitalNonAssocSemiring (R i)] [∀ i, NonUnitalNonAssocSemiring (S i)]
    [∀ i, NonUnitalNonAssocSemiring (T i)] (e : ∀ i, R i ≃+* S i) (f : ∀ i, S i ≃+* T i) :
    (piCongrRight e).trans (piCongrRight f) = piCongrRight fun i => (e i).trans (f i) 
Arguments: {ι : Type u_7} {R : ι → Type u_8} {S : ι → Type u_9} {T : ι → Type u_10} [(i : ι) → NonUnitalNonAssocSemiring (R i)] [(i : ι) → NonUnitalNonAssocSemiring (S i)] [(i : ι) → NonUnitalNonAssocSemiring (T i)] (e : (i : ι) → R i ≃+* S i) (f : (i : ι) → S i ≃+* T i)
Goal: (RingEquiv.piCongrRight e).trans (RingEquiv.piCongrRight f) = RingEquiv.piCongrRight fun i => (e i).trans (f i)
-- RingEquiv.map_one
protected theorem map_one : f 1 = 1 
Arguments: {R : Type u_4} {S : Type u_5} [NonAssocSemiring R] [NonAssocSemiring S] (f : R ≃+* S)
Goal: f 1 = 1
-- RingEquiv.map_eq_one_iff
protected theorem map_eq_one_iff : f x = 1 ↔ x = 1 
Arguments: {R : Type u_4} {S : Type u_5} [NonAssocSemiring R] [NonAssocSemiring S] (f : R ≃+* S) {x : R}
Goal: f x = 1 ↔ x = 1
-- RingEquiv.map_ne_one_iff
theorem map_ne_one_iff : f x ≠ 1 ↔ x ≠ 1 
Arguments: {R : Type u_4} {S : Type u_5} [NonAssocSemiring R] [NonAssocSemiring S] (f : R ≃+* S) {x : R}
Goal: f x ≠ 1 ↔ x ≠ 1
-- RingEquiv.coe_monoidHom_refl
theorem coe_monoidHom_refl : (RingEquiv.refl R : R →* R) = MonoidHom.id R 
Arguments: {R : Type u_4} [NonAssocSemiring R]
Goal: ↑(RingEquiv.refl R) = MonoidHom.id R
-- RingEquiv.coe_addMonoidHom_refl
@[simp]
theorem coe_addMonoidHom_refl : (RingEquiv.refl R : R →+ R) = AddMonoidHom.id R 
Arguments: {R : Type u_4} [NonAssocSemiring R]
Goal: ↑(RingEquiv.refl R) = AddMonoidHom.id R
-- RingEquiv.coe_ringHom_refl
@[simp]
theorem coe_ringHom_refl : (RingEquiv.refl R : R →+* R) = RingHom.id R 
Arguments: {R : Type u_4} [NonAssocSemiring R]
Goal: ↑(RingEquiv.refl R) = RingHom.id R
-- RingEquiv.coe_monoidHom_trans
@[simp]
theorem coe_monoidHom_trans [NonAssocSemiring S'] (e₁ : R ≃+* S) (e₂ : S ≃+* S') :
    (e₁.trans e₂ : R →* S') = (e₂ : S →* S').comp ↑e₁ 
Arguments: {R : Type u_4} {S : Type u_5} {S' : Type u_6} [NonAssocSemiring R] [NonAssocSemiring S] [NonAssocSemiring S'] (e₁ : R ≃+* S) (e₂ : S ≃+* S')
Goal: ↑(e₁.trans e₂) = (↑e₂).comp ↑e₁
-- RingEquiv.coe_addMonoidHom_trans
@[simp]
theorem coe_addMonoidHom_trans [NonAssocSemiring S'] (e₁ : R ≃+* S) (e₂ : S ≃+* S') :
    (e₁.trans e₂ : R →+ S') = (e₂ : S →+ S').comp ↑e₁ 
Arguments: {R : Type u_4} {S : Type u_5} {S' : Type u_6} [NonAssocSemiring R] [NonAssocSemiring S] [NonAssocSemiring S'] (e₁ : R ≃+* S) (e₂ : S ≃+* S')
Goal: ↑(e₁.trans e₂) = (↑e₂).comp ↑e₁
-- RingEquiv.coe_ringHom_trans
@[simp]
theorem coe_ringHom_trans [NonAssocSemiring S'] (e₁ : R ≃+* S) (e₂ : S ≃+* S') :
    (e₁.trans e₂ : R →+* S') = (e₂ : S →+* S').comp ↑e₁ 
Arguments: {R : Type u_4} {S : Type u_5} {S' : Type u_6} [NonAssocSemiring R] [NonAssocSemiring S] [NonAssocSemiring S'] (e₁ : R ≃+* S) (e₂ : S ≃+* S')
Goal: ↑(e₁.trans e₂) = (↑e₂).comp ↑e₁
-- RingEquiv.comp_symm
@[simp]
theorem comp_symm (e : R ≃+* S) : (e : R →+* S).comp (e.symm : S →+* R) = RingHom.id S 
Arguments: {R : Type u_4} {S : Type u_5} [NonAssocSemiring R] [NonAssocSemiring S] (e : R ≃+* S)
Goal: (↑e).comp ↑e.symm = RingHom.id S
-- RingEquiv.symm_comp
@[simp]
theorem symm_comp (e : R ≃+* S) : (e.symm : S →+* R).comp (e : R →+* S) = RingHom.id R 
Arguments: {R : Type u_4} {S : Type u_5} [NonAssocSemiring R] [NonAssocSemiring S] (e : R ≃+* S)
Goal: (↑e.symm).comp ↑e = RingHom.id R
-- RingEquiv.map_neg
protected theorem map_neg : f (-x) = -f x 
Arguments: {R : Type u_4} {S : Type u_5} [NonUnitalNonAssocRing R] [NonUnitalNonAssocRing S] (f : R ≃+* S) (x : R)
Goal: f (-x) = -f x
-- RingEquiv.map_sub
protected theorem map_sub : f (x - y) = f x - f y 
Arguments: {R : Type u_4} {S : Type u_5} [NonUnitalNonAssocRing R] [NonUnitalNonAssocRing S] (f : R ≃+* S) (x y : R)
Goal: f (x - y) = f x - f y
-- RingEquiv.map_neg_one
theorem map_neg_one : f (-1) = -1 
Arguments: {R : Type u_4} {S : Type u_5} [NonAssocRing R] [NonAssocRing S] (f : R ≃+* S)
Goal: f (-1) = -1
-- RingEquiv.map_eq_neg_one_iff
theorem map_eq_neg_one_iff {x : R} : f x = -1 ↔ x = -1 
Arguments: {R : Type u_4} {S : Type u_5} [NonAssocRing R] [NonAssocRing S] (f : R ≃+* S) {x : R}
Goal: f x = -1 ↔ x = -1
-- RingEquiv.toNonUnitalRingHom_injective
theorem toNonUnitalRingHom_injective :
    Function.Injective (toNonUnitalRingHom : R ≃+* S → R →ₙ+* S) 
Arguments: {R : Type u_4} {S : Type u_5} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S]
Goal: Function.Injective RingEquiv.toNonUnitalRingHom
-- RingEquiv.toNonUnitalRingHom_eq_coe
theorem toNonUnitalRingHom_eq_coe (f : R ≃+* S) : f.toNonUnitalRingHom = ↑f 
Arguments: {R : Type u_4} {S : Type u_5} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] (f : R ≃+* S)
Goal: f.toNonUnitalRingHom = ↑f
-- RingEquiv.coe_toNonUnitalRingHom
@[simp, norm_cast]
theorem coe_toNonUnitalRingHom (f : R ≃+* S) : ⇑(f : R →ₙ+* S) = f 
Arguments: {R : Type u_4} {S : Type u_5} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] (f : R ≃+* S)
Goal: ⇑↑f = ⇑f
-- RingEquiv.coe_nonUnitalRingHom_inj_iff
theorem coe_nonUnitalRingHom_inj_iff {R S : Type*} [NonUnitalNonAssocSemiring R]
    [NonUnitalNonAssocSemiring S] (f g : R ≃+* S) : f = g ↔ (f : R →ₙ+* S) = g 
Arguments: {R : Type u_7} {S : Type u_8} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] (f g : R ≃+* S)
Goal: f = g ↔ ↑f = ↑g
-- RingEquiv.toNonUnitalRingHom_refl
@[simp]
theorem toNonUnitalRingHom_refl :
    (RingEquiv.refl R).toNonUnitalRingHom = NonUnitalRingHom.id R 
Arguments: {R : Type u_4} [NonUnitalNonAssocSemiring R]
Goal: (RingEquiv.refl R).toNonUnitalRingHom = NonUnitalRingHom.id R
-- RingEquiv.toNonUnitalRingHom_apply_symm_toNonUnitalRingHom_apply
@[simp]
theorem toNonUnitalRingHom_apply_symm_toNonUnitalRingHom_apply (e : R ≃+* S) :
    ∀ y : S, e.toNonUnitalRingHom (e.symm.toNonUnitalRingHom y) = y 
Arguments: {R : Type u_4} {S : Type u_5} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] (e : R ≃+* S) (y : S)
Goal: e.toNonUnitalRingHom (e.symm.toNonUnitalRingHom y) = y
-- RingEquiv.symm_toNonUnitalRingHom_apply_toNonUnitalRingHom_apply
@[simp]
theorem symm_toNonUnitalRingHom_apply_toNonUnitalRingHom_apply (e : R ≃+* S) :
    ∀ x : R, e.symm.toNonUnitalRingHom (e.toNonUnitalRingHom x) = x 
Arguments: {R : Type u_4} {S : Type u_5} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] (e : R ≃+* S) (x : R)
Goal: e.symm.toNonUnitalRingHom (e.toNonUnitalRingHom x) = x
-- RingEquiv.toNonUnitalRingHom_trans
@[simp]
theorem toNonUnitalRingHom_trans (e₁ : R ≃+* S) (e₂ : S ≃+* S') :
    (e₁.trans e₂).toNonUnitalRingHom = e₂.toNonUnitalRingHom.comp e₁.toNonUnitalRingHom 
Arguments: {R : Type u_4} {S : Type u_5} {S' : Type u_6} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] [NonUnitalNonAssocSemiring S'] (e₁ : R ≃+* S) (e₂ : S ≃+* S')
Goal: (e₁.trans e₂).toNonUnitalRingHom = e₂.toNonUnitalRingHom.comp e₁.toNonUnitalRingHom
-- RingEquiv.toNonUnitalRingHomm_comp_symm_toNonUnitalRingHom
@[simp]
theorem toNonUnitalRingHomm_comp_symm_toNonUnitalRingHom (e : R ≃+* S) :
    e.toNonUnitalRingHom.comp e.symm.toNonUnitalRingHom = NonUnitalRingHom.id _ 
Arguments: {R : Type u_4} {S : Type u_5} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] (e : R ≃+* S)
Goal: e.toNonUnitalRingHom.comp e.symm.toNonUnitalRingHom = NonUnitalRingHom.id S
-- RingEquiv.symm_toNonUnitalRingHom_comp_toNonUnitalRingHom
@[simp]
theorem symm_toNonUnitalRingHom_comp_toNonUnitalRingHom (e : R ≃+* S) :
    e.symm.toNonUnitalRingHom.comp e.toNonUnitalRingHom = NonUnitalRingHom.id _ 
Arguments: {R : Type u_4} {S : Type u_5} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] (e : R ≃+* S)
Goal: e.symm.toNonUnitalRingHom.comp e.toNonUnitalRingHom = NonUnitalRingHom.id R
-- RingEquiv.toRingHom_injective
theorem toRingHom_injective : Function.Injective (toRingHom : R ≃+* S → R →+* S) 
Arguments: {R : Type u_4} {S : Type u_5} [NonAssocSemiring R] [NonAssocSemiring S]
Goal: Function.Injective RingEquiv.toRingHom
-- RingEquiv.toRingHom_eq_coe
@[simp] theorem toRingHom_eq_coe (f : R ≃+* S) : f.toRingHom = ↑f 
Arguments: {R : Type u_4} {S : Type u_5} [NonAssocSemiring R] [NonAssocSemiring S] (f : R ≃+* S)
Goal: f.toRingHom = ↑f
-- RingEquiv.coe_toRingHom
@[simp, norm_cast]
theorem coe_toRingHom (f : R ≃+* S) : ⇑(f : R →+* S) = f 
Arguments: {R : Type u_4} {S : Type u_5} [NonAssocSemiring R] [NonAssocSemiring S] (f : R ≃+* S)
Goal: ⇑↑f = ⇑f
-- RingEquiv.coe_ringHom_inj_iff
theorem coe_ringHom_inj_iff {R S : Type*} [NonAssocSemiring R] [NonAssocSemiring S]
    (f g : R ≃+* S) : f = g ↔ (f : R →+* S) = g 
Arguments: {R : Type u_7} {S : Type u_8} [NonAssocSemiring R] [NonAssocSemiring S] (f g : R ≃+* S)
Goal: f = g ↔ ↑f = ↑g
-- RingEquiv.toNonUnitalRingHom_commutes
@[simp, norm_cast]
theorem toNonUnitalRingHom_commutes (f : R ≃+* S) :
    ((f : R →+* S) : R →ₙ+* S) = (f : R →ₙ+* S) 
Arguments: {R : Type u_4} {S : Type u_5} [NonAssocSemiring R] [NonAssocSemiring S] (f : R ≃+* S)
Goal: ↑↑f = ↑f
-- RingEquiv.toAddMonoidMom_commutes
theorem toAddMonoidMom_commutes (f : R ≃+* S) :
    (f : R →+* S).toAddMonoidHom = (f : R ≃+ S).toAddMonoidHom 
Arguments: {R : Type u_4} {S : Type u_5} [NonAssocSemiring R] [NonAssocSemiring S] (f : R ≃+* S)
Goal: (↑f).toAddMonoidHom = (↑f).toAddMonoidHom
-- RingEquiv.toMonoidHom_commutes
theorem toMonoidHom_commutes (f : R ≃+* S) :
    (f : R →+* S).toMonoidHom = (f : R ≃* S).toMonoidHom 
Arguments: {R : Type u_4} {S : Type u_5} [NonAssocSemiring R] [NonAssocSemiring S] (f : R ≃+* S)
Goal: ↑↑f = (↑f).toMonoidHom
-- RingEquiv.toEquiv_commutes
theorem toEquiv_commutes (f : R ≃+* S) : (f : R ≃+ S).toEquiv = (f : R ≃* S).toEquiv 
Arguments: {R : Type u_4} {S : Type u_5} [NonAssocSemiring R] [NonAssocSemiring S] (f : R ≃+* S)
Goal: (↑f).toEquiv = (↑f).toEquiv
-- RingEquiv.toRingHom_refl
@[simp]
theorem toRingHom_refl : (RingEquiv.refl R).toRingHom = RingHom.id R 
Arguments: {R : Type u_4} [NonAssocSemiring R]
Goal: (RingEquiv.refl R).toRingHom = RingHom.id R
-- RingEquiv.toMonoidHom_refl
@[simp]
theorem toMonoidHom_refl : (RingEquiv.refl R).toMonoidHom = MonoidHom.id R 
Arguments: {R : Type u_4} [NonAssocSemiring R]
Goal: (RingEquiv.refl R).toMonoidHom = MonoidHom.id R
-- RingEquiv.toAddMonoidHom_refl
@[simp]
theorem toAddMonoidHom_refl : (RingEquiv.refl R).toAddMonoidHom = AddMonoidHom.id R 
Arguments: {R : Type u_4} [NonAssocSemiring R]
Goal: (RingEquiv.refl R).toAddMonoidHom = AddMonoidHom.id R
-- RingEquiv.toRingHom_apply_symm_toRingHom_apply
theorem toRingHom_apply_symm_toRingHom_apply (e : R ≃+* S) :
    ∀ y : S, e.toRingHom (e.symm.toRingHom y) = y 
Arguments: {R : Type u_4} {S : Type u_5} [NonAssocSemiring R] [NonAssocSemiring S] (e : R ≃+* S) (y : S)
Goal: e.toRingHom (e.symm.toRingHom y) = y
-- RingEquiv.symm_toRingHom_apply_toRingHom_apply
theorem symm_toRingHom_apply_toRingHom_apply (e : R ≃+* S) :
    ∀ x : R, e.symm.toRingHom (e.toRingHom x) = x 
Arguments: {R : Type u_4} {S : Type u_5} [NonAssocSemiring R] [NonAssocSemiring S] (e : R ≃+* S) (x : R)
Goal: e.symm.toRingHom (e.toRingHom x) = x
-- RingEquiv.toRingHom_trans
@[simp]
theorem toRingHom_trans (e₁ : R ≃+* S) (e₂ : S ≃+* S') :
    (e₁.trans e₂).toRingHom = e₂.toRingHom.comp e₁.toRingHom 
Arguments: {R : Type u_4} {S : Type u_5} {S' : Type u_6} [NonAssocSemiring R] [NonAssocSemiring S] [NonAssocSemiring S'] (e₁ : R ≃+* S) (e₂ : S ≃+* S')
Goal: (e₁.trans e₂).toRingHom = e₂.toRingHom.comp e₁.toRingHom
-- RingEquiv.toRingHom_comp_symm_toRingHom
theorem toRingHom_comp_symm_toRingHom (e : R ≃+* S) :
    e.toRingHom.comp e.symm.toRingHom = RingHom.id _ 
Arguments: {R : Type u_4} {S : Type u_5} [NonAssocSemiring R] [NonAssocSemiring S] (e : R ≃+* S)
Goal: e.toRingHom.comp e.symm.toRingHom = RingHom.id S
-- RingEquiv.symm_toRingHom_comp_toRingHom
theorem symm_toRingHom_comp_toRingHom (e : R ≃+* S) :
    e.symm.toRingHom.comp e.toRingHom = RingHom.id _ 
Arguments: {R : Type u_4} {S : Type u_5} [NonAssocSemiring R] [NonAssocSemiring S] (e : R ≃+* S)
Goal: e.symm.toRingHom.comp e.toRingHom = RingHom.id R
-- RingEquiv.ofHomInv'_apply
@[simps]
def ofHomInv' {R S F G : Type*} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S]
    [FunLike F R S] [FunLike G S R]
    [NonUnitalRingHomClass F R S] [NonUnitalRingHomClass G S R] (hom : F) (inv : G)
    (hom_inv_id : (inv : S →ₙ+* R).comp (hom : R →ₙ+* S) = NonUnitalRingHom.id R)
    (inv_hom_id : (hom : R →ₙ+* S).comp (inv : S →ₙ+* R) = NonUnitalRingHom.id S) :
    R ≃+* S 
Arguments: {R : Type u_7} {S : Type u_8} {F : Type u_9} {G : Type u_10} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] [FunLike F R S] [FunLike G S R] [NonUnitalRingHomClass F R S] [NonUnitalRingHomClass G S R] (hom : F) (inv : G) (hom_inv_id : (↑inv).comp ↑hom = NonUnitalRingHom.id R) (inv_hom_id : (↑hom).comp ↑inv = NonUnitalRingHom.id S) (a : R)
Goal: (RingEquiv.ofHomInv' hom inv hom_inv_id inv_hom_id) a = hom a
-- RingEquiv.ofHomInv'_symm_apply
@[simps]
def ofHomInv' {R S F G : Type*} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S]
    [FunLike F R S] [FunLike G S R]
    [NonUnitalRingHomClass F R S] [NonUnitalRingHomClass G S R] (hom : F) (inv : G)
    (hom_inv_id : (inv : S →ₙ+* R).comp (hom : R →ₙ+* S) = NonUnitalRingHom.id R)
    (inv_hom_id : (hom : R →ₙ+* S).comp (inv : S →ₙ+* R) = NonUnitalRingHom.id S) :
    R ≃+* S 
Arguments: {R : Type u_7} {S : Type u_8} {F : Type u_9} {G : Type u_10} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] [FunLike F R S] [FunLike G S R] [NonUnitalRingHomClass F R S] [NonUnitalRingHomClass G S R] (hom : F) (inv : G) (hom_inv_id : (↑inv).comp ↑hom = NonUnitalRingHom.id R) (inv_hom_id : (↑hom).comp ↑inv = NonUnitalRingHom.id S) (a : S)
Goal: (RingEquiv.ofHomInv' hom inv hom_inv_id inv_hom_id).symm a = inv a
-- RingEquiv.ofHomInv_symm_apply
@[simps]
def ofHomInv {R S F G : Type*} [NonAssocSemiring R] [NonAssocSemiring S]
    [FunLike F R S] [FunLike G S R] [RingHomClass F R S]
    [RingHomClass G S R] (hom : F) (inv : G)
    (hom_inv_id : (inv : S →+* R).comp (hom : R →+* S) = RingHom.id R)
    (inv_hom_id : (hom : R →+* S).comp (inv : S →+* R) = RingHom.id S) :
    R ≃+* S 
Arguments: {R : Type u_7} {S : Type u_8} {F : Type u_9} {G : Type u_10} [NonAssocSemiring R] [NonAssocSemiring S] [FunLike F R S] [FunLike G S R] [RingHomClass F R S] [RingHomClass G S R] (hom : F) (inv : G) (hom_inv_id : (↑inv).comp ↑hom = RingHom.id R) (inv_hom_id : (↑hom).comp ↑inv = RingHom.id S) (a : S)
Goal: (RingEquiv.ofHomInv hom inv hom_inv_id inv_hom_id).symm a = inv a
-- RingEquiv.ofHomInv_apply
@[simps]
def ofHomInv {R S F G : Type*} [NonAssocSemiring R] [NonAssocSemiring S]
    [FunLike F R S] [FunLike G S R] [RingHomClass F R S]
    [RingHomClass G S R] (hom : F) (inv : G)
    (hom_inv_id : (inv : S →+* R).comp (hom : R →+* S) = RingHom.id R)
    (inv_hom_id : (hom : R →+* S).comp (inv : S →+* R) = RingHom.id S) :
    R ≃+* S 
Arguments: {R : Type u_7} {S : Type u_8} {F : Type u_9} {G : Type u_10} [NonAssocSemiring R] [NonAssocSemiring S] [FunLike F R S] [FunLike G S R] [RingHomClass F R S] [RingHomClass G S R] (hom : F) (inv : G) (hom_inv_id : (↑inv).comp ↑hom = RingHom.id R) (inv_hom_id : (↑hom).comp ↑inv = RingHom.id S) (a : R)
Goal: (RingEquiv.ofHomInv hom inv hom_inv_id inv_hom_id) a = hom a
-- RingEquiv.map_pow
protected theorem map_pow (f : R ≃+* S) (a) : ∀ n : ℕ, f (a ^ n) = f a ^ n 
Arguments: {R : Type u_4} {S : Type u_5} [Semiring R] [Semiring S] (f : R ≃+* S) (a : R) (n : ℕ)
Goal: f (a ^ n) = f a ^ n
-- RingEquiv.isUnit_iff
protected theorem isUnit_iff (f : R ≃+* S) {a} : IsUnit (f a) ↔ IsUnit a 
Arguments: {R : Type u_4} {S : Type u_5} [Semiring R] [Semiring S] (f : R ≃+* S) {a : R}
Goal: IsUnit (f a) ↔ IsUnit a
-- RingEquiv.self_trans_symm
@[simp]
theorem self_trans_symm (e : R ≃+* S) : e.trans e.symm = RingEquiv.refl R 
Arguments: {R : Type u_4} {S : Type u_5} [Add R] [Add S] [Mul R] [Mul S] (e : R ≃+* S)
Goal: e.trans e.symm = RingEquiv.refl R
-- RingEquiv.symm_trans_self
@[simp]
theorem symm_trans_self (e : R ≃+* S) : e.symm.trans e = RingEquiv.refl S 
Arguments: {R : Type u_4} {S : Type u_5} [Add R] [Add S] [Mul R] [Mul S] (e : R ≃+* S)
Goal: e.symm.trans e = RingEquiv.refl S
-- MulEquiv.noZeroDivisors
protected theorem noZeroDivisors {A : Type*} (B : Type*) [MulZeroClass A] [MulZeroClass B]
    [NoZeroDivisors B] (e : A ≃* B) : NoZeroDivisors A 
Arguments: {A : Type u_7} (B : Type u_8) [MulZeroClass A] [MulZeroClass B] [NoZeroDivisors B] (e : A ≃* B)
Goal: NoZeroDivisors A
-- MulEquiv.isDomain
protected theorem isDomain {A : Type*} (B : Type*) [Semiring A] [Semiring B] [IsDomain B]
    (e : A ≃* B) : IsDomain A 
Arguments: {A : Type u_7} (B : Type u_8) [Semiring A] [Semiring B] [IsDomain B] (e : A ≃* B)
Goal: IsDomain A
-- AddMonoidAlgebra.divOf_apply
@[simp]
theorem divOf_apply (g : G) (x : k[G]) (g' : G) : (x /ᵒᶠ g) g' = x (g + g') 
Arguments: {k : Type u_1} {G : Type u_2} [Semiring k] [AddCancelCommMonoid G] (g : G) (x : AddMonoidAlgebra k G) (g' : G)
Goal: (x.divOf g) g' = x (g + g')
-- AddMonoidAlgebra.support_divOf
@[simp]
theorem support_divOf (g : G) (x : k[G]) :
    (x /ᵒᶠ g).support =
      x.support.preimage (g + ·) (Function.Injective.injOn (add_right_injective g)) 
Arguments: {k : Type u_1} {G : Type u_2} [Semiring k] [AddCancelCommMonoid G] (g : G) (x : AddMonoidAlgebra k G)
Goal: (x.divOf g).support = x.support.preimage (fun x => g + x) ⋯
-- AddMonoidAlgebra.zero_divOf
@[simp]
theorem zero_divOf (g : G) : (0 : k[G]) /ᵒᶠ g = 0 
Arguments: {k : Type u_1} {G : Type u_2} [Semiring k] [AddCancelCommMonoid G] (g : G)
Goal: AddMonoidAlgebra.divOf 0 g = 0
-- AddMonoidAlgebra.divOf_zero
@[simp]
theorem divOf_zero (x : k[G]) : x /ᵒᶠ 0 = x 
Arguments: {k : Type u_1} {G : Type u_2} [Semiring k] [AddCancelCommMonoid G] (x : AddMonoidAlgebra k G)
Goal: x.divOf 0 = x
-- AddMonoidAlgebra.add_divOf
theorem add_divOf (x y : k[G]) (g : G) : (x + y) /ᵒᶠ g = x /ᵒᶠ g + y /ᵒᶠ g 
Arguments: {k : Type u_1} {G : Type u_2} [Semiring k] [AddCancelCommMonoid G] (x y : AddMonoidAlgebra k G) (g : G)
Goal: (x + y).divOf g = x.divOf g + y.divOf g