ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- LinearMap.injective_or_eq_zero
theorem injective_or_eq_zero [IsSimpleModule R M] (f : M →ₗ[R] N) :
    Function.Injective f ∨ f = 0 
Arguments: {R : Type u_2} [Ring R] {M : Type u_4} [AddCommGroup M] [Module R M] {N : Type u_5} [AddCommGroup N] [Module R N] [IsSimpleModule R M] (f : M →ₗ[R] N)
Goal: Function.Injective ⇑f ∨ f = 0
-- LinearMap.injective_of_ne_zero
theorem injective_of_ne_zero [IsSimpleModule R M] {f : M →ₗ[R] N} (h : f ≠ 0) :
    Function.Injective f 
Arguments: {R : Type u_2} [Ring R] {M : Type u_4} [AddCommGroup M] [Module R M] {N : Type u_5} [AddCommGroup N] [Module R N] [IsSimpleModule R M] {f : M →ₗ[R] N} (h : f ≠ 0)
Goal: Function.Injective ⇑f
-- LinearMap.surjective_or_eq_zero
theorem surjective_or_eq_zero [IsSimpleModule R N] (f : M →ₗ[R] N) :
    Function.Surjective f ∨ f = 0 
Arguments: {R : Type u_2} [Ring R] {M : Type u_4} [AddCommGroup M] [Module R M] {N : Type u_5} [AddCommGroup N] [Module R N] [IsSimpleModule R N] (f : M →ₗ[R] N)
Goal: Function.Surjective ⇑f ∨ f = 0
-- LinearMap.surjective_of_ne_zero
theorem surjective_of_ne_zero [IsSimpleModule R N] {f : M →ₗ[R] N} (h : f ≠ 0) :
    Function.Surjective f 
Arguments: {R : Type u_2} [Ring R] {M : Type u_4} [AddCommGroup M] [Module R M] {N : Type u_5} [AddCommGroup N] [Module R N] [IsSimpleModule R N] {f : M →ₗ[R] N} (h : f ≠ 0)
Goal: Function.Surjective ⇑f
-- LinearMap.bijective_or_eq_zero
theorem bijective_or_eq_zero [IsSimpleModule R M] [IsSimpleModule R N] (f : M →ₗ[R] N) :
    Function.Bijective f ∨ f = 0 
Arguments: {R : Type u_2} [Ring R] {M : Type u_4} [AddCommGroup M] [Module R M] {N : Type u_5} [AddCommGroup N] [Module R N] [IsSimpleModule R M] [IsSimpleModule R N] (f : M →ₗ[R] N)
Goal: Function.Bijective ⇑f ∨ f = 0
-- LinearMap.bijective_of_ne_zero
theorem bijective_of_ne_zero [IsSimpleModule R M] [IsSimpleModule R N] {f : M →ₗ[R] N} (h : f ≠ 0) :
    Function.Bijective f 
Arguments: {R : Type u_2} [Ring R] {M : Type u_4} [AddCommGroup M] [Module R M] {N : Type u_5} [AddCommGroup N] [Module R N] [IsSimpleModule R M] [IsSimpleModule R N] {f : M →ₗ[R] N} (h : f ≠ 0)
Goal: Function.Bijective ⇑f
-- LinearMap.isCoatom_ker_of_surjective
theorem isCoatom_ker_of_surjective [IsSimpleModule R N] {f : M →ₗ[R] N}
    (hf : Function.Surjective f) : IsCoatom (LinearMap.ker f) 
Arguments: {R : Type u_2} [Ring R] {M : Type u_4} [AddCommGroup M] [Module R M] {N : Type u_5} [AddCommGroup N] [Module R N] [IsSimpleModule R N] {f : M →ₗ[R] N} (hf : Function.Surjective ⇑f)
Goal: IsCoatom (LinearMap.ker f)
-- JordanHolderModule.iso_symm
theorem iso_symm {X Y : Submodule R M × Submodule R M} : Iso X Y → Iso Y X 
Arguments: {R : Type u_2} [Ring R] {M : Type u_4} [AddCommGroup M] [Module R M] {X Y : Submodule R M × Submodule R M}
Goal: JordanHolderModule.Iso X Y → JordanHolderModule.Iso Y X
-- JordanHolderModule.iso_trans
theorem iso_trans {X Y Z : Submodule R M × Submodule R M} : Iso X Y → Iso Y Z → Iso X Z 
Arguments: {R : Type u_2} [Ring R] {M : Type u_4} [AddCommGroup M] [Module R M] {X Y Z : Submodule R M × Submodule R M}
Goal: JordanHolderModule.Iso X Y → JordanHolderModule.Iso Y Z → JordanHolderModule.Iso X Z
-- JordanHolderModule.second_iso
@[nolint unusedArguments]
theorem second_iso {X Y : Submodule R M} (_ : X ⋖ X ⊔ Y) :
    Iso (X,X ⊔ Y) (X ⊓ Y,Y) 
