Prove2Me
Navigate
DiscoverFormalpediaBlogsUsersMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Theorem 11.2.3 — Second Isomorphism Theorem

Proved
AATA.second_isomorphism_11_2_3

by wamlart · Sep 6, 2026 · Mathlib 777aaa6 (Lean v4.29.0-rc3)

group-theoryisomorphism-theoremsquotient-groups

Let GGG be a group, let K≤GK\le GK≤G be a subgroup, and let NNN be a normal subgroup of GGG. The product set KN={kn:k∈K,n∈N}KN=\{kn:k\in K,n\in N\}KN={kn:k∈K,n∈N} is a subgroup of GGG, the intersection K∩NK\cap NK∩N is normal in KKK, and

K/(K∩N)≅KN/N.K/(K\cap N)\cong KN/N.K/(K∩N)≅KN/N.

This identifies the part of the quotient G/NG/NG/N reached by KKK. The subgroup KKK is not required to be normal, and it is not assumed to map onto all of G/NG/NG/N.

Formalization Note. The subgroup join is explicitly equated with the product set KNKNKN. Subgroup restrictions represent K∩NK\cap NK∩N inside KKK and the contained copy of NNN inside KNKNKN.

Preamble
import Mathlib.GroupTheory.QuotientGroup.Basic
import Mathlib.Tactic

set_option autoImplicit false
set_option maxHeartbeats 200000
universe u v
Formal statement
namespace AATA
theorem second_isomorphism_11_2_3 {G : Type u} [Group G] (K N : Subgroup G) [N.Normal] :
    ((K ⊔ N : Subgroup G) : Set G) =
      {g : G | ∃ k ∈ K, ∃ n ∈ N, k*n = g} ∧
    (N.subgroupOf K).Normal ∧
    Nonempty (K ⧸ N.subgroupOf K ≃*
      (K ⊔ N : Subgroup G) ⧸ N.subgroupOf (K ⊔ N)) := by sorry
end AATA
Source
Thomas W. Judson, Abstract Algebra: Theory and Applications, author-hosted HTML edition dated August 4, 2026, Theorem 11.2.3, https://judsonbooks.org/aata-files/aata-html/homomorph-section-group-isomorphism-theorems.html
Read-back

What the Lean code literally says, in plain math · Codex (exact model identifier unavailable in auditor runtime)

For an arbitrary universe level uuu, an arbitrary type GGG in universe uuu with a specified group structure, and arbitrary subgroups KKK and NNN of GGG, assume that NNN is normal in GGG, meaning ana−1∈Nana^{-1}\in Nana−1∈N for every n∈Nn\in Nn∈N and a∈Ga\in Ga∈G. Let J=K∨NJ=K\vee NJ=K∨N be the least subgroup of GGG containing both KKK and NNN, let A={k∈K:k belongs to N when viewed in G}A=\{k\in K:k\text{ belongs to }N\text{ when viewed in }G\}A={k∈K:k belongs to N when viewed in G} be a subgroup of the group KKK, and let B={j∈J:j belongs to N when viewed in G}B=\{j\in J:j\text{ belongs to }N\text{ when viewed in }G\}B={j∈J:j belongs to N when viewed in G} be a subgroup of the group JJJ. Then the underlying set of JJJ is exactly {g∈G:∃k∈K, ∃n∈N, kn=g}\{g\in G:\exists k\in K,\ \exists n\in N,\ kn=g\}{g∈G:∃k∈K, ∃n∈N, kn=g}, the subgroup AAA is normal in KKK, and there exists a group isomorphism K/A→J/BK/A\to J/BK/A→J/B, that is, a bijection preserving multiplication. The product in the set equality is specifically an element of KKK followed by an element of NNN. Here AAA represents K∩NK\cap NK∩N inside KKK, and BBB represents N∩JN\cap JN∩J inside JJJ (with N⊆JN\subseteq JN⊆J following from the definition of JJJ); neither occurrence is a quotient by a subgroup of an unrelated ambient group. Both quotients use left cosets, where two representatives x,yx,yx,y represent the same coset exactly when x−1yx^{-1}yx−1y belongs to the relevant denominator subgroup. Their group structures use the normality of NNN restricted to KKK and JJJ, supplied by library instances from the assumed normality of NNN in GGG. The isomorphism assertion only states that the type of such isomorphisms is inhabited: it gives neither a particular map on cosets nor a uniqueness or compatibility condition. No assumption says that KKK is normal in GGG, that either subgroup contains the other, or that any group is finite, commutative, or nontrivial. The cases K={1}K=\{1\}K={1}, K=GK=GK=G, N={1}N=\{1\}N={1}, N=GN=GN=G, K⊆NK\subseteq NK⊆N, and a trivial GGG are included; when K⊆NK\subseteq NK⊆N, both displayed quotient groups are trivial. Empty groups and empty subgroups are excluded by their structures. The file also declares a universe level vvv, but vvv does not occur in this theorem.

Actual model identifier: unavailable in this runtime.

Human review
  • Endorsed by Shuze Chen · Sep 6, 2026

  • Flagged by Shuze Chen · Sep 6, 2026

    Same concern as on the goal: this is Mathlib's QuotientGroup.quotientInfEquivProdNormalQuotient in nearly identical subgroupOf and join form (plus Subgroup.mul_normal for the product set clause). The wrapper is well made, but there is no open formalization content here.

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactJoin Slack© 2026 Prove2Me