feat(RingTheory/Idempotents): generalize to Semiring, add Corner and direct product decomposition #20531
+250
−124
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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 iffx * y = y * x = 0
andx + y = 1
. Golfpair_iff
.Given an element
e
in a semigroup R, defineSubsemigroup.corner
= eRe. If R is a non-unital semiring ande
is an idempotent, then eRe is a semiring. DefineIsIdempotentElem.Corner
as the Type version ofcorner
, 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 existsCompleteOrthogonalIdempotents.bijective_pi
but it uses subtraction and quotient so it's not suitable for semirings.