ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- QuadraticModuleCat.ofIso_symm
@[simp] theorem ofIso_symm (e : Q₁.IsometryEquiv Q₂) : ofIso e.symm = (ofIso e).symm 
Arguments: {R : Type u} [CommRing R] {X Y : Type v} [AddCommGroup X] [Module R X] [AddCommGroup Y] [Module R Y] {Q₁ : QuadraticForm R X} {Q₂ : QuadraticForm R Y} (e : QuadraticMap.IsometryEquiv Q₁ Q₂)
Goal: QuadraticModuleCat.ofIso e.symm = (QuadraticModuleCat.ofIso e).symm
-- QuadraticModuleCat.ofIso_trans
@[simp] theorem ofIso_trans (e : Q₁.IsometryEquiv Q₂) (f : Q₂.IsometryEquiv Q₃) :
    ofIso (e.trans f) = ofIso e ≪≫ ofIso f 
Arguments: {R : Type u} [CommRing R] {X Y Z : Type v} [AddCommGroup X] [Module R X] [AddCommGroup Y] [Module R Y] [AddCommGroup Z] [Module R Z] {Q₁ : QuadraticForm R X} {Q₂ : QuadraticForm R Y} {Q₃ : QuadraticForm R Z} (e : QuadraticMap.IsometryEquiv Q₁ Q₂) (f : QuadraticMap.IsometryEquiv Q₂ Q₃)
Goal: QuadraticModuleCat.ofIso (e.trans f) = QuadraticModuleCat.ofIso e ≪≫ QuadraticModuleCat.ofIso f
-- CategoryTheory.Iso.toIsometryEquiv_invFun
@[simps]
def toIsometryEquiv (i : X ≅ Y) : X.form.IsometryEquiv Y.form 
Arguments: {R : Type u} [CommRing R] {X Y : QuadraticModuleCat R} (i : X ≅ Y) (a : ↑Y.toModuleCat)
Goal: i.toIsometryEquiv.invFun a = i.inv.toIsometry a
-- CategoryTheory.Iso.toIsometryEquiv_toFun
@[simps]
def toIsometryEquiv (i : X ≅ Y) : X.form.IsometryEquiv Y.form 
Arguments: {R : Type u} [CommRing R] {X Y : QuadraticModuleCat R} (i : X ≅ Y) (a : ↑X.toModuleCat)
Goal: i.toIsometryEquiv a = i.hom.toIsometry a
-- CategoryTheory.Iso.toIsometryEquiv_refl
@[simp] theorem toIsometryEquiv_refl : toIsometryEquiv (.refl X) = .refl _ 
Arguments: {R : Type u} [CommRing R] {X : QuadraticModuleCat R}
Goal: (CategoryTheory.Iso.refl X).toIsometryEquiv = QuadraticMap.IsometryEquiv.refl X.form
-- CategoryTheory.Iso.toIsometryEquiv_symm
@[simp] theorem toIsometryEquiv_symm (e : X ≅ Y) :
    toIsometryEquiv e.symm = (toIsometryEquiv e).symm 
Arguments: {R : Type u} [CommRing R] {X Y : QuadraticModuleCat R} (e : X ≅ Y)
Goal: e.symm.toIsometryEquiv = e.toIsometryEquiv.symm
-- CategoryTheory.Iso.toIsometryEquiv_trans
@[simp] theorem toIsometryEquiv_trans (e : X ≅ Y) (f : Y ≅ Z) :
    toIsometryEquiv (e ≪≫ f) = e.toIsometryEquiv.trans f.toIsometryEquiv 
Arguments: {R : Type u} [CommRing R] {X Y Z : QuadraticModuleCat R} (e : X ≅ Y) (f : Y ≅ Z)
Goal: (e ≪≫ f).toIsometryEquiv = e.toIsometryEquiv.trans f.toIsometryEquiv
-- CliffordAlgebra.map_mul_map_of_isOrtho_of_mem_evenOdd
nonrec theorem map_mul_map_of_isOrtho_of_mem_evenOdd
    {i₁ i₂ : ZMod 2} (hm₁ : m₁ ∈ evenOdd Q₁ i₁) (hm₂ : m₂ ∈ evenOdd Q₂ i₂) :
    map f₁ m₁ * map f₂ m₂ = (-1 : ℤˣ) ^ (i₂ * i₁) • (map f₂ m₂ * map f₁ m₁) 
