ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- OrderIso.asBoolAlgAsBoolRing_symm_apply
@[simps!]
def OrderIso.asBoolAlgAsBoolRing (α : Type*) [BooleanAlgebra α] : AsBoolAlg (AsBoolRing α) ≃o α 
Arguments: (α : Type u_4) [BooleanAlgebra α]
Goal: ∀ (a : α), (RelIso.symm (OrderIso.asBoolAlgAsBoolRing α)) a = toBoolAlg (toBoolRing a)
-- RingEquiv.asBoolRingAsBoolAlg_apply
@[simps!]
def RingEquiv.asBoolRingAsBoolAlg (α : Type*) [BooleanRing α] : AsBoolRing (AsBoolAlg α) ≃+* α 
Arguments: (α : Type u_4) [BooleanRing α]
Goal: ∀ (a : AsBoolRing (AsBoolAlg α)), (RingEquiv.asBoolRingAsBoolAlg α) a = ofBoolAlg (ofBoolRing a)
-- RingEquiv.asBoolRingAsBoolAlg_symm_apply
@[simps!]
def RingEquiv.asBoolRingAsBoolAlg (α : Type*) [BooleanRing α] : AsBoolRing (AsBoolAlg α) ≃+* α 
Arguments: (α : Type u_4) [BooleanRing α]
Goal: ∀ (a : α), (RingEquiv.asBoolRingAsBoolAlg α).symm a = toBoolRing (toBoolAlg a)
-- Distrib.ext
@[ext] theorem ext ⦃inst₁ inst₂ : Distrib R⦄
    (h_add : local_hAdd[R, inst₁] = local_hAdd[R, inst₂])
    (h_mul : local_hMul[R, inst₁] = local_hMul[R, inst₂]) :
    inst₁ = inst₂ 
Arguments: {R : Type u} ⦃inst₁ inst₂ : Distrib R⦄ (h_add : HAdd.hAdd = HAdd.hAdd) (h_mul : HMul.hMul = HMul.hMul)
Goal: inst₁ = inst₂
-- Distrib.ext_iff
theorem ext_iff {inst₁ inst₂ : Distrib R} :
    inst₁ = inst₂ ↔
      (local_hAdd[R, inst₁] = local_hAdd[R, inst₂]) ∧
      (local_hMul[R, inst₁] = local_hMul[R, inst₂]) 
Arguments: {R : Type u} {inst₁ inst₂ : Distrib R}
Goal: inst₁ = inst₂ ↔ HAdd.hAdd = HAdd.hAdd ∧ HMul.hMul = HMul.hMul
-- NonUnitalNonAssocSemiring.ext
@[ext] theorem ext ⦃inst₁ inst₂ : NonUnitalNonAssocSemiring R⦄
    (h_add : local_hAdd[R, inst₁] = local_hAdd[R, inst₂])
    (h_mul : local_hMul[R, inst₁] = local_hMul[R, inst₂]) :
    inst₁ = inst₂ 
Arguments: {R : Type u} ⦃inst₁ inst₂ : NonUnitalNonAssocSemiring R⦄ (h_add : HAdd.hAdd = HAdd.hAdd) (h_mul : HMul.hMul = HMul.hMul)
Goal: inst₁ = inst₂
-- NonUnitalNonAssocSemiring.toDistrib_injective
theorem toDistrib_injective : Function.Injective (@toDistrib R) 
Arguments: {R : Type u}
Goal: Function.Injective (@NonUnitalNonAssocSemiring.toDistrib R)
-- NonUnitalNonAssocSemiring.ext_iff
theorem ext_iff {inst₁ inst₂ : NonUnitalNonAssocSemiring R} :
    inst₁ = inst₂ ↔
      (local_hAdd[R, inst₁] = local_hAdd[R, inst₂]) ∧
      (local_hMul[R, inst₁] = local_hMul[R, inst₂]) 
Arguments: {R : Type u} {inst₁ inst₂ : NonUnitalNonAssocSemiring R}
Goal: inst₁ = inst₂ ↔ HAdd.hAdd = HAdd.hAdd ∧ HMul.hMul = HMul.hMul
-- NonUnitalSemiring.toNonUnitalNonAssocSemiring_injective
theorem toNonUnitalNonAssocSemiring_injective :
    Function.Injective (@toNonUnitalNonAssocSemiring R) 
Arguments: {R : Type u}
Goal: Function.Injective (@NonUnitalSemiring.toNonUnitalNonAssocSemiring R)
-- NonUnitalSemiring.ext
@[ext] theorem ext ⦃inst₁ inst₂ : NonUnitalSemiring R⦄
    (h_add : local_hAdd[R, inst₁] = local_hAdd[R, inst₂])
    (h_mul : local_hMul[R, inst₁] = local_hMul[R, inst₂]) :
    inst₁ = inst₂ 
