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

Commit b9ab27b

Browse files
committed
feat(group_theory/subgroup/basic): add eq_one_of_noncomm_prod_eq_one_of_independent (#12525)
`finset.noncomm_prod` is “injective” in `f` if `f` maps into independent subgroups. It generalizes (one direction of) `subgroup.disjoint_iff_mul_eq_one`.
1 parent b21c1c9 commit b9ab27b

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

src/group_theory/subgroup/basic.lean

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2763,6 +2763,39 @@ disjoint_def'.trans ⟨λ h x y hx hy hxy,
27632763
⟨hx1, by simpa [hx1] using hxy⟩,
27642764
λ h x y hx hy hxy, (h hx (H₂.inv_mem hy) (mul_inv_eq_one.mpr hxy)).1
27652765

2766+
/-- `finset.noncomm_prod` is “injective” in `f` if `f` maps into independent subgroups. This
2767+
generalizes (one direction of) `subgroup.disjoint_iff_mul_eq_one`. -/
2768+
@[to_additive "`finset.noncomm_sum` is “injective” in `f` if `f` maps into independent subgroups.
2769+
This generalizes (one direction of) `add_subgroup.disjoint_iff_add_eq_zero`. "]
2770+
lemma eq_one_of_noncomm_prod_eq_one_of_independent {β : Type*} [group β]
2771+
(s : finset G) (f : G → β) (comm : ∀ (x ∈ s) (y ∈ s), commute (f x) (f y))
2772+
(K : G → subgroup β) (hind : complete_lattice.independent K) (hmem : ∀ (x ∈ s), f x ∈ K x)
2773+
(heq1 : s.noncomm_prod f comm = 1) : ∀ (i ∈ s), f i = 1 :=
2774+
begin
2775+
classical,
2776+
revert heq1,
2777+
induction s using finset.induction_on with i s hnmem ih,
2778+
{ simp, },
2779+
{ simp only [finset.forall_mem_insert] at comm hmem,
2780+
specialize ih (λ x hx, (comm.2 x hx).2) hmem.2,
2781+
have hmem_bsupr: s.noncomm_prod f (λ x hx, (comm.2 x hx).2) ∈ ⨆ (i ∈ (s : set G)), K i,
2782+
{ refine subgroup.noncomm_prod_mem _ _ _,
2783+
intros x hx,
2784+
have : K x ≤ ⨆ (i ∈ (s : set G)), K i := le_bsupr x hx,
2785+
exact this (hmem.2 x hx), },
2786+
intro heq1,
2787+
rw finset.noncomm_prod_insert_of_not_mem _ _ _ _ hnmem at heq1,
2788+
have hnmem' : i ∉ (s : set G), by simpa,
2789+
obtain ⟨heq1i : f i = 1, heq1S : s.noncomm_prod f _ = 1⟩ :=
2790+
subgroup.disjoint_iff_mul_eq_one.mp (hind.disjoint_bsupr hnmem') hmem.1 hmem_bsupr heq1,
2791+
specialize ih heq1S,
2792+
intros i h,
2793+
simp only [finset.mem_insert] at h,
2794+
rcases h with ⟨rfl | _⟩,
2795+
{ exact heq1i },
2796+
{ exact (ih _ h), } }
2797+
end
2798+
27662799
end subgroup
27672800

27682801
namespace is_conj

0 commit comments

Comments
 (0)