Arguments: {R : Type u_2} [Ring R] {M : Type u_4} [AddCommGroup M] [Module R M] {X Y : Submodule R M}
Goal: X ⋖ X ⊔ Y → JordanHolderModule.Iso (X, X ⊔ Y) (X ⊓ Y, Y)
-- RingHom.kerLift_mk
@[simp]
theorem kerLift_mk (r : R) : kerLift f (Ideal.Quotient.mk (ker f) r) = f r 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Semiring S] (f : R →+* S) (r : R)
Goal: f.kerLift ((Ideal.Quotient.mk (RingHom.ker f)) r) = f r
-- RingHom.lift_injective_of_ker_le_ideal
theorem lift_injective_of_ker_le_ideal (I : Ideal R) {f : R →+* S} (H : ∀ a : R, a ∈ I → f a = 0)
    (hI : ker f ≤ I) : Function.Injective (Ideal.Quotient.lift I f H) 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Semiring S] (I : Ideal R) {f : R →+* S} (H : ∀ a ∈ I, f a = 0) (hI : RingHom.ker f ≤ I)
Goal: Function.Injective ⇑(Ideal.Quotient.lift I f H)
-- RingHom.kerLift_injective
theorem kerLift_injective : Function.Injective (kerLift f) 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Semiring S] (f : R →+* S)
Goal: Function.Injective ⇑f.kerLift
-- RingHom.quotientKerEquivOfRightInverse.apply
@[simp]
theorem quotientKerEquivOfRightInverse.apply {g : S → R} (hf : Function.RightInverse g f)
    (x : R ⧸ ker f) : quotientKerEquivOfRightInverse hf x = kerLift f x 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Semiring S] {f : R →+* S} {g : S → R} (hf : Function.RightInverse g ⇑f) (x : R ⧸ RingHom.ker f)
Goal: (RingHom.quotientKerEquivOfRightInverse hf) x = f.kerLift x
-- RingHom.quotientKerEquivOfRightInverse.Symm.apply
@[simp]
theorem quotientKerEquivOfRightInverse.Symm.apply {g : S → R} (hf : Function.RightInverse g f)
    (x : S) : (quotientKerEquivOfRightInverse hf).symm x = Ideal.Quotient.mk (ker f) (g x) 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Semiring S] {f : R →+* S} {g : S → R} (hf : Function.RightInverse g ⇑f) (x : S)
Goal: (RingHom.quotientKerEquivOfRightInverse hf).symm x = (Ideal.Quotient.mk (RingHom.ker f)) (g x)
-- Ideal.map_quotient_self
@[simp]
theorem map_quotient_self (I : Ideal R) : map (Quotient.mk I) I = ⊥ 
Arguments: {R : Type u} [CommRing R] (I : Ideal R)
Goal: Ideal.map (Ideal.Quotient.mk I) I = ⊥
-- Ideal.mk_ker
@[simp]
theorem mk_ker {I : Ideal R} : ker (Quotient.mk I) = I 
Arguments: {R : Type u} [CommRing R] {I : Ideal R}
Goal: RingHom.ker (Ideal.Quotient.mk I) = I
-- Ideal.map_mk_eq_bot_of_le
theorem map_mk_eq_bot_of_le {I J : Ideal R} (h : I ≤ J) : I.map (Quotient.mk J) = ⊥ 
Arguments: {R : Type u} [CommRing R] {I J : Ideal R} (h : I ≤ J)
Goal: Ideal.map (Ideal.Quotient.mk J) I = ⊥
-- Ideal.ker_quotient_lift
theorem ker_quotient_lift {I : Ideal R} (f : R →+* S)
    (H : I ≤ ker f) :
    ker (Ideal.Quotient.lift I f H) = f.ker.map (Quotient.mk I) 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Semiring S] {I : Ideal R} (f : R →+* S) (H : I ≤ RingHom.ker f)
Goal: RingHom.ker (Ideal.Quotient.lift I f H) = Ideal.map (Ideal.Quotient.mk I) (RingHom.ker f)
-- Ideal.injective_lift_iff
lemma injective_lift_iff {I : Ideal R} {f : R →+* S} (H : ∀ (a : R), a ∈ I → f a = 0) :
    Injective (Quotient.lift I f H) ↔ ker f = I 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Semiring S] {I : Ideal R} {f : R →+* S} (H : ∀ a ∈ I, f a = 0)