Arguments: {R : Type u} ⦃inst₁ inst₂ : NonUnitalSemiring R⦄ (h_add : HAdd.hAdd = HAdd.hAdd) (h_mul : HMul.hMul = HMul.hMul)
Goal: inst₁ = inst₂
-- NonUnitalSemiring.ext_iff
theorem ext_iff {inst₁ inst₂ : NonUnitalSemiring R} :
    inst₁ = inst₂ ↔
      (local_hAdd[R, inst₁] = local_hAdd[R, inst₂]) ∧
      (local_hMul[R, inst₁] = local_hMul[R, inst₂]) 
Arguments: {R : Type u} {inst₁ inst₂ : NonUnitalSemiring R}
Goal: inst₁ = inst₂ ↔ HAdd.hAdd = HAdd.hAdd ∧ HMul.hMul = HMul.hMul
-- AddMonoidWithOne.ext
@[ext] theorem AddMonoidWithOne.ext ⦃inst₁ inst₂ : AddMonoidWithOne R⦄
    (h_add : local_hAdd[R, inst₁] = local_hAdd[R, inst₂])
    (h_one : (letI := inst₁; One.one : R) = (letI := inst₂; One.one : R)) :
    inst₁ = inst₂ 
Arguments: {R : Type u} ⦃inst₁ inst₂ : AddMonoidWithOne R⦄ (h_add : HAdd.hAdd = HAdd.hAdd) (h_one : One.one = One.one)
Goal: inst₁ = inst₂
-- AddCommMonoidWithOne.toAddMonoidWithOne_injective
theorem AddCommMonoidWithOne.toAddMonoidWithOne_injective :
    Function.Injective (@AddCommMonoidWithOne.toAddMonoidWithOne R) 
Arguments: {R : Type u}
Goal: Function.Injective (@AddCommMonoidWithOne.toAddMonoidWithOne R)
-- AddCommMonoidWithOne.ext
@[ext] theorem AddCommMonoidWithOne.ext ⦃inst₁ inst₂ : AddCommMonoidWithOne R⦄
    (h_add : local_hAdd[R, inst₁] = local_hAdd[R, inst₂])
    (h_one : (letI := inst₁; One.one : R) = (letI := inst₂; One.one : R)) :
    inst₁ = inst₂ 
Arguments: {R : Type u} ⦃inst₁ inst₂ : AddCommMonoidWithOne R⦄ (h_add : HAdd.hAdd = HAdd.hAdd) (h_one : One.one = One.one)
Goal: inst₁ = inst₂
-- NonAssocSemiring.ext
@[ext] theorem ext ⦃inst₁ inst₂ : NonAssocSemiring R⦄
    (h_add : local_hAdd[R, inst₁] = local_hAdd[R, inst₂])
    (h_mul : local_hMul[R, inst₁] = local_hMul[R, inst₂]) :
    inst₁ = inst₂ 
Arguments: {R : Type u} ⦃inst₁ inst₂ : NonAssocSemiring R⦄ (h_add : HAdd.hAdd = HAdd.hAdd) (h_mul : HMul.hMul = HMul.hMul)
Goal: inst₁ = inst₂
-- NonAssocSemiring.toNonUnitalNonAssocSemiring_injective
theorem toNonUnitalNonAssocSemiring_injective :
    Function.Injective (@toNonUnitalNonAssocSemiring R) 
Arguments: {R : Type u}
Goal: Function.Injective (@NonAssocSemiring.toNonUnitalNonAssocSemiring R)
-- NonAssocSemiring.ext_iff
theorem ext_iff {inst₁ inst₂ : NonAssocSemiring R} :
    inst₁ = inst₂ ↔
      (local_hAdd[R, inst₁] = local_hAdd[R, inst₂]) ∧
      (local_hMul[R, inst₁] = local_hMul[R, inst₂]) 
Arguments: {R : Type u} {inst₁ inst₂ : NonAssocSemiring R}
Goal: inst₁ = inst₂ ↔ HAdd.hAdd = HAdd.hAdd ∧ HMul.hMul = HMul.hMul
-- NonUnitalNonAssocRing.ext
@[ext] theorem ext ⦃inst₁ inst₂ : NonUnitalNonAssocRing R⦄
    (h_add : local_hAdd[R, inst₁] = local_hAdd[R, inst₂])
    (h_mul : local_hMul[R, inst₁] = local_hMul[R, inst₂]) :
    inst₁ = inst₂ 
Arguments: {R : Type u} ⦃inst₁ inst₂ : NonUnitalNonAssocRing R⦄ (h_add : HAdd.hAdd = HAdd.hAdd) (h_mul : HMul.hMul = HMul.hMul)
Goal: inst₁ = inst₂
-- NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring_injective
theorem toNonUnitalNonAssocSemiring_injective :
    Function.Injective (@toNonUnitalNonAssocSemiring R) 
Arguments: {R : Type u}
Goal: Function.Injective (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring R)
-- NonUnitalNonAssocRing.ext_iff
theorem ext_iff {inst₁ inst₂ : NonUnitalNonAssocRing R} :
    inst₁ = inst₂ ↔
      (local_hAdd[R, inst₁] = local_hAdd[R, inst₂]) ∧
      (local_hMul[R, inst₁] = local_hMul[R, inst₂]) 