Arguments: {R : Type u_1} {M₁ : Type u_2} {M₂ : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M₁] [AddCommGroup M₂] [AddCommGroup N] [Module R M₁] [Module R M₂] [Module R N] {Q₁ : QuadraticForm R M₁} {Q₂ : QuadraticForm R M₂} {Qₙ : QuadraticForm R N} (f₁ : Q₁ →qᵢ Qₙ) (f₂ : Q₂ →qᵢ Qₙ) (hf : ∀ (x : M₁) (y : M₂), QuadraticMap.IsOrtho Qₙ (f₁ x) (f₂ y)) (m₁ : CliffordAlgebra Q₁) (m₂ : CliffordAlgebra Q₂) {i₁ i₂ : ZMod 2} (hm₁ : m₁ ∈ CliffordAlgebra.evenOdd Q₁ i₁) (hm₂ : m₂ ∈ CliffordAlgebra.evenOdd Q₂ i₂)
Goal: (CliffordAlgebra.map f₁) m₁ * (CliffordAlgebra.map f₂) m₂ =
  (-1) ^ (i₂ * i₁) • ((CliffordAlgebra.map f₂) m₂ * (CliffordAlgebra.map f₁) m₁)
-- CliffordAlgebra.commute_map_mul_map_of_isOrtho_of_mem_evenOdd_zero_left
theorem commute_map_mul_map_of_isOrtho_of_mem_evenOdd_zero_left
    {i₂ : ZMod 2} (hm₁ : m₁ ∈ evenOdd Q₁ 0) (hm₂ : m₂ ∈ evenOdd Q₂ i₂) :
    Commute (map f₁ m₁) (map f₂ m₂) 
Arguments: {R : Type u_1} {M₁ : Type u_2} {M₂ : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M₁] [AddCommGroup M₂] [AddCommGroup N] [Module R M₁] [Module R M₂] [Module R N] {Q₁ : QuadraticForm R M₁} {Q₂ : QuadraticForm R M₂} {Qₙ : QuadraticForm R N} (f₁ : Q₁ →qᵢ Qₙ) (f₂ : Q₂ →qᵢ Qₙ) (hf : ∀ (x : M₁) (y : M₂), QuadraticMap.IsOrtho Qₙ (f₁ x) (f₂ y)) (m₁ : CliffordAlgebra Q₁) (m₂ : CliffordAlgebra Q₂) {i₂ : ZMod 2} (hm₁ : m₁ ∈ CliffordAlgebra.evenOdd Q₁ 0) (hm₂ : m₂ ∈ CliffordAlgebra.evenOdd Q₂ i₂)
Goal: Commute ((CliffordAlgebra.map f₁) m₁) ((CliffordAlgebra.map f₂) m₂)
-- CliffordAlgebra.commute_map_mul_map_of_isOrtho_of_mem_evenOdd_zero_right
theorem commute_map_mul_map_of_isOrtho_of_mem_evenOdd_zero_right
    {i₁ : ZMod 2} (hm₁ : m₁ ∈ evenOdd Q₁ i₁) (hm₂ : m₂ ∈ evenOdd Q₂ 0) :
    Commute (map f₁ m₁) (map f₂ m₂) 
Arguments: {R : Type u_1} {M₁ : Type u_2} {M₂ : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M₁] [AddCommGroup M₂] [AddCommGroup N] [Module R M₁] [Module R M₂] [Module R N] {Q₁ : QuadraticForm R M₁} {Q₂ : QuadraticForm R M₂} {Qₙ : QuadraticForm R N} (f₁ : Q₁ →qᵢ Qₙ) (f₂ : Q₂ →qᵢ Qₙ) (hf : ∀ (x : M₁) (y : M₂), QuadraticMap.IsOrtho Qₙ (f₁ x) (f₂ y)) (m₁ : CliffordAlgebra Q₁) (m₂ : CliffordAlgebra Q₂) {i₁ : ZMod 2} (hm₁ : m₁ ∈ CliffordAlgebra.evenOdd Q₁ i₁) (hm₂ : m₂ ∈ CliffordAlgebra.evenOdd Q₂ 0)
Goal: Commute ((CliffordAlgebra.map f₁) m₁) ((CliffordAlgebra.map f₂) m₂)
-- CliffordAlgebra.map_mul_map_eq_neg_of_isOrtho_of_mem_evenOdd_one
theorem map_mul_map_eq_neg_of_isOrtho_of_mem_evenOdd_one
    (hm₁ : m₁ ∈ evenOdd Q₁ 1) (hm₂ : m₂ ∈ evenOdd Q₂ 1) :
    map f₁ m₁ * map f₂ m₂ = - map f₂ m₂ * map f₁ m₁ 