Goal: Function.Injective ⇑(Ideal.Quotient.lift I f H) ↔ RingHom.ker f = I
-- Ideal.ker_Pi_Quotient_mk
lemma ker_Pi_Quotient_mk {ι : Type*} (I : ι → Ideal R) :
    ker (Pi.ringHom fun i : ι ↦ Quotient.mk (I i)) = ⨅ i, I i 
Arguments: {R : Type u} [CommRing R] {ι : Type u_1} (I : ι → Ideal R)
Goal: RingHom.ker (Pi.ringHom fun i => Ideal.Quotient.mk (I i)) = ⨅ i, I i
-- Ideal.bot_quotient_isMaximal_iff
@[simp]
theorem bot_quotient_isMaximal_iff (I : Ideal R) : (⊥ : Ideal (R ⧸ I)).IsMaximal ↔ I.IsMaximal 
Arguments: {R : Type u} [CommRing R] (I : Ideal R)
Goal: ⊥.IsMaximal ↔ I.IsMaximal
-- Ideal.mem_quotient_iff_mem_sup
@[simp]
theorem mem_quotient_iff_mem_sup {I J : Ideal R} {x : R} :
    Quotient.mk I x ∈ J.map (Quotient.mk I) ↔ x ∈ J ⊔ I 
Arguments: {R : Type u} [CommRing R] {I J : Ideal R} {x : R}
Goal: (Ideal.Quotient.mk I) x ∈ Ideal.map (Ideal.Quotient.mk I) J ↔ x ∈ J ⊔ I
-- Ideal.mem_quotient_iff_mem
theorem mem_quotient_iff_mem {I J : Ideal R} (hIJ : I ≤ J) {x : R} :
    Quotient.mk I x ∈ J.map (Quotient.mk I) ↔ x ∈ J 
Arguments: {R : Type u} [CommRing R] {I J : Ideal R} (hIJ : I ≤ J) {x : R}
Goal: (Ideal.Quotient.mk I) x ∈ Ideal.map (Ideal.Quotient.mk I) J ↔ x ∈ J
-- Ideal.quotientInfToPiQuotient_mk
lemma quotientInfToPiQuotient_mk (I : ι → Ideal R) (x : R) :
    quotientInfToPiQuotient I (Quotient.mk _ x) = fun i : ι ↦ Quotient.mk (I i) x 
Arguments: {R : Type u} [CommRing R] {ι : Type u_1} (I : ι → Ideal R) (x : R)
Goal: (Ideal.quotientInfToPiQuotient I) ((Ideal.Quotient.mk (⨅ i, I i)) x) = fun i => (Ideal.Quotient.mk (I i)) x
-- Ideal.quotientInfToPiQuotient_mk'
lemma quotientInfToPiQuotient_mk' (I : ι → Ideal R) (x : R) (i : ι) :
    quotientInfToPiQuotient I (Quotient.mk _ x) i = Quotient.mk (I i) x 
Arguments: {R : Type u} [CommRing R] {ι : Type u_1} (I : ι → Ideal R) (x : R) (i : ι)
Goal: (Ideal.quotientInfToPiQuotient I) ((Ideal.Quotient.mk (⨅ i, I i)) x) i = (Ideal.Quotient.mk (I i)) x
-- Ideal.quotientInfToPiQuotient_inj
lemma quotientInfToPiQuotient_inj (I : ι → Ideal R) : Injective (quotientInfToPiQuotient I) 
Arguments: {R : Type u} [CommRing R] {ι : Type u_1} (I : ι → Ideal R)
Goal: Function.Injective ⇑(Ideal.quotientInfToPiQuotient I)
-- Ideal.quotientInfToPiQuotient_surj
lemma quotientInfToPiQuotient_surj [Finite ι] {I : ι → Ideal R}
    (hI : Pairwise fun i j => IsCoprime (I i) (I j)) : Surjective (quotientInfToPiQuotient I) 
Arguments: {R : Type u} [CommRing R] {ι : Type u_1} [Finite ι] {I : ι → Ideal R} (hI : Pairwise fun i j => IsCoprime (I i) (I j))
Goal: Function.Surjective ⇑(Ideal.quotientInfToPiQuotient I)
-- Ideal.pi_quotient_surjective
lemma pi_quotient_surjective {R : Type*} [CommRing R] {ι : Type*} [Finite ι] {I : ι → Ideal R}
    (hf : Pairwise fun i j ↦ IsCoprime (I i) (I j)) (x : (i : ι) → R ⧸ I i) :
    ∃ r : R, ∀ i, r = x i 
