-
TL;DR: we need an instance from `Algebra R A` to `Module Rᵐᵒᵖ A`, and it needs to not create diamonds.
### The problem
Mathematically, an $R$-algebra $A$ (`[CommSemiring R] [Semiring A] [Algebra…
-
`is_commutative` and `Q.commutative` is used to indicate whether the expression is commutative with respect to multiplication.
However, commutativity is property of operator, not expression. [https:/…
-
The background is #15447 fixed #14608 by raising exception when collecting a non-commutative symbol. This is also related to an old open issue #3741 .
Simply rejecting all `collect` call that inclu…
-
Currently, monoids, commutative monoids, groups, and commutative groups are all defined as sigma types over `setwithbinop`. I think it makes more sense to organize them as follows:
- Monoids as a si…
-
There are mathematical objects which occur in several corner stones in natural ways, which are largely independent though.
A first example of this kind are affine algebras, which are (rightfully) p…
-
The `__init__` method of GroupAlgebra did not check for commutativity of the group so that this would happen:
```
sage: G = AbelianGroup(2)
sage: A = GroupAlgebra(G)
sage: A.is_commutative()
True
s…
-
In the algebra hierarchy, we naturally have this diamond.
```
CommutativeRing (CR)
/ \
Ring (R) CommutativeSemiring (CSR)
\ …
-
Freek's list is weird and arbitrary, and although it is widely used as a benchmark by libraries of formalized mathematics and therefore it is important to track it on our library.
However, it would…
-
There is currently no precise definition of algebras (as in MagmaticAlgebra) in the documentation. A useful definition seems to be the following.
Let *R* be a ring (unital and associative as usual…
-
- Implement shorthand `Algebras(QQ).free(...)` for `FreeAlgebra(QQ, ...)`
- Implement shorthand `Algebras(QQ).Commutative().free(...)` for `PolynomialRing(QQ,...)`
- Implement shorthand `Modules(QQ…