Skip to content

Commit

Permalink
feat(group_theory/subgroup): add several trivial lemmas (#16633)
Browse files Browse the repository at this point in the history
* add `subgroup.top_to_submonoid` and `subgroup.bot_to_submonoid`;
* add `free_monoid.mrange_lift`.
  • Loading branch information
urkud committed Oct 3, 2022
1 parent 3cf2547 commit 35bc69b
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 6 deletions.
9 changes: 5 additions & 4 deletions src/group_theory/subgroup/basic.lean
Expand Up @@ -648,11 +648,12 @@ instance : inhabited (subgroup G) := ⟨⊥⟩

@[to_additive] instance : unique (⊥ : subgroup G) := ⟨⟨1⟩, λ g, subtype.ext g.2

@[simp, to_additive] lemma top_to_submonoid : (⊤ : subgroup G).to_submonoid = ⊤ := rfl

@[simp, to_additive] lemma bot_to_submonoid : (⊥ : subgroup G).to_submonoid = ⊥ := rfl

@[to_additive] lemma eq_bot_iff_forall : H = ⊥ ↔ ∀ x ∈ H, x = (1 : G) :=
begin
rw set_like.ext'_iff,
simp only [coe_bot, set.eq_singleton_iff_unique_mem, set_like.mem_coe, H.one_mem, true_and],
end
to_submonoid_injective.eq_iff.symm.trans $ submonoid.eq_bot_iff_forall _

@[to_additive] lemma eq_bot_of_subsingleton [subsingleton H] : H = ⊥ :=
begin
Expand Down
8 changes: 6 additions & 2 deletions src/group_theory/submonoid/membership.lean
Expand Up @@ -280,10 +280,14 @@ mem_closure_singleton.2 ⟨1, pow_one y⟩
lemma closure_singleton_one : closure ({1} : set M) = ⊥ :=
by simp [eq_bot_iff_forall, mem_closure_singleton]

@[to_additive] lemma _root_.free_monoid.mrange_lift {α} (f : α → M) :
(free_monoid.lift f).mrange = closure (set.range f) :=
by rw [mrange_eq_map, ← free_monoid.closure_range_of, map_mclosure, ← set.range_comp,
free_monoid.lift_comp_of]

@[to_additive]
lemma closure_eq_mrange (s : set M) : closure s = (free_monoid.lift (coe : s → M)).mrange :=
by rw [mrange_eq_map, ← free_monoid.closure_range_of, map_mclosure, ← set.range_comp,
free_monoid.lift_comp_of, subtype.range_coe]
by rw [free_monoid.mrange_lift, subtype.range_coe]

@[to_additive] lemma closure_eq_image_prod (s : set M) :
(closure s : set M) = list.prod '' {l : list M | ∀ x ∈ l, x ∈ s} :=
Expand Down

0 comments on commit 35bc69b

Please sign in to comment.