Arguments: {R : Type u_1} {M₁ : Type u_2} {M₂ : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M₁] [AddCommGroup M₂] [AddCommGroup N] [Module R M₁] [Module R M₂] [Module R N] {Q₁ : QuadraticForm R M₁} {Q₂ : QuadraticForm R M₂} {Qₙ : QuadraticForm R N} (f₁ : Q₁ →qᵢ Qₙ) (f₂ : Q₂ →qᵢ Qₙ) (hf : ∀ (x : M₁) (y : M₂), QuadraticMap.IsOrtho Qₙ (f₁ x) (f₂ y)) (m₁ : CliffordAlgebra Q₁) (m₂ : CliffordAlgebra Q₂) (hm₁ : m₁ ∈ CliffordAlgebra.evenOdd Q₁ 1) (hm₂ : m₂ ∈ CliffordAlgebra.evenOdd Q₂ 1)
Goal: (CliffordAlgebra.map f₁) m₁ * (CliffordAlgebra.map f₂) m₂ = -(CliffordAlgebra.map f₂) m₂ * (CliffordAlgebra.map f₁) m₁
-- CliffordAlgebra.ofProd_ι_mk
@[simp]
lemma ofProd_ι_mk (m₁ : M₁) (m₂ : M₂) :
    ofProd Q₁ Q₂ (ι _ (m₁, m₂)) = ι Q₁ m₁ ᵍ⊗ₜ 1 + 1 ᵍ⊗ₜ ι Q₂ m₂ 
Arguments: {R : Type u_1} {M₁ : Type u_2} {M₂ : Type u_3} [CommRing R] [AddCommGroup M₁] [AddCommGroup M₂] [Module R M₁] [Module R M₂] (Q₁ : QuadraticForm R M₁) (Q₂ : QuadraticForm R M₂) (m₁ : M₁) (m₂ : M₂)
Goal: (CliffordAlgebra.ofProd Q₁ Q₂) ((CliffordAlgebra.ι (QuadraticMap.prod Q₁ Q₂)) (m₁, m₂)) =
  (CliffordAlgebra.ι Q₁) m₁ ᵍ⊗ₜ[R] 1 + 1 ᵍ⊗ₜ[R] (CliffordAlgebra.ι Q₂) m₂
-- CliffordAlgebra.toProd_ι_tmul_one
@[simp]
lemma toProd_ι_tmul_one (m₁ : M₁) : toProd Q₁ Q₂ (ι _ m₁ ᵍ⊗ₜ 1) = ι _ (m₁, 0) 
Arguments: {R : Type u_1} {M₁ : Type u_2} {M₂ : Type u_3} [CommRing R] [AddCommGroup M₁] [AddCommGroup M₂] [Module R M₁] [Module R M₂] (Q₁ : QuadraticForm R M₁) (Q₂ : QuadraticForm R M₂) (m₁ : M₁)
Goal: (CliffordAlgebra.toProd Q₁ Q₂) ((CliffordAlgebra.ι Q₁) m₁ ᵍ⊗ₜ[R] 1) =
  (CliffordAlgebra.ι (QuadraticMap.prod Q₁ Q₂)) (m₁, 0)
-- CliffordAlgebra.toProd_one_tmul_ι
@[simp]
lemma toProd_one_tmul_ι (m₂ : M₂) : toProd Q₁ Q₂ (1 ᵍ⊗ₜ ι _ m₂) = ι _ (0, m₂) 
Arguments: {R : Type u_1} {M₁ : Type u_2} {M₂ : Type u_3} [CommRing R] [AddCommGroup M₁] [AddCommGroup M₂] [Module R M₁] [Module R M₂] (Q₁ : QuadraticForm R M₁) (Q₂ : QuadraticForm R M₂) (m₂ : M₂)
Goal: (CliffordAlgebra.toProd Q₁ Q₂) (1 ᵍ⊗ₜ[R] (CliffordAlgebra.ι Q₂) m₂) =
  (CliffordAlgebra.ι (QuadraticMap.prod Q₁ Q₂)) (0, m₂)
-- CliffordAlgebra.toProd_comp_ofProd
lemma toProd_comp_ofProd : (toProd Q₁ Q₂).comp (ofProd Q₁ Q₂) = AlgHom.id _ _ 
Arguments: {R : Type u_1} {M₁ : Type u_2} {M₂ : Type u_3} [CommRing R] [AddCommGroup M₁] [AddCommGroup M₂] [Module R M₁] [Module R M₂] (Q₁ : QuadraticForm R M₁) (Q₂ : QuadraticForm R M₂)
Goal: (CliffordAlgebra.toProd Q₁ Q₂).comp (CliffordAlgebra.ofProd Q₁ Q₂) =
  AlgHom.id R (CliffordAlgebra (QuadraticMap.prod Q₁ Q₂))
