ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Ideal.quotientMap_injective
theorem quotientMap_injective {I : Ideal S} {f : R →+* S} :
    Function.Injective (quotientMap I f le_rfl) 
Arguments: {R : Type u} [CommRing R] {S : Type v} [CommRing S] {I : Ideal S} {f : R →+* S}
Goal: Function.Injective ⇑(Ideal.quotientMap I f ⋯)
-- Ideal.quotientMap_surjective
theorem quotientMap_surjective {J : Ideal R} {I : Ideal S} {f : R →+* S} {H : J ≤ I.comap f}
    (hf : Function.Surjective f) : Function.Surjective (quotientMap I f H) 
Arguments: {R : Type u} [CommRing R] {S : Type v} [CommRing S] {J : Ideal R} {I : Ideal S} {f : R →+* S} {H : J ≤ Ideal.comap f I} (hf : Function.Surjective ⇑f)
Goal: Function.Surjective ⇑(Ideal.quotientMap I f H)
-- Ideal.comp_quotientMap_eq_of_comp_eq
theorem comp_quotientMap_eq_of_comp_eq {R' S' : Type*} [CommRing R'] [CommRing S'] {f : R →+* S}
    {f' : R' →+* S'} {g : R →+* R'} {g' : S →+* S'} (hfg : f'.comp g = g'.comp f) (I : Ideal S') :
    -- Porting note: was losing track of I
    let leq := le_of_eq (_root_.trans (comap_comap (I := I) f g') (hfg ▸ comap_comap (I := I) g f'))
    (quotientMap I g' le_rfl).comp (quotientMap (I.comap g') f le_rfl) =
    (quotientMap I f' le_rfl).comp (quotientMap (I.comap f') g leq) 
Arguments: {R : Type u} [CommRing R] {S : Type v} [CommRing S] {R' : Type u_5} {S' : Type u_6} [CommRing R'] [CommRing S'] {f : R →+* S} {f' : R' →+* S'} {g : R →+* R'} {g' : S →+* S'} (hfg : f'.comp g = g'.comp f) (I : Ideal S')
Goal: let leq := ⋯;
(Ideal.quotientMap I g' ⋯).comp (Ideal.quotientMap (Ideal.comap g' I) f ⋯) =
  (Ideal.quotientMap I f' ⋯).comp (Ideal.quotientMap (Ideal.comap f' I) g leq)
-- Ideal.quotient_map_mkₐ
@[simp]
theorem quotient_map_mkₐ {I : Ideal A} (J : Ideal B) (f : A →ₐ[R₁] B) (H : I ≤ J.comap f) {x : A} :
    quotientMapₐ J f H (Quotient.mk I x) = Quotient.mkₐ R₁ J (f x) 
Arguments: {R₁ : Type u_1} {A : Type u_3} {B : Type u_4} [CommSemiring R₁] [CommRing A] [Algebra R₁ A] [CommRing B] [Algebra R₁ B] {I : Ideal A} (J : Ideal B) (f : A →ₐ[R₁] B) (H : I ≤ Ideal.comap f J) {x : A}
Goal: (Ideal.quotientMapₐ J f H) ((Ideal.Quotient.mk I) x) = (Ideal.Quotient.mkₐ R₁ J) (f x)
-- Ideal.quotient_map_comp_mkₐ
theorem quotient_map_comp_mkₐ {I : Ideal A} (J : Ideal B) (f : A →ₐ[R₁] B) (H : I ≤ J.comap f) :
    (quotientMapₐ J f H).comp (Quotient.mkₐ R₁ I) = (Quotient.mkₐ R₁ J).comp f 
Arguments: {R₁ : Type u_1} {A : Type u_3} {B : Type u_4} [CommSemiring R₁] [CommRing A] [Algebra R₁ A] [CommRing B] [Algebra R₁ B] {I : Ideal A} (J : Ideal B) (f : A →ₐ[R₁] B) (H : I ≤ Ideal.comap f J)
Goal: (Ideal.quotientMapₐ J f H).comp (Ideal.Quotient.mkₐ R₁ I) = (Ideal.Quotient.mkₐ R₁ J).comp f
-- Ideal.algebraMap_quotient_injective
theorem algebraMap_quotient_injective {I : Ideal A} [Algebra R A] :
    Function.Injective (algebraMap (R ⧸ I.comap (algebraMap R A)) (A ⧸ I)) 
Arguments: {R : Type u} [CommRing R] {A : Type u_3} [CommRing A] {I : Ideal A} [Algebra R A]
Goal: Function.Injective ⇑(algebraMap (R ⧸ Ideal.comap (algebraMap R A) I) (A ⧸ I))
-- Ideal.quotientEquivAlgOfEq_mk
@[simp]
theorem quotientEquivAlgOfEq_mk {I J : Ideal A} (h : I = J) (x : A) :
    quotientEquivAlgOfEq R₁ h (Ideal.Quotient.mk I x) = Ideal.Quotient.mk J x 