Arguments: {R : Type u} {inst₁ inst₂ : NonUnitalNonAssocRing R}
Goal: inst₁ = inst₂ ↔ HAdd.hAdd = HAdd.hAdd ∧ HMul.hMul = HMul.hMul
-- NonUnitalRing.ext
@[ext] theorem ext ⦃inst₁ inst₂ : NonUnitalRing R⦄
    (h_add : local_hAdd[R, inst₁] = local_hAdd[R, inst₂])
    (h_mul : local_hMul[R, inst₁] = local_hMul[R, inst₂]) :
    inst₁ = inst₂ 
Arguments: {R : Type u} ⦃inst₁ inst₂ : NonUnitalRing R⦄ (h_add : HAdd.hAdd = HAdd.hAdd) (h_mul : HMul.hMul = HMul.hMul)
Goal: inst₁ = inst₂
-- NonUnitalRing.toNonUnitalSemiring_injective
theorem toNonUnitalSemiring_injective :
    Function.Injective (@toNonUnitalSemiring R) 
Arguments: {R : Type u}
Goal: Function.Injective (@NonUnitalRing.toNonUnitalSemiring R)
-- NonUnitalRing.toNonUnitalNonAssocring_injective
theorem toNonUnitalNonAssocring_injective :
    Function.Injective (@toNonUnitalNonAssocRing R) 
Arguments: {R : Type u}
Goal: Function.Injective (@NonUnitalRing.toNonUnitalNonAssocRing R)
-- NonUnitalRing.ext_iff
theorem ext_iff {inst₁ inst₂ : NonUnitalRing R} :
    inst₁ = inst₂ ↔
      (local_hAdd[R, inst₁] = local_hAdd[R, inst₂]) ∧
      (local_hMul[R, inst₁] = local_hMul[R, inst₂]) 
Arguments: {R : Type u} {inst₁ inst₂ : NonUnitalRing R}
Goal: inst₁ = inst₂ ↔ HAdd.hAdd = HAdd.hAdd ∧ HMul.hMul = HMul.hMul
-- AddGroupWithOne.ext
@[ext] theorem AddGroupWithOne.ext ⦃inst₁ inst₂ : AddGroupWithOne R⦄
    (h_add : local_hAdd[R, inst₁] = local_hAdd[R, inst₂])
    (h_one : (letI := inst₁; One.one : R) = (letI := inst₂; One.one)) :
    inst₁ = inst₂ 
Arguments: {R : Type u} ⦃inst₁ inst₂ : AddGroupWithOne R⦄ (h_add : HAdd.hAdd = HAdd.hAdd) (h_one : One.one = One.one)
Goal: inst₁ = inst₂
-- AddCommGroupWithOne.ext
@[ext] theorem AddCommGroupWithOne.ext ⦃inst₁ inst₂ : AddCommGroupWithOne R⦄
    (h_add : local_hAdd[R, inst₁] = local_hAdd[R, inst₂])
    (h_one : (letI := inst₁; One.one : R) = (letI := inst₂; One.one)) :
    inst₁ = inst₂ 
Arguments: {R : Type u} ⦃inst₁ inst₂ : AddCommGroupWithOne R⦄ (h_add : HAdd.hAdd = HAdd.hAdd) (h_one : One.one = One.one)
Goal: inst₁ = inst₂
-- NonAssocRing.ext
@[ext] theorem ext ⦃inst₁ inst₂ : NonAssocRing R⦄
    (h_add : local_hAdd[R, inst₁] = local_hAdd[R, inst₂])
    (h_mul : local_hMul[R, inst₁] = local_hMul[R, inst₂]) :
    inst₁ = inst₂ 
Arguments: {R : Type u} ⦃inst₁ inst₂ : NonAssocRing R⦄ (h_add : HAdd.hAdd = HAdd.hAdd) (h_mul : HMul.hMul = HMul.hMul)
Goal: inst₁ = inst₂
-- NonAssocRing.toNonAssocSemiring_injective
theorem toNonAssocSemiring_injective :
    Function.Injective (@toNonAssocSemiring R) 
Arguments: {R : Type u}
Goal: Function.Injective (@NonAssocRing.toNonAssocSemiring R)
-- NonAssocRing.toNonUnitalNonAssocring_injective
theorem toNonUnitalNonAssocring_injective :
    Function.Injective (@toNonUnitalNonAssocRing R) 
Arguments: {R : Type u}
Goal: Function.Injective (@NonAssocRing.toNonUnitalNonAssocRing R)
-- NonAssocRing.ext_iff
theorem ext_iff {inst₁ inst₂ : NonAssocRing R} :
    inst₁ = inst₂ ↔
      (local_hAdd[R, inst₁] = local_hAdd[R, inst₂]) ∧
      (local_hMul[R, inst₁] = local_hMul[R, inst₂]) 