-- CliffordAlgebra.ofProd_comp_toProd
lemma ofProd_comp_toProd : (ofProd Q₁ Q₂).comp (toProd Q₁ Q₂) = AlgHom.id _ _ 
Arguments: {R : Type u_1} {M₁ : Type u_2} {M₂ : Type u_3} [CommRing R] [AddCommGroup M₁] [AddCommGroup M₂] [Module R M₁] [Module R M₂] (Q₁ : QuadraticForm R M₁) (Q₂ : QuadraticForm R M₂)
Goal: (CliffordAlgebra.ofProd Q₁ Q₂).comp (CliffordAlgebra.toProd Q₁ Q₂) =
  AlgHom.id R (CliffordAlgebra.evenOdd Q₁ ᵍ⊗[R] CliffordAlgebra.evenOdd Q₂)
-- CliffordAlgebra.prodEquiv_symm_apply
@[simps!]
def prodEquiv : CliffordAlgebra (Q₁.prod Q₂) ≃ₐ[R] (evenOdd Q₁ ᵍ⊗[R] evenOdd Q₂) 
Arguments: {R : Type u_1} {M₁ : Type u_2} {M₂ : Type u_3} [CommRing R] [AddCommGroup M₁] [AddCommGroup M₂] [Module R M₁] [Module R M₂] (Q₁ : QuadraticForm R M₁) (Q₂ : QuadraticForm R M₂) (a : CliffordAlgebra.evenOdd Q₁ ᵍ⊗[R] CliffordAlgebra.evenOdd Q₂)
Goal: (CliffordAlgebra.prodEquiv Q₁ Q₂).symm a = (CliffordAlgebra.toProd Q₁ Q₂) a
-- CliffordAlgebra.prodEquiv_apply
@[simps!]
def prodEquiv : CliffordAlgebra (Q₁.prod Q₂) ≃ₐ[R] (evenOdd Q₁ ᵍ⊗[R] evenOdd Q₂) 
Arguments: {R : Type u_1} {M₁ : Type u_2} {M₂ : Type u_3} [CommRing R] [AddCommGroup M₁] [AddCommGroup M₂] [Module R M₁] [Module R M₂] (Q₁ : QuadraticForm R M₁) (Q₂ : QuadraticForm R M₂) (a : CliffordAlgebra (QuadraticMap.prod Q₁ Q₂))
Goal: (CliffordAlgebra.prodEquiv Q₁ Q₂) a = (CliffordAlgebra.ofProd Q₁ Q₂) a
-- QuadraticModuleCat.toModuleCatBraidedFunctor_toMonoidalFunctor
@[simps toMonoidalFunctor]
def toModuleCatBraidedFunctor : BraidedFunctor (QuadraticModuleCat.{u} R) (ModuleCat.{u} R) 
Arguments: (R : Type u) [CommRing R] [Invertible 2]
Goal: (QuadraticModuleCat.toModuleCatBraidedFunctor R).toMonoidalFunctor = QuadraticModuleCat.toModuleCatMonoidalFunctor R
-- Submodule.quotientRel_r_def
theorem quotientRel_r_def {x y : M} : @Setoid.r _ p.quotientRel x y ↔ x - y ∈ p 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M) {x y : M}
Goal: Setoid.r x y ↔ x - y ∈ p
-- Submodule.Quotient.mk'_eq_mk'
@[simp]
theorem mk'_eq_mk' {p : Submodule R M} (x : M) :
    @Quotient.mk' _ (quotientRel p) x = (mk : M → M ⧸ p) x 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] {p : Submodule R M} (x : M)