Arguments: {R : Type u_2} [CommRing R] {ι : Type u_3} [Finite ι] {I : ι → Ideal R} (hf : Pairwise fun i j => IsCoprime (I i) (I j)) (x : (i : ι) → R ⧸ I i)
Goal: ∃ r, ∀ (i : ι), (Ideal.Quotient.mk (I i)) r = x i
-- Ideal.exists_forall_sub_mem_ideal
lemma exists_forall_sub_mem_ideal {R : Type*} [CommRing R] {ι : Type*} [Finite ι]
    {I : ι → Ideal R} (hI : Pairwise fun i j ↦ IsCoprime (I i) (I j)) (x : ι → R) :
    ∃ r : R, ∀ i, r - x i ∈ I i 
Arguments: {R : Type u_2} [CommRing R] {ι : Type u_3} [Finite ι] {I : ι → Ideal R} (hI : Pairwise fun i j => IsCoprime (I i) (I j)) (x : ι → R)
Goal: ∃ r, ∀ (i : ι), r - x i ∈ I i
-- Ideal.quotientInfEquivQuotientProd_fst
@[simp]
theorem quotientInfEquivQuotientProd_fst (I J : Ideal R) (coprime : IsCoprime I J) (x : R ⧸ I ⊓ J) :
    (quotientInfEquivQuotientProd I J coprime x).fst =
      Ideal.Quotient.factor (I ⊓ J) I inf_le_left x 
Arguments: {R : Type u} [CommRing R] (I J : Ideal R) (coprime : IsCoprime I J) (x : R ⧸ I ⊓ J)
Goal: ((I.quotientInfEquivQuotientProd J coprime) x).1 = (Ideal.Quotient.factor (I ⊓ J) I ⋯) x
-- Ideal.quotientInfEquivQuotientProd_snd
@[simp]
theorem quotientInfEquivQuotientProd_snd (I J : Ideal R) (coprime : IsCoprime I J) (x : R ⧸ I ⊓ J) :
    (quotientInfEquivQuotientProd I J coprime x).snd =
      Ideal.Quotient.factor (I ⊓ J) J inf_le_right x 
Arguments: {R : Type u} [CommRing R] (I J : Ideal R) (coprime : IsCoprime I J) (x : R ⧸ I ⊓ J)
Goal: ((I.quotientInfEquivQuotientProd J coprime) x).2 = (Ideal.Quotient.factor (I ⊓ J) J ⋯) x
-- Ideal.fst_comp_quotientInfEquivQuotientProd
@[simp]
theorem fst_comp_quotientInfEquivQuotientProd (I J : Ideal R) (coprime : IsCoprime I J) :
    (RingHom.fst _ _).comp
        (quotientInfEquivQuotientProd I J coprime : R ⧸ I ⊓ J →+* (R ⧸ I) × R ⧸ J) =
      Ideal.Quotient.factor (I ⊓ J) I inf_le_left 
Arguments: {R : Type u} [CommRing R] (I J : Ideal R) (coprime : IsCoprime I J)
Goal: (RingHom.fst (R ⧸ I) (R ⧸ J)).comp ↑(I.quotientInfEquivQuotientProd J coprime) = Ideal.Quotient.factor (I ⊓ J) I ⋯
-- Ideal.snd_comp_quotientInfEquivQuotientProd
@[simp]
theorem snd_comp_quotientInfEquivQuotientProd (I J : Ideal R) (coprime : IsCoprime I J) :
    (RingHom.snd _ _).comp
        (quotientInfEquivQuotientProd I J coprime : R ⧸ I ⊓ J →+* (R ⧸ I) × R ⧸ J) =
      Ideal.Quotient.factor (I ⊓ J) J inf_le_right 
Arguments: {R : Type u} [CommRing R] (I J : Ideal R) (coprime : IsCoprime I J)
Goal: (RingHom.snd (R ⧸ I) (R ⧸ J)).comp ↑(I.quotientInfEquivQuotientProd J coprime) = Ideal.Quotient.factor (I ⊓ J) J ⋯
-- Ideal.quotientMulEquivQuotientProd_fst
@[simp]
theorem quotientMulEquivQuotientProd_fst (I J : Ideal R) (coprime : IsCoprime I J) (x : R ⧸ I * J) :
    (quotientMulEquivQuotientProd I J coprime x).fst =
      Ideal.Quotient.factor (I * J) I mul_le_right x 
Arguments: {R : Type u} [CommRing R] (I J : Ideal R) (coprime : IsCoprime I J) (x : R ⧸ I * J)
Goal: ((I.quotientMulEquivQuotientProd J coprime) x).1 = (Ideal.Quotient.factor (I * J) I ⋯) x
-- Ideal.quotientMulEquivQuotientProd_snd
@[simp]
theorem quotientMulEquivQuotientProd_snd (I J : Ideal R) (coprime : IsCoprime I J) (x : R ⧸ I * J) :
    (quotientMulEquivQuotientProd I J coprime x).snd =
      Ideal.Quotient.factor (I * J) J mul_le_left x 