Arguments: {R : Type u} {inst₁ inst₂ : NonAssocRing R}
Goal: inst₁ = inst₂ ↔ HAdd.hAdd = HAdd.hAdd ∧ HMul.hMul = HMul.hMul
-- Semiring.ext
@[ext] theorem ext ⦃inst₁ inst₂ : Semiring R⦄
    (h_add : local_hAdd[R, inst₁] = local_hAdd[R, inst₂])
    (h_mul : local_hMul[R, inst₁] = local_hMul[R, inst₂]) :
    inst₁ = inst₂ 
Arguments: {R : Type u} ⦃inst₁ inst₂ : Semiring R⦄ (h_add : HAdd.hAdd = HAdd.hAdd) (h_mul : HMul.hMul = HMul.hMul)
Goal: inst₁ = inst₂
-- Semiring.toNonUnitalSemiring_injective
theorem toNonUnitalSemiring_injective :
    Function.Injective (@toNonUnitalSemiring R) 
Arguments: {R : Type u}
Goal: Function.Injective (@Semiring.toNonUnitalSemiring R)
-- Semiring.toNonAssocSemiring_injective
theorem toNonAssocSemiring_injective :
    Function.Injective (@toNonAssocSemiring R) 
Arguments: {R : Type u}
Goal: Function.Injective (@Semiring.toNonAssocSemiring R)
-- Semiring.ext_iff
theorem ext_iff {inst₁ inst₂ : Semiring R} :
    inst₁ = inst₂ ↔
      (local_hAdd[R, inst₁] = local_hAdd[R, inst₂]) ∧
      (local_hMul[R, inst₁] = local_hMul[R, inst₂]) 
Arguments: {R : Type u} {inst₁ inst₂ : Semiring R}
Goal: inst₁ = inst₂ ↔ HAdd.hAdd = HAdd.hAdd ∧ HMul.hMul = HMul.hMul
-- Ring.ext
@[ext] theorem ext ⦃inst₁ inst₂ : Ring R⦄
    (h_add : local_hAdd[R, inst₁] = local_hAdd[R, inst₂])
    (h_mul : local_hMul[R, inst₁] = local_hMul[R, inst₂]) :
    inst₁ = inst₂ 
Arguments: {R : Type u} ⦃inst₁ inst₂ : Ring R⦄ (h_add : HAdd.hAdd = HAdd.hAdd) (h_mul : HMul.hMul = HMul.hMul)
Goal: inst₁ = inst₂
-- Ring.toNonUnitalRing_injective
theorem toNonUnitalRing_injective :
    Function.Injective (@toNonUnitalRing R) 
Arguments: {R : Type u}
Goal: Function.Injective (@Ring.toNonUnitalRing R)
-- Ring.toNonAssocRing_injective
theorem toNonAssocRing_injective :
    Function.Injective (@toNonAssocRing R) 
Arguments: {R : Type u}
Goal: Function.Injective (@Ring.toNonAssocRing R)
-- Ring.toSemiring_injective
theorem toSemiring_injective :
    Function.Injective (@toSemiring R) 
Arguments: {R : Type u}
Goal: Function.Injective (@Ring.toSemiring R)
-- Ring.ext_iff
theorem ext_iff {inst₁ inst₂ : Ring R} :
    inst₁ = inst₂ ↔
      (local_hAdd[R, inst₁] = local_hAdd[R, inst₂]) ∧
      (local_hMul[R, inst₁] = local_hMul[R, inst₂]) 
Arguments: {R : Type u} {inst₁ inst₂ : Ring R}
Goal: inst₁ = inst₂ ↔ HAdd.hAdd = HAdd.hAdd ∧ HMul.hMul = HMul.hMul
-- NonUnitalNonAssocCommSemiring.toNonUnitalNonAssocSemiring_injective
theorem toNonUnitalNonAssocSemiring_injective :
    Function.Injective (@toNonUnitalNonAssocSemiring R) 
Arguments: {R : Type u}
Goal: Function.Injective (@NonUnitalNonAssocCommSemiring.toNonUnitalNonAssocSemiring R)
-- NonUnitalNonAssocCommSemiring.ext
@[ext] theorem ext ⦃inst₁ inst₂ : NonUnitalNonAssocCommSemiring R⦄
    (h_add : local_hAdd[R, inst₁] = local_hAdd[R, inst₂])
    (h_mul : local_hMul[R, inst₁] = local_hMul[R, inst₂]) :
    inst₁ = inst₂ 
Arguments: {R : Type u} ⦃inst₁ inst₂ : NonUnitalNonAssocCommSemiring R⦄ (h_add : HAdd.hAdd = HAdd.hAdd) (h_mul : HMul.hMul = HMul.hMul)
Goal: inst₁ = inst₂
-- NonUnitalNonAssocCommSemiring.ext_iff
theorem ext_iff {inst₁ inst₂ : NonUnitalNonAssocCommSemiring R} :
    inst₁ = inst₂ ↔
      (local_hAdd[R, inst₁] = local_hAdd[R, inst₂]) ∧
      (local_hMul[R, inst₁] = local_hMul[R, inst₂]) 