Goal: Quotient.mk' x = Submodule.Quotient.mk x
-- Submodule.Quotient.mk''_eq_mk
@[simp]
theorem mk''_eq_mk {p : Submodule R M} (x : M) : (Quotient.mk'' x : M ⧸ p) = (mk : M → M ⧸ p) x 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] {p : Submodule R M} (x : M)
Goal: Quotient.mk'' x = Submodule.Quotient.mk x
-- Submodule.Quotient.quot_mk_eq_mk
@[simp]
theorem quot_mk_eq_mk {p : Submodule R M} (x : M) : (Quot.mk _ x : M ⧸ p) = (mk : M → M ⧸ p) x 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] {p : Submodule R M} (x : M)
Goal: Quot.mk Setoid.r x = Submodule.Quotient.mk x
-- Submodule.Quotient.eq'
protected theorem eq' {x y : M} : (mk x : M ⧸ p) = (mk : M → M ⧸ p) y ↔ -x + y ∈ p 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M) {x y : M}
Goal: Submodule.Quotient.mk x = Submodule.Quotient.mk y ↔ -x + y ∈ p
-- Submodule.Quotient.eq
protected theorem eq {x y : M} : (mk x : M ⧸ p) = (mk y : M ⧸ p) ↔ x - y ∈ p 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M) {x y : M}
Goal: Submodule.Quotient.mk x = Submodule.Quotient.mk y ↔ x - y ∈ p
-- Submodule.Quotient.mk_zero
@[simp]
theorem mk_zero : mk 0 = (0 : M ⧸ p) 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M)
Goal: Submodule.Quotient.mk 0 = 0
-- Submodule.Quotient.mk_eq_zero
@[simp]
theorem mk_eq_zero : (mk x : M ⧸ p) = 0 ↔ x ∈ p 
Arguments: {R : Type u_1} {M : Type u_2} {x : M} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M)
Goal: Submodule.Quotient.mk x = 0 ↔ x ∈ p
-- Submodule.Quotient.mk_add
@[simp]
theorem mk_add : (mk (x + y) : M ⧸ p) = (mk x : M ⧸ p) + (mk y : M ⧸ p) 
Arguments: {R : Type u_1} {M : Type u_2} {x y : M} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M)
Goal: Submodule.Quotient.mk (x + y) = Submodule.Quotient.mk x + Submodule.Quotient.mk y
-- Submodule.Quotient.mk_neg
@[simp]
theorem mk_neg : (mk (-x) : M ⧸ p) = -(mk x : M ⧸ p) 
Arguments: {R : Type u_1} {M : Type u_2} {x : M} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M)
Goal: Submodule.Quotient.mk (-x) = -Submodule.Quotient.mk x
-- Submodule.Quotient.mk_sub
@[simp]
theorem mk_sub : (mk (x - y) : M ⧸ p) = (mk x : M ⧸ p) - (mk y : M ⧸ p) 
Arguments: {R : Type u_1} {M : Type u_2} {x y : M} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M)
Goal: Submodule.Quotient.mk (x - y) = Submodule.Quotient.mk x - Submodule.Quotient.mk y
-- Submodule.Quotient.mk_smul
@[simp]
theorem mk_smul (r : S) (x : M) : (mk (r • x) : M ⧸ p) = r • mk x 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M) {S : Type u_3} [SMul S R] [SMul S M] [IsScalarTower S R M] (r : S) (x : M)
Goal: Submodule.Quotient.mk (r • x) = r • Submodule.Quotient.mk x
-- Submodule.Quotient.restrictScalarsEquiv_mk
@[simp]
theorem restrictScalarsEquiv_mk [Ring S] [SMul S R] [Module S M] [IsScalarTower S R M]
    (P : Submodule R M) (x : M) :
    restrictScalarsEquiv S P (mk x : M ⧸ P) = (mk x : M ⧸ P) 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (S : Type u_3) [Ring S] [SMul S R] [Module S M] [IsScalarTower S R M] (P : Submodule R M) (x : M)
Goal: (Submodule.Quotient.restrictScalarsEquiv S P) (Submodule.Quotient.mk x) = Submodule.Quotient.mk x
-- Submodule.Quotient.restrictScalarsEquiv_symm_mk
@[simp]
theorem restrictScalarsEquiv_symm_mk [Ring S] [SMul S R] [Module S M] [IsScalarTower S R M]
    (P : Submodule R M) (x : M) :
    (restrictScalarsEquiv S P).symm ((mk : M → M ⧸ P) x) = (mk : M → M ⧸ P) x 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (S : Type u_3) [Ring S] [SMul S R] [Module S M] [IsScalarTower S R M] (P : Submodule R M) (x : M)