Arguments: (R₁ : Type u_1) {A : Type u_3} [CommSemiring R₁] [CommRing A] [Algebra R₁ A] {I J : Ideal A} (h : I = J) (x : A)
Goal: (Ideal.quotientEquivAlgOfEq R₁ h) ((Ideal.Quotient.mk I) x) = (Ideal.Quotient.mk J) x
-- Ideal.quotientEquivAlgOfEq_symm
@[simp]
theorem quotientEquivAlgOfEq_symm {I J : Ideal A} (h : I = J) :
    (quotientEquivAlgOfEq R₁ h).symm = quotientEquivAlgOfEq R₁ h.symm 
Arguments: (R₁ : Type u_1) {A : Type u_3} [CommSemiring R₁] [CommRing A] [Algebra R₁ A] {I J : Ideal A} (h : I = J)
Goal: (Ideal.quotientEquivAlgOfEq R₁ h).symm = Ideal.quotientEquivAlgOfEq R₁ ⋯
-- Ideal.comap_map_mk
lemma comap_map_mk {I J : Ideal R} (h : I ≤ J) :
    Ideal.comap (Ideal.Quotient.mk I) (Ideal.map (Ideal.Quotient.mk I) J) = J 
Arguments: {R : Type u} [CommRing R] {I J : Ideal R} (h : I ≤ J)
Goal: Ideal.comap (Ideal.Quotient.mk I) (Ideal.map (Ideal.Quotient.mk I) J) = J
-- DoubleQuot.ker_quotLeftToQuotSup
theorem ker_quotLeftToQuotSup : RingHom.ker (quotLeftToQuotSup I J) =
    J.map (Ideal.Quotient.mk I) 
Arguments: {R : Type u} [CommRing R] (I J : Ideal R)
Goal: RingHom.ker (DoubleQuot.quotLeftToQuotSup I J) = Ideal.map (Ideal.Quotient.mk I) J
-- DoubleQuot.ker_quotQuotMk
theorem ker_quotQuotMk : RingHom.ker (quotQuotMk I J) = I ⊔ J 
Arguments: {R : Type u} [CommRing R] (I J : Ideal R)
Goal: RingHom.ker (DoubleQuot.quotQuotMk I J) = I ⊔ J
-- DoubleQuot.quotQuotEquivQuotSup_quotQuotMk
@[simp]
theorem quotQuotEquivQuotSup_quotQuotMk (x : R) :
    quotQuotEquivQuotSup I J (quotQuotMk I J x) = Ideal.Quotient.mk (I ⊔ J) x 
Arguments: {R : Type u} [CommRing R] (I J : Ideal R) (x : R)
Goal: (DoubleQuot.quotQuotEquivQuotSup I J) ((DoubleQuot.quotQuotMk I J) x) = (Ideal.Quotient.mk (I ⊔ J)) x
-- DoubleQuot.quotQuotEquivQuotSup_symm_quotQuotMk
@[simp]
theorem quotQuotEquivQuotSup_symm_quotQuotMk (x : R) :
    (quotQuotEquivQuotSup I J).symm (Ideal.Quotient.mk (I ⊔ J) x) = quotQuotMk I J x 
Arguments: {R : Type u} [CommRing R] (I J : Ideal R) (x : R)
Goal: (DoubleQuot.quotQuotEquivQuotSup I J).symm ((Ideal.Quotient.mk (I ⊔ J)) x) = (DoubleQuot.quotQuotMk I J) x
-- DoubleQuot.quotQuotEquivComm_quotQuotMk
@[simp]
theorem quotQuotEquivComm_quotQuotMk (x : R) :
    quotQuotEquivComm I J (quotQuotMk I J x) = quotQuotMk J I x 
Arguments: {R : Type u} [CommRing R] (I J : Ideal R) (x : R)
Goal: (DoubleQuot.quotQuotEquivComm I J) ((DoubleQuot.quotQuotMk I J) x) = (DoubleQuot.quotQuotMk J I) x
-- DoubleQuot.quotQuotEquivComm_comp_quotQuotMk
@[simp]
theorem quotQuotEquivComm_comp_quotQuotMk :
    RingHom.comp (↑(quotQuotEquivComm I J)) (quotQuotMk I J) = quotQuotMk J I 
