-
Notifications
You must be signed in to change notification settings - Fork 197
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
subgroups of direct products #2233
base: master
Are you sure you want to change the base?
Conversation
<!-- ps-id: 0c8f756f-6b32-48e2-bba2-1cb311ceef94 --> Signed-off-by: Ali Caglayan <[email protected]>
eab824b
to
5f7f49a
Compare
Definition subgroup_grp_prod_l {G H : Group} (K : Subgroup G) | ||
: Subgroup (grp_prod G H) | ||
:= subgroup_image grp_prod_inl K. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This definition of the induced subgroup of G x H is concise, but in some ways is more complicated than necessary. First, subgroup_image
is defined in terms of grp_image
, which adds a truncation, but because grp_prod_inl
is an embedding, the truncation is not needed. So maybe we should have a subgroup_image_embedding
that uses grp_image_embedding
, and then use that here?
Second, grp_image_embedding
adds a sigma type (via hfiber
), but in this case even that is not necessary. The predicate for the induced subgroup can be defined to send (g, h)
to K g * (h = 1)
. But then we'd have to prove that this does define a subgroup, which probably makes it not worthwhile.
Neither of these are very important, but I thought I'd mention them.
- exact (ap snd p^). | ||
Defined. | ||
|
||
(** TODO: use [pred_eq] *) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is pred_eq
? Is this referring to something we discussed earlier?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, great. I'll try to get to 2121 soon.
: forall x, maximal_subgroup (grp_prod G H) x | ||
<-> subgroup_product | ||
(subgroup_grp_prod_l (maximal_subgroup G)) | ||
(subgroup_grp_prod_r (maximal_subgroup H)) x. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another way to state the conclusion is
forall x, subgroup_product
(subgroup_grp_prod_l (maximal_subgroup G))
(subgroup_grp_prod_r (maximal_subgroup H)) x.
but maybe your way is better?
Independently, the two groups on the right can be simplified to (grp_image_embedding grp_prod_inl)
and (grp_image_embedding grp_prod_inr)
, which avoids mentioning maximal groups, avoids subgroup_grp_prod_l
and _r
, and avoids the truncations. If your goal was this result, then using these versions of these groups would be a shorter way to get here.
Here was some miscellaneous stuff about subgroups of products that I didn't end up using.