Goal: (Submodule.Quotient.restrictScalarsEquiv S P).symm (Submodule.Quotient.mk x) = Submodule.Quotient.mk x
-- Submodule.Quotient.mk_surjective
theorem mk_surjective : Function.Surjective (@mk _ _ _ _ _ p) 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M)
Goal: Function.Surjective Submodule.Quotient.mk
-- Submodule.Quotient.nontrivial_of_lt_top
theorem nontrivial_of_lt_top (h : p < ⊤) : Nontrivial (M ⧸ p) 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M) (h : p < ⊤)
Goal: Nontrivial (M ⧸ p)
-- Submodule.subsingleton_quotient_iff_eq_top
theorem subsingleton_quotient_iff_eq_top : Subsingleton (M ⧸ p) ↔ p = ⊤ 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] {p : Submodule R M}
Goal: Subsingleton (M ⧸ p) ↔ p = ⊤
-- Submodule.unique_quotient_iff_eq_top
theorem unique_quotient_iff_eq_top : Nonempty (Unique (M ⧸ p)) ↔ p = ⊤ 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] {p : Submodule R M}
Goal: Nonempty (Unique (M ⧸ p)) ↔ p = ⊤
-- Submodule.card_eq_card_quotient_mul_card
theorem card_eq_card_quotient_mul_card (S : Submodule R M) :
    Nat.card M = Nat.card S * Nat.card (M ⧸ S) 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (S : Submodule R M)
Goal: Nat.card M = Nat.card ↥S * Nat.card (M ⧸ S)
-- Submodule.quot_hom_ext
theorem quot_hom_ext (f g : (M ⧸ p) →ₗ[R] M₂) (h : ∀ x : M, f (Quotient.mk x) = g (Quotient.mk x)) :
    f = g 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M) {M₂ : Type u_3} [AddCommGroup M₂] [Module R M₂] (f g : M ⧸ p →ₗ[R] M₂) (h : ∀ (x : M), f (Submodule.Quotient.mk x) = g (Submodule.Quotient.mk x))
Goal: f = g
-- Submodule.mkQ_apply
@[simp]
theorem mkQ_apply (x : M) : p.mkQ x = (Quotient.mk x : M ⧸ p) 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M) (x : M)
Goal: p.mkQ x = Submodule.Quotient.mk x
-- Submodule.mkQ_surjective
theorem mkQ_surjective (A : Submodule R M) : Function.Surjective A.mkQ 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (A : Submodule R M)
Goal: Function.Surjective ⇑A.mkQ
-- Submodule.linearMap_qext
@[ext 1100] -- Porting note: increase priority so this applies before `LinearMap.ext`
theorem linearMap_qext ⦃f g : M ⧸ p →ₛₗ[τ₁₂] M₂⦄ (h : f.comp p.mkQ = g.comp p.mkQ) : f = g 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M) {R₂ : Type u_3} {M₂ : Type u_4} [Ring R₂] [AddCommGroup M₂] [Module R₂ M₂] {τ₁₂ : R →+* R₂} ⦃f g : M ⧸ p →ₛₗ[τ₁₂] M₂⦄ (h : f.comp p.mkQ = g.comp p.mkQ)
Goal: f = g
-- Submodule.liftQ_apply
@[simp]
theorem liftQ_apply (f : M →ₛₗ[τ₁₂] M₂) {h} (x : M) : p.liftQ f h (Quotient.mk x) = f x 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M) {R₂ : Type u_3} {M₂ : Type u_4} [Ring R₂] [AddCommGroup M₂] [Module R₂ M₂] {τ₁₂ : R →+* R₂} (f : M →ₛₗ[τ₁₂] M₂) {h : p ≤ LinearMap.ker f} (x : M)
Goal: (p.liftQ f h) (Submodule.Quotient.mk x) = f x
-- Submodule.liftQ_mkQ
@[simp]
theorem liftQ_mkQ (f : M →ₛₗ[τ₁₂] M₂) (h) : (p.liftQ f h).comp p.mkQ = f 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M) {R₂ : Type u_3} {M₂ : Type u_4} [Ring R₂] [AddCommGroup M₂] [Module R₂ M₂] {τ₁₂ : R →+* R₂} (f : M →ₛₗ[τ₁₂] M₂) (h : p ≤ LinearMap.ker f)
Goal: (p.liftQ f h).comp p.mkQ = f
-- Submodule.liftQSpanSingleton_apply
@[simp]
theorem liftQSpanSingleton_apply (x : M) (f : M →ₛₗ[τ₁₂] M₂) (h : f x = 0) (y : M) :
    liftQSpanSingleton x f h (Quotient.mk y) = f y 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] {R₂ : Type u_3} {M₂ : Type u_4} [Ring R₂] [AddCommGroup M₂] [Module R₂ M₂] {τ₁₂ : R →+* R₂} (x : M) (f : M →ₛₗ[τ₁₂] M₂) (h : f x = 0) (y : M)