Arguments: {R : Type u} {inst₁ inst₂ : NonUnitalNonAssocCommSemiring R}
Goal: inst₁ = inst₂ ↔ HAdd.hAdd = HAdd.hAdd ∧ HMul.hMul = HMul.hMul
-- NonUnitalCommSemiring.toNonUnitalSemiring_injective
theorem toNonUnitalSemiring_injective :
    Function.Injective (@toNonUnitalSemiring R) 
Arguments: {R : Type u}
Goal: Function.Injective (@NonUnitalCommSemiring.toNonUnitalSemiring R)
-- NonUnitalCommSemiring.ext
@[ext] theorem ext ⦃inst₁ inst₂ : NonUnitalCommSemiring R⦄
    (h_add : local_hAdd[R, inst₁] = local_hAdd[R, inst₂])
    (h_mul : local_hMul[R, inst₁] = local_hMul[R, inst₂]) :
    inst₁ = inst₂ 
Arguments: {R : Type u} ⦃inst₁ inst₂ : NonUnitalCommSemiring R⦄ (h_add : HAdd.hAdd = HAdd.hAdd) (h_mul : HMul.hMul = HMul.hMul)
Goal: inst₁ = inst₂
-- NonUnitalCommSemiring.ext_iff
theorem ext_iff {inst₁ inst₂ : NonUnitalCommSemiring R} :
    inst₁ = inst₂ ↔
      (local_hAdd[R, inst₁] = local_hAdd[R, inst₂]) ∧
      (local_hMul[R, inst₁] = local_hMul[R, inst₂]) 
Arguments: {R : Type u} {inst₁ inst₂ : NonUnitalCommSemiring R}
Goal: inst₁ = inst₂ ↔ HAdd.hAdd = HAdd.hAdd ∧ HMul.hMul = HMul.hMul
-- NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing_injective
theorem toNonUnitalNonAssocRing_injective :
    Function.Injective (@toNonUnitalNonAssocRing R) 
Arguments: {R : Type u}
Goal: Function.Injective (@NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing R)
-- NonUnitalNonAssocCommRing.ext
@[ext] theorem ext ⦃inst₁ inst₂ : NonUnitalNonAssocCommRing R⦄
    (h_add : local_hAdd[R, inst₁] = local_hAdd[R, inst₂])
    (h_mul : local_hMul[R, inst₁] = local_hMul[R, inst₂]) :
    inst₁ = inst₂ 
Arguments: {R : Type u} ⦃inst₁ inst₂ : NonUnitalNonAssocCommRing R⦄ (h_add : HAdd.hAdd = HAdd.hAdd) (h_mul : HMul.hMul = HMul.hMul)
Goal: inst₁ = inst₂
-- NonUnitalNonAssocCommRing.ext_iff
theorem ext_iff {inst₁ inst₂ : NonUnitalNonAssocCommRing R} :
    inst₁ = inst₂ ↔
      (local_hAdd[R, inst₁] = local_hAdd[R, inst₂]) ∧
      (local_hMul[R, inst₁] = local_hMul[R, inst₂]) 
Arguments: {R : Type u} {inst₁ inst₂ : NonUnitalNonAssocCommRing R}
Goal: inst₁ = inst₂ ↔ HAdd.hAdd = HAdd.hAdd ∧ HMul.hMul = HMul.hMul
-- NonUnitalCommRing.toNonUnitalRing_injective
theorem toNonUnitalRing_injective :
    Function.Injective (@toNonUnitalRing R) 
Arguments: {R : Type u}
Goal: Function.Injective (@NonUnitalCommRing.toNonUnitalRing R)
-- NonUnitalCommRing.ext
@[ext] theorem ext ⦃inst₁ inst₂ : NonUnitalCommRing R⦄
    (h_add : local_hAdd[R, inst₁] = local_hAdd[R, inst₂])
    (h_mul : local_hMul[R, inst₁] = local_hMul[R, inst₂]) :
    inst₁ = inst₂ 
Arguments: {R : Type u} ⦃inst₁ inst₂ : NonUnitalCommRing R⦄ (h_add : HAdd.hAdd = HAdd.hAdd) (h_mul : HMul.hMul = HMul.hMul)
Goal: inst₁ = inst₂
-- NonUnitalCommRing.ext_iff
theorem ext_iff {inst₁ inst₂ : NonUnitalCommRing R} :
    inst₁ = inst₂ ↔
      (local_hAdd[R, inst₁] = local_hAdd[R, inst₂]) ∧
      (local_hMul[R, inst₁] = local_hMul[R, inst₂]) 
Arguments: {R : Type u} {inst₁ inst₂ : NonUnitalCommRing R}
Goal: inst₁ = inst₂ ↔ HAdd.hAdd = HAdd.hAdd ∧ HMul.hMul = HMul.hMul
-- CommSemiring.toSemiring_injective
theorem toSemiring_injective :
    Function.Injective (@toSemiring R) 
