Skip to content

[Merged by Bors] - feat(RingTheory/Idempotents): generalize to Semiring, add Corner and direct product decomposition#20531

Closed
alreadydone wants to merge 2 commits intomasterfrom
Idempotent_DirectProduct
Closed

[Merged by Bors] - feat(RingTheory/Idempotents): generalize to Semiring, add Corner and direct product decomposition#20531
alreadydone wants to merge 2 commits intomasterfrom
Idempotent_DirectProduct

Conversation

@alreadydone
Copy link
Copy Markdown
Contributor

@alreadydone alreadydone commented Jan 6, 2025

  • Add CompleteOrthogonalIdempotents.iff_ortho_complete: if a family is complete orthogonal, it consists of idempotents.

  • Add CompleteOrthogonalIdempotents.pair_iff'ₛ: x and y form a complete orthogonal family iff x * y = y * x = 0 and x + y = 1. Golf pair_iff.

  • Given an element e in a semigroup R, define Subsemigroup.corner = eRe. If R is a non-unital semiring and e is an idempotent, then eRe is a semiring. Define IsIdempotentElem.Corner as the Type version of corner, and provide unital (commutative) (semi)ring instances on it.

  • CompleteOrthogonalIdempotents.mulEquivOfIsMulCentral: A complete orthogonal family of central idempotents in a semiring give rise to a direct product decomposition. There exists CompleteOrthogonalIdempotents.bijective_pi but it uses subtraction and quotient so it's not suitable for semirings.


Open in Gitpod

@alreadydone alreadydone added the t-algebra Algebra (groups, rings, fields, etc) label Jan 6, 2025
@github-actions
Copy link
Copy Markdown

github-actions bot commented Jan 6, 2025

PR summary 56237b65cc

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference

Declarations diff

+ CompleteOrthogonalIdempotents.iff_ortho_complete
+ CompleteOrthogonalIdempotents.mulEquivOfComm
+ CompleteOrthogonalIdempotents.mulEquivOfIsMulCentral
+ CompleteOrthogonalIdempotents.pair_iff'ₛ
+ CompleteOrthogonalIdempotents.pair_iffₛ
+ NonUnitalRing.corner
+ NonUnitalSubsemiring.corner
+ _root_.IsIdempotentElem.Corner
+ corner
+ instance [NonUnitalCommRing R] (idem : IsIdempotentElem e) : CommRing idem.Corner
+ instance [NonUnitalCommSemiring R] (idem : IsIdempotentElem e) : CommSemiring idem.Corner
+ instance [NonUnitalRing R] (idem : IsIdempotentElem e) : Ring idem.Corner
+ instance [NonUnitalSemiring R] (idem : IsIdempotentElem e) : Semiring idem.Corner
+ mem_corner_iff
+ mem_corner_iff_mem_range_mul_left
+ mem_corner_iff_mem_range_mul_right
+ mem_corner_iff_mul_left
+ mem_corner_iff_mul_right

You can run this locally as follows
## summary with just the declaration names:
./scripts/declarations_diff.sh <optional_commit>

## more verbose report:
./scripts/declarations_diff.sh long <optional_commit>

The doc-module for script/declarations_diff.sh contains some details about this script.


No changes to technical debt.

You can run this locally as

./scripts/technical-debt-metrics.sh pr_summary
  • The relative value is the weighted sum of the differences with weight given by the inverse of the current value of the statistic.
  • The absolute value is the relative value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).

@jcommelin
Copy link
Copy Markdown
Member

Thanks 🎉

bors merge

@ghost ghost added the ready-to-merge This PR has been sent to bors. label Jan 20, 2025
mathlib-bors bot pushed a commit that referenced this pull request Jan 20, 2025
…direct product decomposition (#20531)

+ Add `CompleteOrthogonalIdempotents.iff_ortho_complete`: if a family is complete orthogonal, it consists of idempotents.

+ Add `CompleteOrthogonalIdempotents.pair_iff'ₛ`: x and y form a complete orthogonal family iff `x * y = y * x = 0` and `x + y = 1`. Golf `pair_iff`.

+ Given an element `e` in a semigroup R, define `Subsemigroup.corner` = eRe. If R is a non-unital semiring and `e` is an idempotent, then eRe is a semiring. Define `IsIdempotentElem.Corner` as the Type version of `corner`, and provide unital (commutative) (semi)ring instances on it.

+ `CompleteOrthogonalIdempotents.mulEquivOfIsMulCentral`: A complete orthogonal family of central idempotents in a semiring give rise to a direct product decomposition. There exists `CompleteOrthogonalIdempotents.bijective_pi` but it uses subtraction and quotient so it's not suitable for semirings.
@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Jan 20, 2025

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat(RingTheory/Idempotents): generalize to Semiring, add Corner and direct product decomposition [Merged by Bors] - feat(RingTheory/Idempotents): generalize to Semiring, add Corner and direct product decomposition Jan 20, 2025
@mathlib-bors mathlib-bors bot closed this Jan 20, 2025
@mathlib-bors mathlib-bors bot deleted the Idempotent_DirectProduct branch January 20, 2025 12:24
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.

2 participants