Module

AddMonoidHom_natCard_ker_comp_eq_mul_of_surjective.lean

Nyll.AlgebraicCurves.Foundations.Algebra.AddMonoidHom_natCard_ker_comp_eq_mul_of_surjective
7 declarations indexed from sourceView source ↗

Add Monoid Hom nat Card ker comp eq mul of surjective

Imports2
  • Mathlib.GroupTheory.Coset.Card
  • Mathlib.GroupTheory.QuotientGroup.Basic
Imported by1

Declarations

AlgebraicCurves.Foundations.Algebra.Proofs.AddMonoidHom_natCard_ker_comp_eq_mul_of_surjective.P2mKerMul.kerMap

The map from the kernel of a composite to the kernel of its second map.

Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Foundations.Algebra.Proofs
namespace AddMonoidHom_natCard_ker_comp_eq_mul_of_surjective
namespace P2mKerMul
variable {A B C : Type*} [AddGroup A] [AddGroup B] [AddGroup C]
def kerMap (f : A →+ B) (g : B →+ C) : (g.comp f).ker →+ g.ker
AlgebraicCurves.Foundations.Algebra.Proofs.AddMonoidHom_natCard_ker_comp_eq_mul_of_surjective.P2mKerMul.kerMap_apply
Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Foundations.Algebra.Proofs
namespace AddMonoidHom_natCard_ker_comp_eq_mul_of_surjective
namespace P2mKerMul
variable {A B C : Type*} [AddGroup A] [AddGroup B] [AddGroup C]
theorem kerMap_apply (f : A →+ B) (g : B →+ C) (x : (g.comp f).ker) :
    (kerMap f g x : B) = f x
AlgebraicCurves.Foundations.Algebra.Proofs.AddMonoidHom_natCard_ker_comp_eq_mul_of_surjective.P2mKerMul.kerMap_surjective
Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Foundations.Algebra.Proofs
namespace AddMonoidHom_natCard_ker_comp_eq_mul_of_surjective
namespace P2mKerMul
variable {A B C : Type*} [AddGroup A] [AddGroup B] [AddGroup C]
theorem kerMap_surjective (f : A →+ B) (g : B →+ C) (hf : Function.Surjective f) :
    Function.Surjective (kerMap f g)
AlgebraicCurves.Foundations.Algebra.Proofs.AddMonoidHom_natCard_ker_comp_eq_mul_of_surjective.P2mKerMul.ker_le
Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Foundations.Algebra.Proofs
namespace AddMonoidHom_natCard_ker_comp_eq_mul_of_surjective
namespace P2mKerMul
variable {A B C : Type*} [AddGroup A] [AddGroup B] [AddGroup C]
theorem ker_le (f : A →+ B) (g : B →+ C) : f.ker ≤ (g.comp f).ker
AlgebraicCurves.Foundations.Algebra.Proofs.AddMonoidHom_natCard_ker_comp_eq_mul_of_surjective.P2mKerMul.ker_kerMap
Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Foundations.Algebra.Proofs
namespace AddMonoidHom_natCard_ker_comp_eq_mul_of_surjective
namespace P2mKerMul
variable {A B C : Type*} [AddGroup A] [AddGroup B] [AddGroup C]
theorem ker_kerMap (f : A →+ B) (g : B →+ C) :
    (kerMap f g).ker = f.ker.addSubgroupOf (g.comp f).ker
AlgebraicCurves.Foundations.Algebra.Proofs.AddMonoidHom_natCard_ker_comp_eq_mul_of_surjective.P2mKerMul.natCard_ker_comp
Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Foundations.Algebra.Proofs
namespace AddMonoidHom_natCard_ker_comp_eq_mul_of_surjective
namespace P2mKerMul
variable {A B C : Type*} [AddGroup A] [AddGroup B] [AddGroup C]
theorem natCard_ker_comp (f : A →+ B) (g : B →+ C) (hf : Function.Surjective f) :
    Nat.card (g.comp f).ker = Nat.card g.ker * Nat.card f.ker
AddMonoidHom.natCard_ker_comp_eq_mul_of_surjective
Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Foundations.Algebra.Proofs
namespace AddMonoidHom_natCard_ker_comp_eq_mul_of_surjective
theorem _root_.AddMonoidHom.natCard_ker_comp_eq_mul_of_surjective {A B C : Type*} [AddGroup A]
  [AddGroup B] [AddGroup C]
    (f : A →+ B) (g : B →+ C) (hf : Function.Surjective f) :
    Nat.card (g.comp f).ker = Nat.card g.ker * Nat.card f.ker