Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit e0f7d0e

Browse files
committed
feat(group_theory/complement): is_complement_iff_card_mul_and_disjoint (#9476)
Adds the converse to an existing lemma `is_complement_of_disjoint` (renamed `is_complement_of_card_mul_and_disjoint`).
1 parent 57fa903 commit e0f7d0e

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

src/group_theory/complement.lean

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -149,9 +149,17 @@ mem_right_transversals_iff_exists_unique_quotient_mk'_eq.trans
149149
{ rintros ⟨_, q₁, rfl⟩ ⟨_, q₂, rfl⟩ hg,
150150
rw (q₁.out_eq'.symm.trans hg).trans q₂.out_eq' }, λ q, ⟨⟨q.out', q, rfl⟩, quotient.out_eq' q⟩⟩⟩⟩
151151

152-
lemma is_complement_of_disjoint [fintype G] [fintype H] [fintype K]
153-
(h1 : fintype.card H * fintype.card K = fintype.card G)
154-
(h2 : disjoint H K) :
152+
lemma is_complement.card_mul [fintype G] [fintype H] [fintype K]
153+
(h : is_complement (H : set G) (K : set G)) :
154+
fintype.card H * fintype.card K = fintype.card G :=
155+
(fintype.card_prod _ _).symm.trans (fintype.card_of_bijective h)
156+
157+
lemma is_complement.disjoint (h : is_complement (H : set G) (K : set G)) : disjoint H K :=
158+
λ g hg, let x : H × K := ⟨⟨g, hg.1⟩, 1⟩, y : H × K := ⟨1, ⟨g, hg.2⟩⟩ in subtype.ext_iff.mp
159+
(prod.ext_iff.mp (h.1 (show x.1.1 * _ = y.1.1 * _, from (mul_one g).trans (one_mul g).symm))).1
160+
161+
lemma is_complement_of_card_mul_and_disjoint [fintype G] [fintype H] [fintype K]
162+
(h1 : fintype.card H * fintype.card K = fintype.card G) (h2 : disjoint H K) :
155163
is_complement (H : set G) (K : set G) :=
156164
begin
157165
refine (fintype.bijective_iff_injective_and_card _).mpr
@@ -163,10 +171,15 @@ begin
163171
exact ⟨subtype.mem ((x.1)⁻¹ * (y.1)), (congr_arg (∈ K) h).mp (subtype.mem (x.2 * (y.2)⁻¹))⟩,
164172
end
165173

174+
lemma is_complement_iff_card_mul_and_disjoint [fintype G] [fintype H] [fintype K] :
175+
is_complement (H : set G) (K : set G) ↔
176+
fintype.card H * fintype.card K = fintype.card G ∧ disjoint H K :=
177+
⟨λ h, ⟨h.card_mul, h.disjoint⟩, λ h, is_complement_of_card_mul_and_disjoint h.1 h.2
178+
166179
lemma is_complement_of_coprime [fintype G] [fintype H] [fintype K]
167180
(h1 : fintype.card H * fintype.card K = fintype.card G)
168181
(h2 : nat.coprime (fintype.card H) (fintype.card K)) :
169182
is_complement (H : set G) (K : set G) :=
170-
is_complement_of_disjoint h1 (disjoint_iff.mpr (inf_eq_bot_of_coprime h2))
183+
is_complement_of_card_mul_and_disjoint h1 (disjoint_iff.mpr (inf_eq_bot_of_coprime h2))
171184

172185
end subgroup

0 commit comments

Comments
 (0)