Arguments: {R : Type u}
Goal: Function.Injective (@CommSemiring.toSemiring R)
-- CommSemiring.ext
@[ext] theorem ext ⦃inst₁ inst₂ : CommSemiring R⦄
    (h_add : local_hAdd[R, inst₁] = local_hAdd[R, inst₂])
    (h_mul : local_hMul[R, inst₁] = local_hMul[R, inst₂]) :
    inst₁ = inst₂ 
Arguments: {R : Type u} ⦃inst₁ inst₂ : CommSemiring R⦄ (h_add : HAdd.hAdd = HAdd.hAdd) (h_mul : HMul.hMul = HMul.hMul)
Goal: inst₁ = inst₂
-- CommSemiring.ext_iff
theorem ext_iff {inst₁ inst₂ : CommSemiring R} :
    inst₁ = inst₂ ↔
      (local_hAdd[R, inst₁] = local_hAdd[R, inst₂]) ∧
      (local_hMul[R, inst₁] = local_hMul[R, inst₂]) 
Arguments: {R : Type u} {inst₁ inst₂ : CommSemiring R}
Goal: inst₁ = inst₂ ↔ HAdd.hAdd = HAdd.hAdd ∧ HMul.hMul = HMul.hMul
-- CommRing.toRing_injective
theorem toRing_injective : Function.Injective (@toRing R) 
Arguments: {R : Type u}
Goal: Function.Injective (@CommRing.toRing R)
-- CommRing.ext
@[ext] theorem ext ⦃inst₁ inst₂ : CommRing R⦄
    (h_add : local_hAdd[R, inst₁] = local_hAdd[R, inst₂])
    (h_mul : local_hMul[R, inst₁] = local_hMul[R, inst₂]) :
    inst₁ = inst₂ 
Arguments: {R : Type u} ⦃inst₁ inst₂ : CommRing R⦄ (h_add : HAdd.hAdd = HAdd.hAdd) (h_mul : HMul.hMul = HMul.hMul)
Goal: inst₁ = inst₂
-- CommRing.ext_iff
theorem ext_iff {inst₁ inst₂ : CommRing R} :
    inst₁ = inst₂ ↔
      (local_hAdd[R, inst₁] = local_hAdd[R, inst₂]) ∧
      (local_hMul[R, inst₁] = local_hMul[R, inst₂]) 
Arguments: {R : Type u} {inst₁ inst₂ : CommRing R}
Goal: inst₁ = inst₂ ↔ HAdd.hAdd = HAdd.hAdd ∧ HMul.hMul = HMul.hMul
-- Units.val_neg
@[simp, norm_cast]
protected theorem val_neg (u : αˣ) : (↑(-u) : α) = -u 
Arguments: {α : Type u} [Monoid α] [HasDistribNeg α] (u : αˣ)
Goal: ↑(-u) = -↑u
-- Units.coe_neg_one
@[simp, norm_cast]
protected theorem coe_neg_one : ((-1 : αˣ) : α) = -1 
Arguments: {α : Type u} [Monoid α] [HasDistribNeg α]
Goal: ↑(-1) = -1
-- Units.neg_divp
@[field_simps]
theorem neg_divp (a : α) (u : αˣ) : -(a /ₚ u) = -a /ₚ u 
Arguments: {α : Type u} [Monoid α] [HasDistribNeg α] (a : α) (u : αˣ)
Goal: -(a /ₚ u) = -a /ₚ u
-- Units.divp_add_divp_same
@[field_simps 1010]
theorem divp_add_divp_same (a b : α) (u : αˣ) : a /ₚ u + b /ₚ u = (a + b) /ₚ u 
Arguments: {α : Type u} [Ring α] (a b : α) (u : αˣ)
Goal: a /ₚ u + b /ₚ u = (a + b) /ₚ u
-- Units.divp_sub_divp_same
@[field_simps 1010]
theorem divp_sub_divp_same (a b : α) (u : αˣ) : a /ₚ u - b /ₚ u = (a - b) /ₚ u 
Arguments: {α : Type u} [Ring α] (a b : α) (u : αˣ)
Goal: a /ₚ u - b /ₚ u = (a - b) /ₚ u
-- Units.add_divp
@[field_simps]
theorem add_divp (a b : α) (u : αˣ) : a + b /ₚ u = (a * u + b) /ₚ u 
Arguments: {α : Type u} [Ring α] (a b : α) (u : αˣ)
Goal: a + b /ₚ u = (a * ↑u + b) /ₚ u
-- Units.sub_divp
@[field_simps]
theorem sub_divp (a b : α) (u : αˣ) : a - b /ₚ u = (a * u - b) /ₚ u 
Arguments: {α : Type u} [Ring α] (a b : α) (u : αˣ)
Goal: a - b /ₚ u = (a * ↑u - b) /ₚ u
-- Units.divp_add
@[field_simps]
theorem divp_add (a b : α) (u : αˣ) : a /ₚ u + b = (a + b * u) /ₚ u 
Arguments: {α : Type u} [Ring α] (a b : α) (u : αˣ)
Goal: a /ₚ u + b = (a + b * ↑u) /ₚ u
-- Units.divp_sub
@[field_simps]
theorem divp_sub (a b : α) (u : αˣ) : a /ₚ u - b = (a - b * u) /ₚ u 
Arguments: {α : Type u} [Ring α] (a b : α) (u : αˣ)
Goal: a /ₚ u - b = (a - b * ↑u) /ₚ u
-- Units.map_neg
@[simp]
protected theorem map_neg {F : Type*} [Ring β] [FunLike F α β] [RingHomClass F α β]
    (f : F) (u : αˣ) : map (f : α →* β) (-u) = -map (f : α →* β) u 
