FLT/Slop/PGL2/FiniteSubgroups/NatClassEquation.lean

GitHub source file

Explanation legend Lean4 Domain Explanation Language (L4DEL)

L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.

L4DEL
Lean4 Domain Explanation Language

Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.

Project sources: Pinned project documentation, Pinned FLT blueprint introduction

7 declarations, 0 contain sorry, 0 declared as axioms

A class-equation-style counting lemma for conjugates of subgroups

This file proves Dickson.natClassEquation: if H₁, …, Hᵣ are subgroups of a finite group G which pairwise intersect trivially (along with all their conjugates), then counting the nonidentity elements lying in conjugates of the Hᵢ gives the inequality ∑ i, (|Hᵢ| - 1) * |G : N_G(Hᵢ)| ≤ |G| - 1.

This is the integer form of the counting argument underlying the partition equation used in the tame case of Dickson's classification of finite subgroups of PGL₂(𝔽̄_p).

Imports (3)
Imported by 2 files
  1. lemma Dickson.card_conjugates_eq_normalizer_index line 47 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Group, Fintype, Subgroup, Eq, Nat, Fintype.card, Set.ofPred, Exists, Subgroup.map, MulEquiv.toMonoidHom, MonoidHom, MulAut, MulAut.conj, Membership.mem, Set, Subgroup.index, Subgroup.normalizer

    Proof uses: Eq.mpr, Nat.card, HasQuotient.Quotient, id, congrArg, Subgroup.index_eq_card, Eq.symm, Nat.card_eq_fintype_card, Nat.card_congr, Equiv.symm, Equiv.ofBijective, Subtype.mk, Quotient.out, QuotientGroup.leftRel, Exists.intro, rfl, And.intro, Function.Injective, Function.Surjective, QuotientGroup.out_eq' and 40 more

    87 instances, coercions and auxiliary constants left out.

    Tactic trace: 51 steps

    Open to load the checked before-and-after goal states.

  2. lemma Dickson.conjClass_unique_index line 112 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Group, Fintype, Nat, Fin, Subgroup, Exists, Eq, Subgroup.map, MulEquiv.toMonoidHom, MonoidHom, MulAut, MulAut.conj, Ne, Min.min, Bot.bot, OfNat.ofNat, Membership.mem

    Proof uses: Decidable.byContradiction, Not, Iff.mp, Iff, Subgroup.ext_iff, Exists.intro, rfl, And.intro, Set, Submonoid, Subgroup.toSubmonoid, HMul.hMul, Inv.inv, Subgroup.ext, Eq.mpr, And, id, congrFun', congrArg, Iff.intro and 23 more

    81 instances, coercions and auxiliary constants left out.

    Tactic trace: 28 steps

    Open to load the checked before-and-after goal states.

  3. def Dickson.conjClassElements The finset of non-identity elements of G' lying in some conjugate of the subgroup H line 156 source

    Source documentation

    The finset of non-identity elements of G' lying in some conjugate of the subgroup H.

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Group, Fintype, Subgroup, Finset

    Proof uses: Finset.filter, And, Ne, OfNat.ofNat, Exists, Membership.mem, Subgroup.map, MulEquiv.toMonoidHom, MonoidHom, MulAut, MulAut.conj, Eq, Finset.univ

    19 instances, coercions and auxiliary constants left out.

    def conjClassElements {G' : Type*} [Group G'] [Fintype G']
        (H : Subgroup G') : Finset G' :=
    …
  4. def Dickson.conjNonidentity The finset of non-identity elements of the conjugate subgroup H.map (MulAut.conj g) line 163 source

    Source documentation

    The finset of non-identity elements of the conjugate subgroup H.map (MulAut.conj g).

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Group, Fintype, Subgroup, Finset

    Proof uses: Finset.filter, And, Ne, OfNat.ofNat, Membership.mem, Subgroup.map, MulEquiv.toMonoidHom, MonoidHom, MulAut, MulAut.conj, Eq, Finset.univ

    18 instances, coercions and auxiliary constants left out.

    def conjNonidentity {G' : Type*} [Group G'] [Fintype G']
        (H : Subgroup G') (g : G') : Finset G' :=
    …
  5. lemma Dickson.card_conjNonidentity line 169 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Group, Fintype, Subgroup, Eq, Nat, Finset.card, Dickson.conjNonidentity, HSub.hSub, Nat.card, Subtype, Membership.mem, OfNat.ofNat

    Proof uses: Subgroup.map, MulEquiv.toMonoidHom, MonoidHom, MulAut, MulAut.conj, Finset, Finset.erase, Set.toFinset, Subsemigroup.carrier, Submonoid.toSubsemigroup, Subgroup.toSubmonoid, Set, Finset.ext, Eq.mpr, Iff, And, Not, id, congr, congrArg and 24 more

    40 instances, coercions and auxiliary constants left out.

    Tactic trace: 11 steps

    Open to load the checked before-and-after goal states.

  6. lemma Dickson.card_conjClassElements line 188 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Group, Fintype, Subgroup, GE.ge, Nat, Nat.card, Subtype, Membership.mem, OfNat.ofNat, Exists, Eq, Subgroup.map, MulEquiv.toMonoidHom, MonoidHom, MulAut, MulAut.conj, Ne, Min.min, Bot.bot, Finset.card and 5 more

    Proof uses: Fintype.card, Set.ofPred, Set, Dickson.card_conjugates_eq_normalizer_index, Finset, Finset.filter, Finset.univ, Eq.mpr, Finset.biUnion, And, id, congrArg, Finset.ext, Iff, congr, Eq.trans, True, congrFun', true_and, funext and 33 more

    70 instances, coercions and auxiliary constants left out.

    Tactic trace: 26 steps

    Open to load the checked before-and-after goal states.

  7. lemma Dickson.natClassEquation line 230 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Group, Fintype, Nat, Fin, Subgroup, GE.ge, Nat.card, Subtype, Membership.mem, OfNat.ofNat, Exists, Eq, Subgroup.map, MulEquiv.toMonoidHom, MonoidHom, MulAut, MulAut.conj, Ne, Min.min, Bot.bot and 7 more

    Proof uses: Finset.card, Finset.filter, Dickson.conjClassElements, Eq.mpr, Finset.biUnion, id, congrArg, Eq.symm, Finset.card_biUnion, Set, Finset, Function.onFun, Disjoint, Not, Eq.trans, forall_congr, implies_congr, True, congrFun', true_and and 30 more

    69 instances, coercions and auxiliary constants left out.

    Tactic trace: 31 steps

    Open to load the checked before-and-after goal states.