Arguments: {R : Type u} [CommRing R] (I J : Ideal R) (coprime : IsCoprime I J) (x : R ⧸ I * J)
Goal: ((I.quotientMulEquivQuotientProd J coprime) x).2 = (Ideal.Quotient.factor (I * J) J ⋯) x
-- Ideal.fst_comp_quotientMulEquivQuotientProd
@[simp]
theorem fst_comp_quotientMulEquivQuotientProd (I J : Ideal R) (coprime : IsCoprime I J) :
    (RingHom.fst _ _).comp
        (quotientMulEquivQuotientProd I J coprime : R ⧸ I * J →+* (R ⧸ I) × R ⧸ J) =
      Ideal.Quotient.factor (I * J) I mul_le_right 
Arguments: {R : Type u} [CommRing R] (I J : Ideal R) (coprime : IsCoprime I J)
Goal: (RingHom.fst (R ⧸ I) (R ⧸ J)).comp ↑(I.quotientMulEquivQuotientProd J coprime) = Ideal.Quotient.factor (I * J) I ⋯
-- Ideal.snd_comp_quotientMulEquivQuotientProd
@[simp]
theorem snd_comp_quotientMulEquivQuotientProd (I J : Ideal R) (coprime : IsCoprime I J) :
    (RingHom.snd _ _).comp
        (quotientMulEquivQuotientProd I J coprime : R ⧸ I * J →+* (R ⧸ I) × R ⧸ J) =
      Ideal.Quotient.factor (I * J) J mul_le_left 
Arguments: {R : Type u} [CommRing R] (I J : Ideal R) (coprime : IsCoprime I J)
Goal: (RingHom.snd (R ⧸ I) (R ⧸ J)).comp ↑(I.quotientMulEquivQuotientProd J coprime) = Ideal.Quotient.factor (I * J) J ⋯
-- Ideal.Quotient.algHom_ext
theorem Quotient.algHom_ext {I : Ideal A} {S} [Semiring S] [Algebra R₁ S] ⦃f g : A ⧸ I →ₐ[R₁] S⦄
    (h : f.comp (Quotient.mkₐ R₁ I) = g.comp (Quotient.mkₐ R₁ I)) : f = g 
Arguments: (R₁ : Type u_1) {A : Type u_3} [CommSemiring R₁] [CommRing A] [Algebra R₁ A] {I : Ideal A} {S : Type u_5} [Semiring S] [Algebra R₁ S] ⦃f g : A ⧸ I →ₐ[R₁] S⦄ (h : f.comp (Ideal.Quotient.mkₐ R₁ I) = g.comp (Ideal.Quotient.mkₐ R₁ I))
Goal: f = g
-- Ideal.Quotient.alg_map_eq
theorem Quotient.alg_map_eq (I : Ideal A) :
    algebraMap R₁ (A ⧸ I) = (algebraMap A (A ⧸ I)).comp (algebraMap R₁ A) 
Arguments: (R₁ : Type u_1) {A : Type u_3} [CommSemiring R₁] [CommRing A] [Algebra R₁ A] (I : Ideal A)
Goal: algebraMap R₁ (A ⧸ I) = (algebraMap A (A ⧸ I)).comp (algebraMap R₁ A)
-- Ideal.Quotient.mkₐ_toRingHom
theorem Quotient.mkₐ_toRingHom (I : Ideal A) :
    (Quotient.mkₐ R₁ I).toRingHom = Ideal.Quotient.mk I 
Arguments: (R₁ : Type u_1) {A : Type u_3} [CommSemiring R₁] [CommRing A] [Algebra R₁ A] (I : Ideal A)
Goal: (Ideal.Quotient.mkₐ R₁ I).toRingHom = Ideal.Quotient.mk I
-- Ideal.Quotient.mkₐ_eq_mk
@[simp]
theorem Quotient.mkₐ_eq_mk (I : Ideal A) : ⇑(Quotient.mkₐ R₁ I) = Quotient.mk I 
Arguments: (R₁ : Type u_1) {A : Type u_3} [CommSemiring R₁] [CommRing A] [Algebra R₁ A] (I : Ideal A)
Goal: ⇑(Ideal.Quotient.mkₐ R₁ I) = ⇑(Ideal.Quotient.mk I)
-- Ideal.Quotient.algebraMap_eq
@[simp]
theorem Quotient.algebraMap_eq (I : Ideal R) : algebraMap R (R ⧸ I) = Quotient.mk I 
Arguments: {R : Type u} [CommRing R] (I : Ideal R)
Goal: algebraMap R (R ⧸ I) = Ideal.Quotient.mk I
-- Ideal.Quotient.mk_comp_algebraMap
@[simp]
theorem Quotient.mk_comp_algebraMap (I : Ideal A) :
    (Quotient.mk I).comp (algebraMap R₁ A) = algebraMap R₁ (A ⧸ I) 
