Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve mapping out of a generated subgroup #2180

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 18 additions & 9 deletions theories/Algebra/Groups/Subgroup.v
Original file line number Diff line number Diff line change
Expand Up @@ -557,20 +557,29 @@ Definition subgroup_generated_gen_incl {G : Group} {X : G -> Type} (g : G) (H :
: subgroup_generated X
:= (g; tr (sgt_in H)).

(** The generated subgroup is the smallest subgroup containing the generating set. *)
Definition subgroup_generated_rec {G : Group} (X : G -> Type) (S : Subgroup G)
(i : forall g, X g -> S g)
: forall g, subgroup_generated X g -> S g.
Proof.
intros g; rapply Trunc_rec; intros p.
induction p as [g Xg | | g h p1 IHp1 p2 IHp2].
- by apply i.
- apply subgroup_in_unit.
- by apply subgroup_in_op_inv.
Defined.

(** If [f : G $-> H] is a group homomorphism and [X] and [Y] are subsets of [G] and [H] such that [f] maps [X] into [Y], then [f] sends the subgroup generated by [X] into the subgroup generated by [Y]. *)
Definition functor_subgroup_generated {G H : Group} (X : G -> Type) (Y : H -> Type)
(f : G $-> H) (preserves : forall g, X g -> Y (f g))
: forall g, subgroup_generated X g -> subgroup_generated Y (f g).
Proof.
intro g.
apply Trunc_functor.
intro p.
induction p as [g i | | g h p1 IHp1 p2 IHp2].
- apply sgt_in, preserves, i.
- rewrite grp_homo_unit.
apply sgt_unit.
- rewrite grp_homo_op, grp_homo_inv.
by apply sgt_op.
change (subgroup_generated Y (f ?g))
with (subgroup_preimage f (subgroup_generated Y) g).
apply subgroup_generated_rec.
intros g p.
apply tr, sgt_in.
by apply preserves.
Defined.

(** The product of two subgroups. *)
Expand Down
Loading