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
[Merged by Bors] - feat(GroupTheory/Complement): the equivalence and some corresponding lemmas #6899
Conversation
ChrisHughes24
commented
Aug 31, 2023
Co-authored-by: Yaël Dillies <yael.dillies@gmail.com>
Co-authored-by: Yaël Dillies <yael.dillies@gmail.com>
…community/mathlib4 into ComplementGroupChris
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 is fine by me. Would anyone else like to review? @kbuzzard, you seem to know the maths?
· exact hST.equiv_snd_eq_self_of_mem_of_one_mem h1 | ||
|
||
theorem equiv_fst_eq_one_iff_mem {g : G} (h1 : 1 ∈ S) : | ||
((hST.equiv g).fst : G) = 1 ↔ g ∈ T := by |
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.
Could you have coe
in the name somewhere to distinguish from the similar lemma that would talk about equality in the subtype?
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.
I prefer to leave it, because the coe
in the name feels like noise to me, but I'll change it anyway.
I don't think there's a huge amount of maths to need to know here. For context, the motivation is that when defining normal forms for words in the amalgamated product or HNN extension, I need to choose a canonical element of each coset of a subgroup that's involved in some quotient I'm doing. And the canconical element of the subgroup itself has to be one. Mostly I care about the case where one of the sets is a subgroup, but some lemmas are randomly true in other cases. |
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.
I'm happy with what I'm seeing. And if you tell me there's not much to understand, I'm happy.
exact Subtype.prop _ | ||
· exact hST.equiv_fst_eq_self_of_mem_of_one_mem h1 | ||
|
||
theorem equiv_snd_eq_self_iff_mem {g : G} (h1 : 1 ∈ S) : |
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.
theorem equiv_snd_eq_self_iff_mem {g : G} (h1 : 1 ∈ S) : | |
theorem coe_equiv_snd_eq_self_iff_mem {g : G} (h1 : 1 ∈ S) : |
hST.equiv 1 = (⟨1, hs1⟩, ⟨1, ht1⟩) := by | ||
rw [Equiv.apply_eq_iff_eq_symm_apply]; simp [equiv] | ||
|
||
theorem equiv_fst_eq_self_iff_mem {g : G} (h1 : 1 ∈ T) : |
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.
theorem equiv_fst_eq_self_iff_mem {g : G} (h1 : 1 ∈ T) : | |
theorem coe_equiv_fst_eq_self_iff_mem {g : G} (h1 : 1 ∈ T) : |
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's no corresponding lemma without a coe
here.
Mathlib/GroupTheory/Complement.lean
Outdated
theorem leftCosetEquivalence_iff_equiv_fst_eq {g₁ g₂ : G} : | ||
LeftCosetEquivalence K g₁ g₂ ↔ (hSK.equiv g₁).fst = (hSK.equiv g₂).fst := by |
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.
I think the LHS is currently simpler than the RHS? What about turning it around and making it a simp lemma?
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.
I swapped it, but I'm slightly nervous about simplifying away equalities which can be used for simplification elsewhere.
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.
maintainer merge
🚀 Pull request has been placed on the maintainer queue by YaelDillies. |
Thanks! bors r+ |
…lemmas (#6899) Co-authored-by: Chris Hughes <33847686+ChrisHughes24@users.noreply.github.com>
Pull request successfully merged into master. Build succeeded! The publicly hosted instance of bors-ng is deprecated and will go away soon. If you want to self-host your own instance, instructions are here. If you want to switch to GitHub's built-in merge queue, visit their help page. |