Arguments: (R₁ : Type u_1) {A : Type u_3} [CommSemiring R₁] [CommRing A] [Algebra R₁ A] (I : Ideal A)
Goal: (Ideal.Quotient.mk I).comp (algebraMap R₁ A) = algebraMap R₁ (A ⧸ I)
-- Ideal.Quotient.mk_algebraMap
@[simp]
theorem Quotient.mk_algebraMap (I : Ideal A) (x : R₁) :
    Quotient.mk I (algebraMap R₁ A x) = algebraMap R₁ (A ⧸ I) x 
Arguments: (R₁ : Type u_1) {A : Type u_3} [CommSemiring R₁] [CommRing A] [Algebra R₁ A] (I : Ideal A) (x : R₁)
Goal: (Ideal.Quotient.mk I) ((algebraMap R₁ A) x) = (algebraMap R₁ (A ⧸ I)) x
-- Ideal.Quotient.mkₐ_surjective
theorem Quotient.mkₐ_surjective (I : Ideal A) : Function.Surjective (Quotient.mkₐ R₁ I) 
Arguments: (R₁ : Type u_1) {A : Type u_3} [CommSemiring R₁] [CommRing A] [Algebra R₁ A] (I : Ideal A)
Goal: Function.Surjective ⇑(Ideal.Quotient.mkₐ R₁ I)
-- Ideal.Quotient.mkₐ_ker
@[simp]
theorem Quotient.mkₐ_ker (I : Ideal A) : RingHom.ker (Quotient.mkₐ R₁ I : A →+* A ⧸ I) = I 
Arguments: (R₁ : Type u_1) {A : Type u_3} [CommSemiring R₁] [CommRing A] [Algebra R₁ A] (I : Ideal A)
Goal: RingHom.ker ↑(Ideal.Quotient.mkₐ R₁ I) = I
-- Ideal.Quotient.liftₐ_apply
@[simp]
theorem Quotient.liftₐ_apply (I : Ideal A) (f : A →ₐ[R₁] B) (hI : ∀ a : A, a ∈ I → f a = 0) (x) :
    Ideal.Quotient.liftₐ I f hI x = Ideal.Quotient.lift I (f : A →+* B) hI x 
Arguments: {R₁ : Type u_1} {A : Type u_3} {B : Type u_4} [CommSemiring R₁] [CommRing A] [Algebra R₁ A] [Semiring B] [Algebra R₁ B] (I : Ideal A) (f : A →ₐ[R₁] B) (hI : ∀ a ∈ I, f a = 0) (x : A ⧸ I)
Goal: (Ideal.Quotient.liftₐ I f hI) x = (Ideal.Quotient.lift I (↑f) hI) x
-- Ideal.Quotient.liftₐ_comp
theorem Quotient.liftₐ_comp (I : Ideal A) (f : A →ₐ[R₁] B) (hI : ∀ a : A, a ∈ I → f a = 0) :
    (Ideal.Quotient.liftₐ I f hI).comp (Ideal.Quotient.mkₐ R₁ I) = f 
Arguments: {R₁ : Type u_1} {A : Type u_3} {B : Type u_4} [CommSemiring R₁] [CommRing A] [Algebra R₁ A] [Semiring B] [Algebra R₁ B] (I : Ideal A) (f : A →ₐ[R₁] B) (hI : ∀ a ∈ I, f a = 0)
Goal: (Ideal.Quotient.liftₐ I f hI).comp (Ideal.Quotient.mkₐ R₁ I) = f
-- Ideal.KerLift.map_smul
theorem KerLift.map_smul (f : A →ₐ[R₁] B) (r : R₁) (x : A ⧸ (RingHom.ker f)) :
    f.kerLift (r • x) = r • f.kerLift x 
Arguments: {R₁ : Type u_1} {A : Type u_3} {B : Type u_4} [CommSemiring R₁] [CommRing A] [Algebra R₁ A] [Semiring B] [Algebra R₁ B] (f : A →ₐ[R₁] B) (r : R₁) (x : A ⧸ RingHom.ker f)
Goal: f.kerLift (r • x) = r • f.kerLift x
-- Ideal.kerLiftAlg_mk
@[simp]
theorem kerLiftAlg_mk (f : A →ₐ[R₁] B) (a : A) :
    kerLiftAlg f (Quotient.mk (RingHom.ker f) a) = f a 