Arguments: {R : Type u} [CommRing R] (I J : Ideal R)
Goal: (↑(DoubleQuot.quotQuotEquivComm I J)).comp (DoubleQuot.quotQuotMk I J) = DoubleQuot.quotQuotMk J I
-- DoubleQuot.quotQuotEquivComm_symm
@[simp]
theorem quotQuotEquivComm_symm : (quotQuotEquivComm I J).symm = quotQuotEquivComm J I 
Arguments: {R : Type u} [CommRing R] (I J : Ideal R)
Goal: (DoubleQuot.quotQuotEquivComm I J).symm = DoubleQuot.quotQuotEquivComm J I
-- DoubleQuot.quotQuotEquivQuotOfLE_quotQuotMk
@[simp]
theorem quotQuotEquivQuotOfLE_quotQuotMk (x : R) (h : I ≤ J) :
    quotQuotEquivQuotOfLE h (quotQuotMk I J x) = (Ideal.Quotient.mk J) x 
Arguments: {R : Type u} [CommRing R] {I J : Ideal R} (x : R) (h : I ≤ J)
Goal: (DoubleQuot.quotQuotEquivQuotOfLE h) ((DoubleQuot.quotQuotMk I J) x) = (Ideal.Quotient.mk J) x
-- DoubleQuot.quotQuotEquivQuotOfLE_symm_mk
@[simp]
theorem quotQuotEquivQuotOfLE_symm_mk (x : R) (h : I ≤ J) :
    (quotQuotEquivQuotOfLE h).symm ((Ideal.Quotient.mk J) x) = quotQuotMk I J x 
Arguments: {R : Type u} [CommRing R] {I J : Ideal R} (x : R) (h : I ≤ J)
Goal: (DoubleQuot.quotQuotEquivQuotOfLE h).symm ((Ideal.Quotient.mk J) x) = (DoubleQuot.quotQuotMk I J) x
-- DoubleQuot.quotQuotEquivQuotOfLE_comp_quotQuotMk
theorem quotQuotEquivQuotOfLE_comp_quotQuotMk (h : I ≤ J) :
    RingHom.comp (↑(quotQuotEquivQuotOfLE h)) (quotQuotMk I J) = (Ideal.Quotient.mk J) 
Arguments: {R : Type u} [CommRing R] {I J : Ideal R} (h : I ≤ J)
Goal: (↑(DoubleQuot.quotQuotEquivQuotOfLE h)).comp (DoubleQuot.quotQuotMk I J) = Ideal.Quotient.mk J
-- DoubleQuot.quotQuotEquivQuotOfLE_symm_comp_mk
theorem quotQuotEquivQuotOfLE_symm_comp_mk (h : I ≤ J) :
    RingHom.comp (↑(quotQuotEquivQuotOfLE h).symm) (Ideal.Quotient.mk J) = quotQuotMk I J 
Arguments: {R : Type u} [CommRing R] {I J : Ideal R} (h : I ≤ J)
Goal: (↑(DoubleQuot.quotQuotEquivQuotOfLE h).symm).comp (Ideal.Quotient.mk J) = DoubleQuot.quotQuotMk I J
-- DoubleQuot.quotQuotEquivComm_mk_mk
@[simp]
theorem quotQuotEquivComm_mk_mk [CommRing R] (I J : Ideal R) (x : R) :
    quotQuotEquivComm I J (Ideal.Quotient.mk _ (Ideal.Quotient.mk _ x)) = algebraMap R _ x 
Arguments: {R : Type u} [CommRing R] (I J : Ideal R) (x : R)
Goal: (DoubleQuot.quotQuotEquivComm I J) ((Ideal.Quotient.mk (Ideal.map (Ideal.Quotient.mk I) J)) ((Ideal.Quotient.mk I) x)) =
  (algebraMap R ((R ⧸ J) ⧸ Ideal.map (Ideal.Quotient.mk J) I)) x
-- DoubleQuot.quotQuotEquivQuotSup_quot_quot_algebraMap
@[simp]
theorem quotQuotEquivQuotSup_quot_quot_algebraMap (x : R) :
    DoubleQuot.quotQuotEquivQuotSup I J (algebraMap R _ x) = algebraMap _ _ x 
Arguments: {R : Type u} [CommSemiring R] {A : Type v} [CommRing A] [Algebra R A] (I J : Ideal A) (x : R)
Goal: (DoubleQuot.quotQuotEquivQuotSup I J) ((algebraMap R ((A ⧸ I) ⧸ Ideal.map (Ideal.Quotient.mk I) J)) x) =
  (algebraMap R (A ⧸ I ⊔ J)) x
-- DoubleQuot.quotQuotEquivComm_algebraMap
@[simp]
theorem quotQuotEquivComm_algebraMap (x : R) :
    quotQuotEquivComm I J (algebraMap R _ x) = algebraMap _ _ x 