Goal: (Submodule.liftQSpanSingleton x f h) (Submodule.Quotient.mk y) = f y
-- Submodule.range_mkQ
@[simp]
theorem range_mkQ : range p.mkQ = ⊤ 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M)
Goal: LinearMap.range p.mkQ = ⊤
-- Submodule.ker_mkQ
@[simp]
theorem ker_mkQ : ker p.mkQ = p 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M)
Goal: LinearMap.ker p.mkQ = p
-- Submodule.le_comap_mkQ
theorem le_comap_mkQ (p' : Submodule R (M ⧸ p)) : p ≤ comap p.mkQ p' 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M) (p' : Submodule R (M ⧸ p))
Goal: p ≤ Submodule.comap p.mkQ p'
-- Submodule.mkQ_map_self
@[simp]
theorem mkQ_map_self : map p.mkQ p = ⊥ 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M)
Goal: Submodule.map p.mkQ p = ⊥
-- Submodule.comap_map_mkQ
@[simp]
theorem comap_map_mkQ : comap p.mkQ (map p.mkQ p') = p ⊔ p' 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p p' : Submodule R M)
Goal: Submodule.comap p.mkQ (Submodule.map p.mkQ p') = p ⊔ p'
-- Submodule.map_mkQ_eq_top
@[simp]
theorem map_mkQ_eq_top : map p.mkQ p' = ⊤ ↔ p ⊔ p' = ⊤ 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p p' : Submodule R M)
Goal: Submodule.map p.mkQ p' = ⊤ ↔ p ⊔ p' = ⊤
-- Submodule.mapQ_apply
@[simp]
theorem mapQ_apply (f : M →ₛₗ[τ₁₂] M₂) {h} (x : M) :
    mapQ p q f h (Quotient.mk x : M ⧸ p) = (Quotient.mk (f x) : M₂ ⧸ q) 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M) {R₂ : Type u_3} {M₂ : Type u_4} [Ring R₂] [AddCommGroup M₂] [Module R₂ M₂] {τ₁₂ : R →+* R₂} (q : Submodule R₂ M₂) (f : M →ₛₗ[τ₁₂] M₂) {h : p ≤ Submodule.comap f q} (x : M)
Goal: (p.mapQ q f h) (Submodule.Quotient.mk x) = Submodule.Quotient.mk (f x)
-- Submodule.mapQ_mkQ
theorem mapQ_mkQ (f : M →ₛₗ[τ₁₂] M₂) {h} : (mapQ p q f h).comp p.mkQ = q.mkQ.comp f 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M) {R₂ : Type u_3} {M₂ : Type u_4} [Ring R₂] [AddCommGroup M₂] [Module R₂ M₂] {τ₁₂ : R →+* R₂} (q : Submodule R₂ M₂) (f : M →ₛₗ[τ₁₂] M₂) {h : p ≤ Submodule.comap f q}
Goal: (p.mapQ q f h).comp p.mkQ = q.mkQ.comp f
-- Submodule.mapQ_zero
@[simp]
theorem mapQ_zero (h : p ≤ q.comap (0 : M →ₛₗ[τ₁₂] M₂) := (by simp)) :
    p.mapQ q (0 : M →ₛₗ[τ₁₂] M₂) h = 0 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M) {R₂ : Type u_3} {M₂ : Type u_4} [Ring R₂] [AddCommGroup M₂] [Module R₂ M₂] {τ₁₂ : R →+* R₂} (q : Submodule R₂ M₂) (h : p ≤ Submodule.comap 0 q := ⋯)
Goal: p.mapQ q 0 h = 0
-- Submodule.mapQ_comp
theorem mapQ_comp {R₃ M₃ : Type*} [Ring R₃] [AddCommGroup M₃] [Module R₃ M₃] (p₂ : Submodule R₂ M₂)
    (p₃ : Submodule R₃ M₃) {τ₂₃ : R₂ →+* R₃} {τ₁₃ : R →+* R₃} [RingHomCompTriple τ₁₂ τ₂₃ τ₁₃]
    (f : M →ₛₗ[τ₁₂] M₂) (g : M₂ →ₛₗ[τ₂₃] M₃) (hf : p ≤ p₂.comap f) (hg : p₂ ≤ p₃.comap g)
    (h := hf.trans (comap_mono hg)) :
    p.mapQ p₃ (g.comp f) h = (p₂.mapQ p₃ g hg).comp (p.mapQ p₂ f hf) 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M) {R₂ : Type u_3} {M₂ : Type u_4} [Ring R₂] [AddCommGroup M₂] [Module R₂ M₂] {τ₁₂ : R →+* R₂} {R₃ : Type u_5} {M₃ : Type u_6} [Ring R₃] [AddCommGroup M₃] [Module R₃ M₃] (p₂ : Submodule R₂ M₂) (p₃ : Submodule R₃ M₃) {τ₂₃ : R₂ →+* R₃} {τ₁₃ : R →+* R₃} [RingHomCompTriple τ₁₂ τ₂₃ τ₁₃] (f : M →ₛₗ[τ₁₂] M₂) (g : M₂ →ₛₗ[τ₂₃] M₃) (hf : p ≤ Submodule.comap f p₂) (hg : p₂ ≤ Submodule.comap g p₃) (h : p ≤ Submodule.comap f (Submodule.comap g p₃) := ⋯)