Arguments: {R₁ : Type u_1} {A : Type u_3} {B : Type u_4} [CommSemiring R₁] [CommRing A] [Algebra R₁ A] [Semiring B] [Algebra R₁ B] (f : A →ₐ[R₁] B) (a : A)
Goal: (Ideal.kerLiftAlg f) ((Ideal.Quotient.mk (RingHom.ker f)) a) = f a
-- Ideal.kerLiftAlg_toRingHom
@[simp]
theorem kerLiftAlg_toRingHom (f : A →ₐ[R₁] B) :
    (kerLiftAlg f : A ⧸ ker f →+* B) = RingHom.kerLift (f : A →+* B) 
Arguments: {R₁ : Type u_1} {A : Type u_3} {B : Type u_4} [CommSemiring R₁] [CommRing A] [Algebra R₁ A] [Semiring B] [Algebra R₁ B] (f : A →ₐ[R₁] B)
Goal: ↑(Ideal.kerLiftAlg f) = (↑f).kerLift
-- Ideal.kerLiftAlg_injective
theorem kerLiftAlg_injective (f : A →ₐ[R₁] B) : Function.Injective (kerLiftAlg f) 
Arguments: {R₁ : Type u_1} {A : Type u_3} {B : Type u_4} [CommSemiring R₁] [CommRing A] [Algebra R₁ A] [Semiring B] [Algebra R₁ B] (f : A →ₐ[R₁] B)
Goal: Function.Injective ⇑(Ideal.kerLiftAlg f)
-- Ideal.quotientKerAlgEquivOfRightInverse_apply
@[simps!]
def quotientKerAlgEquivOfRightInverse {f : A →ₐ[R₁] B} {g : B → A}
    (hf : Function.RightInverse g f) : (A ⧸ RingHom.ker f) ≃ₐ[R₁] B 
Arguments: {R₁ : Type u_1} {A : Type u_3} {B : Type u_4} [CommSemiring R₁] [CommRing A] [Algebra R₁ A] [Semiring B] [Algebra R₁ B] {f : A →ₐ[R₁] B} {g : B → A} (hf : Function.RightInverse g ⇑f) (a : A ⧸ RingHom.ker f.toRingHom)
Goal: (Ideal.quotientKerAlgEquivOfRightInverse hf) a = (↑f).kerLift a
-- Ideal.quotientKerAlgEquivOfRightInverse_symm_apply
@[simps!]
def quotientKerAlgEquivOfRightInverse {f : A →ₐ[R₁] B} {g : B → A}
    (hf : Function.RightInverse g f) : (A ⧸ RingHom.ker f) ≃ₐ[R₁] B 
Arguments: {R₁ : Type u_1} {A : Type u_3} {B : Type u_4} [CommSemiring R₁] [CommRing A] [Algebra R₁ A] [Semiring B] [Algebra R₁ B] {f : A →ₐ[R₁] B} {g : B → A} (hf : Function.RightInverse g ⇑f)
Goal: ∀ (a : B), (Ideal.quotientKerAlgEquivOfRightInverse hf).symm a = (Ideal.Quotient.mk (RingHom.ker ↑f)) (g a)
-- Ideal.quotientKerAlgEquivOfSurjective_symm_apply
@[simps!]
noncomputable def quotientKerAlgEquivOfSurjective {f : A →ₐ[R₁] B} (hf : Function.Surjective f) :
    (A ⧸ (RingHom.ker f)) ≃ₐ[R₁] B 
Arguments: {R₁ : Type u_1} {A : Type u_3} {B : Type u_4} [CommSemiring R₁] [CommRing A] [Algebra R₁ A] [Semiring B] [Algebra R₁ B] {f : A →ₐ[R₁] B} (hf : Function.Surjective ⇑f)
Goal: ∀ (a : B),
  (Ideal.quotientKerAlgEquivOfSurjective hf).symm a = (Ideal.Quotient.mk (RingHom.ker ↑f)) (Classical.choose ⋯ a)
-- Ideal.quotientKerAlgEquivOfSurjective_apply
@[simps!]
noncomputable def quotientKerAlgEquivOfSurjective {f : A →ₐ[R₁] B} (hf : Function.Surjective f) :
    (A ⧸ (RingHom.ker f)) ≃ₐ[R₁] B 
Arguments: {R₁ : Type u_1} {A : Type u_3} {B : Type u_4} [CommSemiring R₁] [CommRing A] [Algebra R₁ A] [Semiring B] [Algebra R₁ B] {f : A →ₐ[R₁] B} (hf : Function.Surjective ⇑f) (a : A ⧸ RingHom.ker f.toRingHom)
Goal: (Ideal.quotientKerAlgEquivOfSurjective hf) a = (↑f).kerLift a
-- Ideal.quotientMap_mk
@[simp]
theorem quotientMap_mk {J : Ideal R} {I : Ideal S} {f : R →+* S} {H : J ≤ I.comap f} {x : R} :
    quotientMap I f H (Quotient.mk J x) = Quotient.mk I (f x) 
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} {x : R}
Goal: (Ideal.quotientMap I f H) ((Ideal.Quotient.mk J) x) = (Ideal.Quotient.mk I) (f x)
-- Ideal.quotientMap_algebraMap
@[simp]
theorem quotientMap_algebraMap {J : Ideal A} {I : Ideal S} {f : A →+* S} {H : J ≤ I.comap f}
    {x : R₁} : quotientMap I f H (algebraMap R₁ (A ⧸ J) x) = Quotient.mk I (f (algebraMap _ _ x)) 