Arguments: {R : Type u} [CommSemiring R] {A : Type v} [CommRing A] [Algebra R A] (I J : Ideal A) (x : R)
Goal: (DoubleQuot.quotQuotEquivComm I J) ((algebraMap R ((A ⧸ I) ⧸ Ideal.map (Ideal.Quotient.mk I) J)) x) =
  (algebraMap R ((A ⧸ J) ⧸ Ideal.map (Ideal.Quotient.mk J) I)) x
-- DoubleQuot.quotLeftToQuotSupₐ_toRingHom
@[simp]
theorem quotLeftToQuotSupₐ_toRingHom :
    (quotLeftToQuotSupₐ R I J : _ →+* _) = quotLeftToQuotSup I J 
Arguments: (R : Type u) {A : Type u_1} [CommSemiring R] [CommRing A] [Algebra R A] (I J : Ideal A)
Goal: ↑(DoubleQuot.quotLeftToQuotSupₐ R I J) = DoubleQuot.quotLeftToQuotSup I J
-- DoubleQuot.coe_quotLeftToQuotSupₐ
@[simp]
theorem coe_quotLeftToQuotSupₐ : ⇑(quotLeftToQuotSupₐ R I J) = quotLeftToQuotSup I J 
Arguments: (R : Type u) {A : Type u_1} [CommSemiring R] [CommRing A] [Algebra R A] (I J : Ideal A)
Goal: ⇑(DoubleQuot.quotLeftToQuotSupₐ R I J) = ⇑(DoubleQuot.quotLeftToQuotSup I J)
-- DoubleQuot.quotQuotToQuotSupₐ_toRingHom
@[simp]
theorem quotQuotToQuotSupₐ_toRingHom :
    ((quotQuotToQuotSupₐ R I J) : _ ⧸ map (Ideal.Quotient.mkₐ R I) J →+* _) =
      quotQuotToQuotSup I J 
Arguments: (R : Type u) {A : Type u_1} [CommSemiring R] [CommRing A] [Algebra R A] (I J : Ideal A)
Goal: ↑(DoubleQuot.quotQuotToQuotSupₐ R I J) = DoubleQuot.quotQuotToQuotSup I J
-- DoubleQuot.coe_quotQuotToQuotSupₐ
@[simp]
theorem coe_quotQuotToQuotSupₐ : ⇑(quotQuotToQuotSupₐ R I J) = quotQuotToQuotSup I J 
Arguments: (R : Type u) {A : Type u_1} [CommSemiring R] [CommRing A] [Algebra R A] (I J : Ideal A)
Goal: ⇑(DoubleQuot.quotQuotToQuotSupₐ R I J) = ⇑(DoubleQuot.quotQuotToQuotSup I J)
-- DoubleQuot.quotQuotMkₐ_toRingHom
@[simp]
theorem quotQuotMkₐ_toRingHom :
    (quotQuotMkₐ R I J : _ →+* _ ⧸ J.map (Quotient.mkₐ R I)) = quotQuotMk I J 
Arguments: (R : Type u) {A : Type u_1} [CommSemiring R] [CommRing A] [Algebra R A] (I J : Ideal A)
Goal: ↑(DoubleQuot.quotQuotMkₐ R I J) = DoubleQuot.quotQuotMk I J
-- DoubleQuot.coe_quotQuotMkₐ
@[simp]
theorem coe_quotQuotMkₐ : ⇑(quotQuotMkₐ R I J) = quotQuotMk I J 
Arguments: (R : Type u) {A : Type u_1} [CommSemiring R] [CommRing A] [Algebra R A] (I J : Ideal A)
Goal: ⇑(DoubleQuot.quotQuotMkₐ R I J) = ⇑(DoubleQuot.quotQuotMk I J)
-- DoubleQuot.liftSupQuotQuotMkₐ_toRingHom
@[simp]
theorem liftSupQuotQuotMkₐ_toRingHom :
    (liftSupQuotQuotMkₐ R I J : _ →+* _ ⧸ J.map (Quotient.mkₐ R I)) = liftSupQuotQuotMk I J 