Arguments: {α : Type u} {β : Type v} [Ring α] {F : Type u_1} [Ring β] [FunLike F α β] [RingHomClass F α β] (f : F) (u : αˣ)
Goal: (Units.map ↑f) (-u) = -(Units.map ↑f) u
-- Units.map_neg_one
protected theorem map_neg_one {F : Type*} [Ring β] [FunLike F α β] [RingHomClass F α β]
    (f : F) : map (f : α →* β) (-1) = -1 
Arguments: {α : Type u} {β : Type v} [Ring α] {F : Type u_1} [Ring β] [FunLike F α β] [RingHomClass F α β] (f : F)
Goal: (Units.map ↑f) (-1) = -1
-- IsUnit.neg
theorem IsUnit.neg [Monoid α] [HasDistribNeg α] {a : α} : IsUnit a → IsUnit (-a)
  
Arguments: {α : Type u} [Monoid α] [HasDistribNeg α] {a : α}
Goal: IsUnit a → IsUnit (-a)
-- IsUnit.neg_iff
@[simp]
theorem IsUnit.neg_iff [Monoid α] [HasDistribNeg α] (a : α) : IsUnit (-a) ↔ IsUnit a 
Arguments: {α : Type u} [Monoid α] [HasDistribNeg α] (a : α)
Goal: IsUnit (-a) ↔ IsUnit a
-- isUnit_neg_one
theorem isUnit_neg_one [Monoid α] [HasDistribNeg α] : IsUnit (-1 : α) 
Arguments: {α : Type u} [Monoid α] [HasDistribNeg α]
Goal: IsUnit (-1)
-- IsUnit.sub_iff
theorem IsUnit.sub_iff [Ring α] {x y : α} : IsUnit (x - y) ↔ IsUnit (y - x) 
Arguments: {α : Type u} [Ring α] {x y : α}
Goal: IsUnit (x - y) ↔ IsUnit (y - x)
-- Units.divp_add_divp
@[field_simps]
theorem divp_add_divp [CommRing α] (a b : α) (u₁ u₂ : αˣ) :
    a /ₚ u₁ + b /ₚ u₂ = (a * u₂ + u₁ * b) /ₚ (u₁ * u₂) 
Arguments: {α : Type u} [CommRing α] (a b : α) (u₁ u₂ : αˣ)
Goal: a /ₚ u₁ + b /ₚ u₂ = (a * ↑u₂ + ↑u₁ * b) /ₚ (u₁ * u₂)
-- Units.divp_sub_divp
@[field_simps]
theorem divp_sub_divp [CommRing α] (a b : α) (u₁ u₂ : αˣ) :
    a /ₚ u₁ - b /ₚ u₂ = (a * u₂ - u₁ * b) /ₚ (u₁ * u₂) 