Arguments: {R₁ : Type u_1} {A : Type u_3} [CommSemiring R₁] [CommRing A] [Algebra R₁ A] {S : Type v} [CommRing S] {J : Ideal A} {I : Ideal S} {f : A →+* S} {H : J ≤ Ideal.comap f I} {x : R₁}
Goal: (Ideal.quotientMap I f H) ((algebraMap R₁ (A ⧸ J)) x) = (Ideal.Quotient.mk I) (f ((algebraMap R₁ A) x))
-- Ideal.quotientMap_comp_mk
theorem quotientMap_comp_mk {J : Ideal R} {I : Ideal S} {f : R →+* S} (H : J ≤ I.comap f) :
    (quotientMap I f H).comp (Quotient.mk J) = (Quotient.mk I).comp f 
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)
Goal: (Ideal.quotientMap I f H).comp (Ideal.Quotient.mk J) = (Ideal.Quotient.mk I).comp f
-- Ideal.quotientEquiv_symm_apply
@[simps]
def quotientEquiv (I : Ideal R) (J : Ideal S) (f : R ≃+* S) (hIJ : J = I.map (f : R →+* S)) :
    R ⧸ I ≃+* S ⧸ J 
Arguments: {R : Type u} [CommRing R] {S : Type v} [CommRing S] (I : Ideal R) (J : Ideal S) (f : R ≃+* S) (hIJ : J = Ideal.map (↑f) I) (a : S ⧸ J)
Goal: (I.quotientEquiv J f hIJ).symm a = (Ideal.quotientMap I ↑f.symm ⋯) a
-- Ideal.quotientEquiv_apply
@[simps]
def quotientEquiv (I : Ideal R) (J : Ideal S) (f : R ≃+* S) (hIJ : J = I.map (f : R →+* S)) :
    R ⧸ I ≃+* S ⧸ J 
Arguments: {R : Type u} [CommRing R] {S : Type v} [CommRing S] (I : Ideal R) (J : Ideal S) (f : R ≃+* S) (hIJ : J = Ideal.map (↑f) I)
Goal: ∀ (a : R ⧸ I), (I.quotientEquiv J f hIJ) a = (↑↑(Ideal.quotientMap J ↑f ⋯)).toFun a
-- Ideal.quotientEquiv_mk
theorem quotientEquiv_mk (I : Ideal R) (J : Ideal S) (f : R ≃+* S) (hIJ : J = I.map (f : R →+* S))
    (x : R) : quotientEquiv I J f hIJ (Ideal.Quotient.mk I x) = Ideal.Quotient.mk J (f x) 
Arguments: {R : Type u} [CommRing R] {S : Type v} [CommRing S] (I : Ideal R) (J : Ideal S) (f : R ≃+* S) (hIJ : J = Ideal.map (↑f) I) (x : R)
Goal: (I.quotientEquiv J f hIJ) ((Ideal.Quotient.mk I) x) = (Ideal.Quotient.mk J) (f x)
-- Ideal.quotientEquiv_symm_mk
@[simp]
theorem quotientEquiv_symm_mk (I : Ideal R) (J : Ideal S) (f : R ≃+* S)
    (hIJ : J = I.map (f : R →+* S)) (x : S) :
    (quotientEquiv I J f hIJ).symm (Ideal.Quotient.mk J x) = Ideal.Quotient.mk I (f.symm x) 
Arguments: {R : Type u} [CommRing R] {S : Type v} [CommRing S] (I : Ideal R) (J : Ideal S) (f : R ≃+* S) (hIJ : J = Ideal.map (↑f) I) (x : S)
Goal: (I.quotientEquiv J f hIJ).symm ((Ideal.Quotient.mk J) x) = (Ideal.Quotient.mk I) (f.symm x)
-- Ideal.quotientMap_injective'
theorem quotientMap_injective' {J : Ideal R} {I : Ideal S} {f : R →+* S} {H : J ≤ I.comap f}
    (h : I.comap f ≤ J) : Function.Injective (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} (h : Ideal.comap f I ≤ J)
Goal: Function.Injective ⇑(Ideal.quotientMap I f H)