Skip to content
Closed
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions Mathlib/GroupTheory/QuotientGroup/Defs.lean
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,20 @@ theorem lift_quot_mk {φ : G →* M} (HN : N ≤ φ.ker) (g : G) :
lift N φ HN (Quot.mk _ g : Q) = φ g :=
rfl

@[to_additive]
theorem lift_surjective_of_surjective (φ : G →* M) (hφ : Function.Surjective φ) (HN : N ≤ φ.ker) :
Comment thread
xroblot marked this conversation as resolved.
Function.Surjective (QuotientGroup.lift N φ HN) :=
fun x ↦ ⟨mk (hφ x).choose, by rw [lift_mk, (hφ x).choose_spec]⟩

@[to_additive]
theorem lift_ker (φ : G →* M) (HN : N ≤ φ.ker) :
Comment thread
xroblot marked this conversation as resolved.
Outdated
(QuotientGroup.lift N φ HN).ker = Subgroup.map (QuotientGroup.mk' N) φ.ker := by
Comment thread
xroblot marked this conversation as resolved.
ext x
obtain ⟨a, rfl⟩ := QuotientGroup.mk_surjective x
simp_rw [Subgroup.mem_map, MonoidHom.mem_ker, lift_mk, mk'_apply]
exact ⟨fun ha ↦ ⟨a, ha, rfl⟩, fun ⟨b, h₁, h₂⟩ ↦ by
rwa [show φ a = φ b from congr_arg (lift N φ HN) h₂.symm]⟩

/-- A group homomorphism `f : G →* H` induces a map `G/N →* H/M` if `N ⊆ f⁻¹(M)`. -/
@[to_additive
"An `AddGroup` homomorphism `f : G →+ H` induces a map `G/N →+ H/M` if `N ⊆ f⁻¹(M)`."]
Expand All @@ -263,6 +277,18 @@ theorem map_mk' (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f)
map N M f h (mk' _ x) = ↑(f x) :=
rfl

@[to_additive]
theorem map_surjective_of_surjective (M : Subgroup H) [M.Normal] (f : G →* H)
(hf : Function.Surjective (mk ∘ f : G → H ⧸ M)) (h : N ≤ M.comap f) :
Function.Surjective (map N M f h) :=
lift_surjective_of_surjective _ _ hf _

@[to_additive]
theorem map_ker (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ Subgroup.comap f M) :
Comment thread
xroblot marked this conversation as resolved.
Outdated
(map N M f h).ker = Subgroup.map (mk' N) (M.comap f) := by
simp_rw [← ker_mk' M, MonoidHom.comap_ker]
exact QuotientGroup.lift_ker _ _ _

@[to_additive]
theorem map_id_apply (h : N ≤ Subgroup.comap (MonoidHom.id _) N := (Subgroup.comap_id N).le) (x) :
map N N (MonoidHom.id _) h x = x :=
Expand Down
Loading