Arguments: (R : Type u) {A : Type u_1} [CommSemiring R] [CommRing A] [Algebra R A] (I J : Ideal A)
Goal: ↑(DoubleQuot.liftSupQuotQuotMkₐ R I J) = DoubleQuot.liftSupQuotQuotMk I J
-- DoubleQuot.coe_liftSupQuotQuotMkₐ
@[simp]
theorem coe_liftSupQuotQuotMkₐ : ⇑(liftSupQuotQuotMkₐ R I J) = liftSupQuotQuotMk I J 
Arguments: (R : Type u) {A : Type u_1} [CommSemiring R] [CommRing A] [Algebra R A] (I J : Ideal A)
Goal: ⇑(DoubleQuot.liftSupQuotQuotMkₐ R I J) = ⇑(DoubleQuot.liftSupQuotQuotMk I J)
-- DoubleQuot.quotQuotEquivQuotSupₐ_toRingEquiv
@[simp]
theorem quotQuotEquivQuotSupₐ_toRingEquiv :
    (quotQuotEquivQuotSupₐ R I J : _ ⧸ J.map (Quotient.mkₐ R I) ≃+* _) = quotQuotEquivQuotSup I J 
Arguments: (R : Type u) {A : Type u_1} [CommSemiring R] [CommRing A] [Algebra R A] (I J : Ideal A)
Goal: ↑(DoubleQuot.quotQuotEquivQuotSupₐ R I J) = DoubleQuot.quotQuotEquivQuotSup I J
-- DoubleQuot.coe_quotQuotEquivQuotSupₐ
@[simp]
-- Porting note: had to add an extra coercion arrow on the right hand side.
theorem coe_quotQuotEquivQuotSupₐ : ⇑(quotQuotEquivQuotSupₐ R I J) = ⇑(quotQuotEquivQuotSup I J) 
Arguments: (R : Type u) {A : Type u_1} [CommSemiring R] [CommRing A] [Algebra R A] (I J : Ideal A)
Goal: ⇑(DoubleQuot.quotQuotEquivQuotSupₐ R I J) = ⇑(DoubleQuot.quotQuotEquivQuotSup I J)
-- DoubleQuot.quotQuotEquivQuotSupₐ_symm_toRingEquiv
@[simp]
theorem quotQuotEquivQuotSupₐ_symm_toRingEquiv :
    ((quotQuotEquivQuotSupₐ R I J).symm : _ ≃+* _ ⧸ J.map (Quotient.mkₐ R I)) =
      (quotQuotEquivQuotSup I J).symm 
Arguments: (R : Type u) {A : Type u_1} [CommSemiring R] [CommRing A] [Algebra R A] (I J : Ideal A)
Goal: ↑(DoubleQuot.quotQuotEquivQuotSupₐ R I J).symm = (DoubleQuot.quotQuotEquivQuotSup I J).symm
-- DoubleQuot.coe_quotQuotEquivQuotSupₐ_symm
@[simp]
-- Porting note: had to add an extra coercion arrow on the right hand side.
theorem coe_quotQuotEquivQuotSupₐ_symm :
    ⇑(quotQuotEquivQuotSupₐ R I J).symm = ⇑(quotQuotEquivQuotSup I J).symm 
Arguments: (R : Type u) {A : Type u_1} [CommSemiring R] [CommRing A] [Algebra R A] (I J : Ideal A)
Goal: ⇑(DoubleQuot.quotQuotEquivQuotSupₐ R I J).symm = ⇑(DoubleQuot.quotQuotEquivQuotSup I J).symm
-- DoubleQuot.quotQuotEquivCommₐ_toRingEquiv
@[simp]
theorem quotQuotEquivCommₐ_toRingEquiv :
    (quotQuotEquivCommₐ R I J : _ ⧸ J.map (Quotient.mkₐ R I) ≃+* _ ⧸ I.map (Quotient.mkₐ R J)) =
      quotQuotEquivComm I J 
Arguments: (R : Type u) {A : Type u_1} [CommSemiring R] [CommRing A] [Algebra R A] (I J : Ideal A)
Goal: ↑(DoubleQuot.quotQuotEquivCommₐ R I J) = DoubleQuot.quotQuotEquivComm I J
-- DoubleQuot.coe_quotQuotEquivCommₐ
@[simp]
theorem coe_quotQuotEquivCommₐ : ⇑(quotQuotEquivCommₐ R I J) = ⇑(quotQuotEquivComm I J) 
Arguments: (R : Type u) {A : Type u_1} [CommSemiring R] [CommRing A] [Algebra R A] (I J : Ideal A)
Goal: ⇑(DoubleQuot.quotQuotEquivCommₐ R I J) = ⇑(DoubleQuot.quotQuotEquivComm I J)
-- DoubleQuot.quotQuotEquivComm_symmₐ
@[simp]
theorem quotQuotEquivComm_symmₐ : (quotQuotEquivCommₐ R I J).symm = quotQuotEquivCommₐ R J I 
Arguments: (R : Type u) {A : Type u_1} [CommSemiring R] [CommRing A] [Algebra R A] (I J : Ideal A)
Goal: (DoubleQuot.quotQuotEquivCommₐ R I J).symm = DoubleQuot.quotQuotEquivCommₐ R J I
-- DoubleQuot.quotQuotEquivComm_comp_quotQuotMkₐ
@[simp]
theorem quotQuotEquivComm_comp_quotQuotMkₐ :
    AlgHom.comp (↑(quotQuotEquivCommₐ R I J)) (quotQuotMkₐ R I J) = quotQuotMkₐ R J I 