Goal: p.mapQ p₃ (g.comp f) h = (p₂.mapQ p₃ g hg).comp (p.mapQ p₂ f hf)
-- Submodule.mapQ_id
@[simp]
theorem mapQ_id (h : p ≤ p.comap LinearMap.id := (by rw [comap_id])) :
    p.mapQ p LinearMap.id h = LinearMap.id 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M) (h : p ≤ Submodule.comap LinearMap.id p := ⋯)
Goal: p.mapQ p LinearMap.id h = LinearMap.id
-- Submodule.mapQ_pow
theorem mapQ_pow {f : M →ₗ[R] M} (h : p ≤ p.comap f) (k : ℕ)
    (h' : p ≤ p.comap (f ^ k) := p.le_comap_pow_of_le_comap h k) :
    p.mapQ p (f ^ k) h' = p.mapQ p f h ^ k 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M) {f : M →ₗ[R] M} (h : p ≤ Submodule.comap f p) (k : ℕ) (h' : p ≤ Submodule.comap (f ^ k) p := ⋯)
Goal: p.mapQ p (f ^ k) h' = p.mapQ p f h ^ k
-- Submodule.comap_liftQ
theorem comap_liftQ (f : M →ₛₗ[τ₁₂] M₂) (h) : q.comap (p.liftQ f h) = (q.comap f).map (mkQ p) 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M) {R₂ : Type u_3} {M₂ : Type u_4} [Ring R₂] [AddCommGroup M₂] [Module R₂ M₂] {τ₁₂ : R →+* R₂} (q : Submodule R₂ M₂) (f : M →ₛₗ[τ₁₂] M₂) (h : p ≤ LinearMap.ker f)
Goal: Submodule.comap (p.liftQ f h) q = Submodule.map p.mkQ (Submodule.comap f q)
-- Submodule.map_liftQ
theorem map_liftQ [RingHomSurjective τ₁₂] (f : M →ₛₗ[τ₁₂] M₂) (h) (q : Submodule R (M ⧸ p)) :
    q.map (p.liftQ f h) = (q.comap p.mkQ).map f 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M) {R₂ : Type u_3} {M₂ : Type u_4} [Ring R₂] [AddCommGroup M₂] [Module R₂ M₂] {τ₁₂ : R →+* R₂} [RingHomSurjective τ₁₂] (f : M →ₛₗ[τ₁₂] M₂) (h : p ≤ LinearMap.ker f) (q : Submodule R (M ⧸ p))
Goal: Submodule.map (p.liftQ f h) q = Submodule.map f (Submodule.comap p.mkQ q)
-- Submodule.ker_liftQ
theorem ker_liftQ (f : M →ₛₗ[τ₁₂] M₂) (h) : ker (p.liftQ f h) = (ker f).map (mkQ p) 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M) {R₂ : Type u_3} {M₂ : Type u_4} [Ring R₂] [AddCommGroup M₂] [Module R₂ M₂] {τ₁₂ : R →+* R₂} (f : M →ₛₗ[τ₁₂] M₂) (h : p ≤ LinearMap.ker f)
Goal: LinearMap.ker (p.liftQ f h) = Submodule.map p.mkQ (LinearMap.ker f)
-- Submodule.range_liftQ
theorem range_liftQ [RingHomSurjective τ₁₂] (f : M →ₛₗ[τ₁₂] M₂) (h) :
    range (p.liftQ f h) = range f 
Arguments: {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M) {R₂ : Type u_3} {M₂ : Type u_4} [Ring R₂] [AddCommGroup M₂] [Module R₂ M₂] {τ₁₂ : R →+* R₂} [RingHomSurjective τ₁₂] (f : M →ₛₗ[τ₁₂] M₂) (h : p ≤ LinearMap.ker f)
Goal: LinearMap.range (p.liftQ f h) = LinearMap.range f