Arguments: {α : Type u} [CommRing α] (a b : α) (u₁ u₂ : αˣ)
Goal: a /ₚ u₁ - b /ₚ u₂ = (a * ↑u₂ - ↑u₁ * b) /ₚ (u₁ * u₂)
-- Units.add_eq_mul_one_add_div
theorem add_eq_mul_one_add_div [Semiring R] {a : Rˣ} {b : R} : ↑a + b = a * (1 + ↑a⁻¹ * b) 
Arguments: {R : Type x} [Semiring R] {a : Rˣ} {b : R}
Goal: ↑a + b = ↑a * (1 + ↑a⁻¹ * b)
-- map_dvd_iff
theorem map_dvd_iff {a b} : f a ∣ f b ↔ a ∣ b 
Arguments: {α : Type u_1} {β : Type u_2} [Semigroup α] [Semigroup β] {F : Type u_3} [EquivLike F α β] [MulEquivClass F α β] (f : F) {a b : α}
Goal: f a ∣ f b ↔ a ∣ b
-- MulEquiv.decompositionMonoid
theorem MulEquiv.decompositionMonoid [DecompositionMonoid β] : DecompositionMonoid α 
Arguments: {α : Type u_1} {β : Type u_2} [Semigroup α] [Semigroup β] {F : Type u_3} [EquivLike F α β] [MulEquivClass F α β] (f : F) [DecompositionMonoid β]
Goal: DecompositionMonoid α
-- dvd_add
theorem dvd_add [LeftDistribClass α] {a b c : α} (h₁ : a ∣ b) (h₂ : a ∣ c) : a ∣ b + c 
Arguments: {α : Type u_1} [Add α] [Semigroup α] [LeftDistribClass α] {a b c : α} (h₁ : a ∣ b) (h₂ : a ∣ c)
Goal: a ∣ b + c
-- min_pow_dvd_add
lemma min_pow_dvd_add (ha : c ^ m ∣ a) (hb : c ^ n ∣ b) : c ^ min m n ∣ a + b 
Arguments: {α : Type u_1} [Semiring α] {a b c : α} {m n : ℕ} (ha : c ^ m ∣ a) (hb : c ^ n ∣ b)
Goal: c ^ min m n ∣ a + b
-- Dvd.dvd.linear_comb
theorem Dvd.dvd.linear_comb {d x y : α} (hdx : d ∣ x) (hdy : d ∣ y) (a b : α) : d ∣ a * x + b * y 
Arguments: {α : Type u_1} [NonUnitalCommSemiring α] {d x y : α} (hdx : d ∣ x) (hdy : d ∣ y) (a b : α)
Goal: d ∣ a * x + b * y
-- dvd_neg
@[simp]
theorem dvd_neg : a ∣ -b ↔ a ∣ b 
Arguments: {α : Type u_1} [Semigroup α] [HasDistribNeg α] {a b : α}
Goal: a ∣ -b ↔ a ∣ b
-- neg_dvd
@[simp]
theorem neg_dvd : -a ∣ b ↔ a ∣ b 
Arguments: {α : Type u_1} [Semigroup α] [HasDistribNeg α] {a b : α}
Goal: -a ∣ b ↔ a ∣ b
-- dvd_sub
theorem dvd_sub (h₁ : a ∣ b) (h₂ : a ∣ c) : a ∣ b - c 
Arguments: {α : Type u_1} [NonUnitalRing α] {a b c : α} (h₁ : a ∣ b) (h₂ : a ∣ c)
Goal: a ∣ b - c
-- dvd_add_left
theorem dvd_add_left (h : a ∣ c) : a ∣ b + c ↔ a ∣ b 
Arguments: {α : Type u_1} [NonUnitalRing α] {a b c : α} (h : a ∣ c)
Goal: a ∣ b + c ↔ a ∣ b
-- dvd_add_right
theorem dvd_add_right (h : a ∣ b) : a ∣ b + c ↔ a ∣ c 
Arguments: {α : Type u_1} [NonUnitalRing α] {a b c : α} (h : a ∣ b)
Goal: a ∣ b + c ↔ a ∣ c
-- dvd_sub_left
theorem dvd_sub_left (h : a ∣ c) : a ∣ b - c ↔ a ∣ b 
Arguments: {α : Type u_1} [NonUnitalRing α] {a b c : α} (h : a ∣ c)
Goal: a ∣ b - c ↔ a ∣ b
-- dvd_sub_right
theorem dvd_sub_right (h : a ∣ b) : a ∣ b - c ↔ a ∣ c 
Arguments: {α : Type u_1} [NonUnitalRing α] {a b c : α} (h : a ∣ b)
Goal: a ∣ b - c ↔ a ∣ c
-- dvd_iff_dvd_of_dvd_sub
theorem dvd_iff_dvd_of_dvd_sub (h : a ∣ b - c) : a ∣ b ↔ a ∣ c 
Arguments: {α : Type u_1} [NonUnitalRing α] {a b c : α} (h : a ∣ b - c)
Goal: a ∣ b ↔ a ∣ c
-- dvd_sub_comm
theorem dvd_sub_comm : a ∣ b - c ↔ a ∣ c - b 
Arguments: {α : Type u_1} [NonUnitalRing α] {a b c : α}
Goal: a ∣ b - c ↔ a ∣ c - b
-- dvd_add_self_left
@[simp]
theorem dvd_add_self_left {a b : α} : a ∣ a + b ↔ a ∣ b 
Arguments: {α : Type u_1} [Ring α] {a b : α}
Goal: a ∣ a + b ↔ a ∣ b
-- dvd_add_self_right
@[simp]
theorem dvd_add_self_right {a b : α} : a ∣ b + a ↔ a ∣ b 
Arguments: {α : Type u_1} [Ring α] {a b : α}
Goal: a ∣ b + a ↔ a ∣ b
-- dvd_sub_self_left
@[simp]
theorem dvd_sub_self_left : a ∣ a - b ↔ a ∣ b 
Arguments: {α : Type u_1} [Ring α] {a b : α}
Goal: a ∣ a - b ↔ a ∣ b
-- dvd_sub_self_right
@[simp]
theorem dvd_sub_self_right : a ∣ b - a ↔ a ∣ b 
Arguments: {α : Type u_1} [Ring α] {a b : α}
Goal: a ∣ b - a ↔ a ∣ b