Arguments: (R : Type u) {A : Type u_1} [CommSemiring R] [CommRing A] [Algebra R A] (I J : Ideal A)
Goal: (↑(DoubleQuot.quotQuotEquivCommₐ R I J)).comp (DoubleQuot.quotQuotMkₐ R I J) = DoubleQuot.quotQuotMkₐ R J I
-- DoubleQuot.quotQuotEquivQuotOfLEₐ_toRingEquiv
@[simp]
theorem quotQuotEquivQuotOfLEₐ_toRingEquiv (h : I ≤ J) :
    (quotQuotEquivQuotOfLEₐ R h : _ ⧸ J.map (Quotient.mkₐ R I) ≃+* _) = quotQuotEquivQuotOfLE h 
Arguments: (R : Type u) {A : Type u_1} [CommSemiring R] [CommRing A] [Algebra R A] {I J : Ideal A} (h : I ≤ J)
Goal: ↑(DoubleQuot.quotQuotEquivQuotOfLEₐ R h) = DoubleQuot.quotQuotEquivQuotOfLE h
-- DoubleQuot.coe_quotQuotEquivQuotOfLEₐ
@[simp]
-- Porting note: had to add an extra coercion arrow on the right hand side.
theorem coe_quotQuotEquivQuotOfLEₐ (h : I ≤ J) :
    ⇑(quotQuotEquivQuotOfLEₐ R h) = ⇑(quotQuotEquivQuotOfLE h) 
Arguments: (R : Type u) {A : Type u_1} [CommSemiring R] [CommRing A] [Algebra R A] {I J : Ideal A} (h : I ≤ J)
Goal: ⇑(DoubleQuot.quotQuotEquivQuotOfLEₐ R h) = ⇑(DoubleQuot.quotQuotEquivQuotOfLE h)
-- DoubleQuot.quotQuotEquivQuotOfLEₐ_symm_toRingEquiv
@[simp]
theorem quotQuotEquivQuotOfLEₐ_symm_toRingEquiv (h : I ≤ J) :
    ((quotQuotEquivQuotOfLEₐ R h).symm : _ ≃+* _ ⧸ J.map (Quotient.mkₐ R I)) =
      (quotQuotEquivQuotOfLE h).symm 
Arguments: (R : Type u) {A : Type u_1} [CommSemiring R] [CommRing A] [Algebra R A] {I J : Ideal A} (h : I ≤ J)
Goal: ↑(DoubleQuot.quotQuotEquivQuotOfLEₐ R h).symm = (DoubleQuot.quotQuotEquivQuotOfLE h).symm
-- DoubleQuot.coe_quotQuotEquivQuotOfLEₐ_symm
@[simp]
-- Porting note: had to add an extra coercion arrow on the right hand side.
theorem coe_quotQuotEquivQuotOfLEₐ_symm (h : I ≤ J) :
    ⇑(quotQuotEquivQuotOfLEₐ R h).symm = ⇑(quotQuotEquivQuotOfLE h).symm 
Arguments: (R : Type u) {A : Type u_1} [CommSemiring R] [CommRing A] [Algebra R A] {I J : Ideal A} (h : I ≤ J)
Goal: ⇑(DoubleQuot.quotQuotEquivQuotOfLEₐ R h).symm = ⇑(DoubleQuot.quotQuotEquivQuotOfLE h).symm
-- DoubleQuot.quotQuotEquivQuotOfLE_comp_quotQuotMkₐ
@[simp]
theorem quotQuotEquivQuotOfLE_comp_quotQuotMkₐ (h : I ≤ J) :
    AlgHom.comp (↑(quotQuotEquivQuotOfLEₐ R h)) (quotQuotMkₐ R I J) = Quotient.mkₐ R J 
Arguments: (R : Type u) {A : Type u_1} [CommSemiring R] [CommRing A] [Algebra R A] {I J : Ideal A} (h : I ≤ J)
Goal: (↑(DoubleQuot.quotQuotEquivQuotOfLEₐ R h)).comp (DoubleQuot.quotQuotMkₐ R I J) = Ideal.Quotient.mkₐ R J
-- DoubleQuot.quotQuotEquivQuotOfLE_symm_comp_mkₐ
@[simp]
theorem quotQuotEquivQuotOfLE_symm_comp_mkₐ (h : I ≤ J) :
    AlgHom.comp (↑(quotQuotEquivQuotOfLEₐ R h).symm) (Quotient.mkₐ R J) = quotQuotMkₐ R I J 
