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

[Merged by Bors] - feat: TwoUniqueProds #7169

Closed
wants to merge 15 commits into from
Closed

Conversation

alreadydone
Copy link
Contributor

@alreadydone alreadydone commented Sep 15, 2023

  • Introduce TwoUniqueProds/Sums: let R[G] be a monoid algebra over a semiring R without zero-divisors. A natural sufficient condition for R[G] to have no zero-divisors is that G has UniqueProds, as is shown by MonoidAlgebra.instNoZeroDivisorsOfUniqueProds. Similarly, a natural sufficient condition for R[G] to have only trivial units (of the form rg with r a unit in R and g a unit in G) is that G has TwoUniqueProds, but we don't prove this yet in this PR. TwoUniqueProds G is also a natural sufficient condition in order for factors of a homogeneous element in an algebra graded by G without zero-divisors to themselves be homogeneous.

  • Show TwoUniqueProds implies UniqueProds: TwoUniqueProds.toUniqueProds

  • Strengthen of_Covariant_right/left to have TwoUniqueProds as conclusion

  • Extract of_image_filter from the proof of the instance UniqueProds (∀ i, G i) and use it also in the proof of TwoUniqueProds (∀ i, G i)

  • Use some private defs (starting from private abbrev I) to transfer (Two)UniqueProds (∀ i, G i) instances to (Two)UniqueProds (G × H)

  • Move the [Module ℚ G] : UniqueSums G instance from NoZeroDivisors.lean to UniqueProds.lean and strengthen to TwoUniqueSums

New lemmas about UniqueMul:

  • of_card_le_one, iff_card_le_one, UniqueMul_of_TwoUniqueMul

Open in Gitpod

@leanprover-community-mathlib4-bot leanprover-community-mathlib4-bot added the blocked-by-other-PR This PR depends on another PR which is still in the queue. label Sep 15, 2023
@alreadydone alreadydone added the awaiting-review The author would like community review of the PR label Sep 15, 2023
@leanprover-community-mathlib4-bot leanprover-community-mathlib4-bot removed the blocked-by-other-PR This PR depends on another PR which is still in the queue. label Sep 15, 2023
@leanprover-community-mathlib4-bot
Copy link
Collaborator

This PR/issue depends on:

@alreadydone alreadydone added the t-algebra Algebra (groups, rings, fields etc) label Sep 15, 2023
Copy link
Collaborator

@adomani adomani left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very nice! I left just a couple of small comments.

Mathlib/Algebra/Group/UniqueProds.lean Outdated Show resolved Hide resolved
Mathlib/Algebra/Group/UniqueProds.lean Outdated Show resolved Hide resolved
Mathlib/Algebra/Group/UniqueProds.lean Show resolved Hide resolved
Mathlib/Algebra/Group/UniqueProds.lean Outdated Show resolved Hide resolved
Mathlib/Algebra/Group/UniqueProds.lean Outdated Show resolved Hide resolved
Mathlib/Algebra/Group/UniqueProds.lean Show resolved Hide resolved
Copy link
Member

@jcommelin jcommelin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks 🎉

bors merge

@leanprover-community-mathlib4-bot leanprover-community-mathlib4-bot added ready-to-merge This PR has been sent to bors. and removed awaiting-review The author would like community review of the PR labels Sep 18, 2023
bors bot pushed a commit that referenced this pull request Sep 18, 2023
+ Introduce `TwoUniqueProds/Sums`: let `R[G]` be a monoid algebra over a semiring `R` without zero-divisors. A natural sufficient condition for `R[G]` to have no zero-divisors is that `G` has `UniqueProds`, as is shown by [MonoidAlgebra.instNoZeroDivisorsOfUniqueProds](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.html#MonoidAlgebra.instNoZeroDivisorsOfUniqueProds). Similarly, a natural sufficient condition for `R[G]` to have only trivial units (of the form `rg` with `r` a unit in `R` and `g` a unit in `G`) is that `G` has `TwoUniqueProds`, but we don't prove this yet in this PR. `TwoUniqueProds G` is also a natural sufficient condition in order for factors of a homogeneous element in an algebra graded by `G` without zero-divisors to themselves be homogeneous.

+ Show `TwoUniqueProds` implies `UniqueProds`: `TwoUniqueProds.toUniqueProds`

+ Strengthen `of_Covariant_right/left` to have `TwoUniqueProds` as conclusion

+ Extract `of_image_filter` from the proof of the instance `UniqueProds (∀ i, G i)` and use it also in the proof of `TwoUniqueProds (∀ i, G i)`

+ Use some private defs (starting from `private abbrev I`) to transfer `(Two)UniqueProds (∀ i, G i)` instances to `(Two)UniqueProds (G × H)`

+ Move the `[Module ℚ G] : UniqueSums G` instance from NoZeroDivisors.lean to UniqueProds.lean and strengthen to `TwoUniqueSums`

New lemmas about UniqueMul:
+ `of_card_le_one`, `iff_card_le_one`, `UniqueMul_of_TwoUniqueMul`



Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>
@bors
Copy link

bors bot commented Sep 18, 2023

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.
For more help, visit the forum.

If you want to switch to GitHub's built-in merge queue, visit their help page.

@bors bors bot changed the title feat: TwoUniqueProds [Merged by Bors] - feat: TwoUniqueProds Sep 18, 2023
@bors bors bot closed this Sep 18, 2023
@bors bors bot deleted the TwoUniqueProds' branch September 18, 2023 17:00
@alreadydone alreadydone restored the TwoUniqueProds' branch September 18, 2023 18:29
@alreadydone alreadydone deleted the TwoUniqueProds' branch September 18, 2023 18:33
kodyvajjha pushed a commit that referenced this pull request Sep 22, 2023
+ Introduce `TwoUniqueProds/Sums`: let `R[G]` be a monoid algebra over a semiring `R` without zero-divisors. A natural sufficient condition for `R[G]` to have no zero-divisors is that `G` has `UniqueProds`, as is shown by [MonoidAlgebra.instNoZeroDivisorsOfUniqueProds](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.html#MonoidAlgebra.instNoZeroDivisorsOfUniqueProds). Similarly, a natural sufficient condition for `R[G]` to have only trivial units (of the form `rg` with `r` a unit in `R` and `g` a unit in `G`) is that `G` has `TwoUniqueProds`, but we don't prove this yet in this PR. `TwoUniqueProds G` is also a natural sufficient condition in order for factors of a homogeneous element in an algebra graded by `G` without zero-divisors to themselves be homogeneous.

+ Show `TwoUniqueProds` implies `UniqueProds`: `TwoUniqueProds.toUniqueProds`

+ Strengthen `of_Covariant_right/left` to have `TwoUniqueProds` as conclusion

+ Extract `of_image_filter` from the proof of the instance `UniqueProds (∀ i, G i)` and use it also in the proof of `TwoUniqueProds (∀ i, G i)`

+ Use some private defs (starting from `private abbrev I`) to transfer `(Two)UniqueProds (∀ i, G i)` instances to `(Two)UniqueProds (G × H)`

+ Move the `[Module ℚ G] : UniqueSums G` instance from NoZeroDivisors.lean to UniqueProds.lean and strengthen to `TwoUniqueSums`

New lemmas about UniqueMul:
+ `of_card_le_one`, `iff_card_le_one`, `UniqueMul_of_TwoUniqueMul`



Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready-to-merge This PR has been sent to bors. t-algebra Algebra (groups, rings, fields etc)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants