Repository navigation
Algebra contributions #3102
LionOfJewdah
started this conversation in
Ideas
Replies: 1 comment
|
Suggest that if you're interested in making a concrete contribution to the existing library, then rather than post here, that you open a pull request. When doing so, please make sure to read |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
I have some ideas I'd like to contribute to stdlib Algebra (beyond just matrices, #3101). I was thinking perhaps the induced subgroup theorem and perhaps things like group/ring completion:
Induced subgroup theorem
(And generalizations to monoids and rings, etc) which basically given
you construct the induced subgroup (/submonoid/subring), you can transitively chain them, and even construct homomorphism kernels (e.g.
KernelPred x = f x H.≈ H.ε, forfa homomorphismG → H)Group completion and similar
The easiest place to start is commutative monoids completed as Abelian groups. Basically,
The slack is necessary because the naive relation
a + d ≈ c + bis transitive only when the monoid is cancellative; so it needs to have no idempotents. This can be done with non-commutative monoids, and with semirings to rings, and (trivially) semigroups to monoids (adjoin an identity; if there is already ε; it is setoidally equal to the adjoined one). If you start with a non-cancellative monoid or semiring, you get the trivial group or ring; for example, if we start with[0, +∞)we could get things that preclude negatives like "4 + ∞ = ∞; so -(4 + ∞) = -∞ so ∞ - ∞ = 0; but 2 + ∞ = ∞ so -(2 + ∞) = -∞ so ∞ - ∞ = (4 + ∞) - (2 + ∞) = 2 ≠ 0".All reactions