Arguments: (R : Type u) {A : Type u_1} [CommSemiring R] [CommRing A] [Algebra R A] {I J : Ideal A} (h : I ≤ J)
Goal: (↑(DoubleQuot.quotQuotEquivQuotOfLEₐ R h).symm).comp (Ideal.Quotient.mkₐ R J) = DoubleQuot.quotQuotMkₐ R I J
-- RootPairing.IsRootPositive.apply_reflection_eq
class IsRootPositive (P : RootPairing ι R M N) (B : M →ₗ[R] M →ₗ[R] R) : Prop where
  zero_lt_apply_root : ∀ i, 0 < B (P.root i) (P.root i)
  symm : ∀ x y, B x y = B y x
  apply_reflection_eq : ∀ i x y, B (P.reflection i x) (P.reflection i y) = B x y
Arguments: {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [LinearOrderedCommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} {B : M →ₗ[R] M →ₗ[R] R} [self : P.IsRootPositive B] (i : ι) (x y : M)
Goal: (B ((P.reflection i) x)) ((P.reflection i) y) = (B x) y
-- RootPairing.IsRootPositive.zero_lt_apply_root
class IsRootPositive (P : RootPairing ι R M N) (B : M →ₗ[R] M →ₗ[R] R) : Prop where
  zero_lt_apply_root : ∀ i, 0 < B (P.root i) (P.root i)
  symm : ∀ x y, B x y = B y x
  apply_reflection_eq : ∀ i x y, B (P.reflection i x) (P.reflection i y) = B x y
Arguments: {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [LinearOrderedCommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} {B : M →ₗ[R] M →ₗ[R] R} [self : P.IsRootPositive B] (i : ι)
Goal: 0 < (B (P.root i)) (P.root i)
-- RootPairing.IsRootPositive.symm
class IsRootPositive (P : RootPairing ι R M N) (B : M →ₗ[R] M →ₗ[R] R) : Prop where
  zero_lt_apply_root : ∀ i, 0 < B (P.root i) (P.root i)
  symm : ∀ x y, B x y = B y x
  apply_reflection_eq : ∀ i x y, B (P.reflection i x) (P.reflection i y) = B x y
Arguments: {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [LinearOrderedCommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) {B : M →ₗ[R] M →ₗ[R] R} [self : P.IsRootPositive B] (x y : M)
Goal: (B x) y = (B y) x
-- RootPairing.two_mul_apply_root_root
lemma two_mul_apply_root_root :
    2 * B (P.root i) (P.root j) = P.pairing i j * B (P.root j) (P.root j) 
Arguments: {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [LinearOrderedCommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} (B : M →ₗ[R] M →ₗ[R] R) [P.IsRootPositive B] (i j : ι)
Goal: 2 * (B (P.root i)) (P.root j) = P.pairing i j * (B (P.root j)) (P.root j)
-- RootPairing.zero_lt_apply_root_root_iff
@[simp]
lemma zero_lt_apply_root_root_iff : 0 < B (P.root i) (P.root j) ↔ 0 < P.pairing i j 
Arguments: {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [LinearOrderedCommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} (B : M →ₗ[R] M →ₗ[R] R) [P.IsRootPositive B] (i j : ι)
Goal: 0 < (B (P.root i)) (P.root j) ↔ 0 < P.pairing i j
-- RootPairing.zero_lt_pairing_iff
lemma zero_lt_pairing_iff : 0 < P.pairing i j ↔ 0 < P.pairing j i 
Arguments: {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [LinearOrderedCommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} (B : M →ₗ[R] M →ₗ[R] R) [P.IsRootPositive B] (i j : ι)
Goal: 0 < P.pairing i j ↔ 0 < P.pairing j i
-- RootPairing.coxeterWeight_non_neg
lemma coxeterWeight_non_neg : 0 ≤ P.coxeterWeight i j 
Arguments: {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [LinearOrderedCommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} (B : M →ₗ[R] M →ₗ[R] R) [P.IsRootPositive B] (i j : ι)
Goal: 0 ≤ P.coxeterWeight i j
-- RootPairing.apply_root_root_zero_iff
@[simp]
lemma apply_root_root_zero_iff : B (P.root i) (P.root j) = 0 ↔ P.pairing i j = 0 
Arguments: {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [LinearOrderedCommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} (B : M →ₗ[R] M →ₗ[R] R) [P.IsRootPositive B] (i j : ι)
Goal: (B (P.root i)) (P.root j) = 0 ↔ P.pairing i j = 0
-- RootPairing.pairing_zero_iff
lemma pairing_zero_iff : P.pairing i j = 0 ↔ P.pairing j i = 0 
Arguments: {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [LinearOrderedCommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} (B : M →ₗ[R] M →ₗ[R] R) [P.IsRootPositive B] (i j : ι)
Goal: P.pairing i j = 0 ↔ P.pairing j i = 0
-- RootPairing.coxeterWeight_zero_iff_isOrthogonal
lemma coxeterWeight_zero_iff_isOrthogonal : P.coxeterWeight i j = 0 ↔ P.IsOrthogonal i j 
Arguments: {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [LinearOrderedCommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} (B : M →ₗ[R] M →ₗ[R] R) [P.IsRootPositive B] (i j : ι)
Goal: P.coxeterWeight i j = 0 ↔ P.IsOrthogonal i j
-- LinearMap.det_zero''
@[simp]
theorem LinearMap.det_zero'' {R M : Type*} [CommRing R] [AddCommGroup M] [Module R M]
    [Module.Free R M] [Module.Finite R M] [Nontrivial M] : LinearMap.det (0 : M →ₗ[R] M) = 0 
Arguments: {R : Type u_1} {M : Type u_2} [CommRing R] [AddCommGroup M] [Module R M] [Module.Free R M] [Module.Finite R M] [Nontrivial M]
Goal: LinearMap.det 0 = 0
-- Module.Finite.of_basis
theorem _root_.Module.Finite.of_basis {R M ι : Type*} [Semiring R] [AddCommMonoid M] [Module R M]
    [_root_.Finite ι] (b : Basis ι R M) : Module.Finite R M 
Arguments: {R : Type u_1} {M : Type u_2} {ι : Type u_3} [Semiring R] [AddCommMonoid M] [Module R M] [Finite ι] (b : Basis ι R M)
Goal: Module.Finite R M
-- RingHom.surjective_localRingHom_iff
lemma surjective_localRingHom_iff (P : Ideal S) [P.IsPrime] :
    Function.Surjective (Localization.localRingHom _ P f rfl) ↔
      ∀ s : S, ∃ x r : R, ∃ c ∉ P, f r ∉ P ∧ c * f r * s = c * f x 
Arguments: {R : Type u_1} [CommRing R] {S : Type u_2} [CommRing S] {f : R →+* S} (P : Ideal S) [P.IsPrime]
Goal: Function.Surjective ⇑(Localization.localRingHom (Ideal.comap f P) P f ⋯) ↔
  ∀ (s : S), ∃ x r, ∃ c ∉ P, f r ∉ P ∧ c * f r * s = c * f x
-- RingHom.surjectiveOnStalks_iff_forall_ideal
lemma surjectiveOnStalks_iff_forall_ideal :
    f.SurjectiveOnStalks ↔
      ∀ I : Ideal S, I ≠ ⊤ → ∀ s : S, ∃ x r : R, ∃ c ∉ I, f r ∉ I ∧ c * f r * s = c * f x 
Arguments: {R : Type u_1} [CommRing R] {S : Type u_2} [CommRing S] {f : R →+* S}
Goal: f.SurjectiveOnStalks ↔ ∀ (I : Ideal S), I ≠ ⊤ → ∀ (s : S), ∃ x r, ∃ c ∉ I, f r ∉ I ∧ c * f r * s = c * f x
-- RingHom.surjectiveOnStalks_iff_forall_maximal
lemma surjectiveOnStalks_iff_forall_maximal :
    f.SurjectiveOnStalks ↔ ∀ (I : Ideal S) (_ : I.IsMaximal),
      Function.Surjective (Localization.localRingHom _ I f rfl) 
Arguments: {R : Type u_1} [CommRing R] {S : Type u_2} [CommRing S] {f : R →+* S}
Goal: f.SurjectiveOnStalks ↔
  ∀ (I : Ideal S) (x : I.IsMaximal), Function.Surjective ⇑(Localization.localRingHom (Ideal.comap f I) I f ⋯)
-- RingHom.surjectiveOnStalks_iff_forall_maximal'
lemma surjectiveOnStalks_iff_forall_maximal' :
    f.SurjectiveOnStalks ↔ ∀ I : Ideal S, I.IsMaximal →
      ∀ s : S, ∃ x r : R, ∃ c ∉ I, f r ∉ I ∧ c * f r * s = c * f x 
Arguments: {R : Type u_1} [CommRing R] {S : Type u_2} [CommRing S] {f : R →+* S}
Goal: f.SurjectiveOnStalks ↔ ∀ (I : Ideal S), I.IsMaximal → ∀ (s : S), ∃ x r, ∃ c ∉ I, f r ∉ I ∧ c * f r * s = c * f x