# Commit 2023-11-17 13:15 3cc786ff

View on Github →refactor(Algebra/DualNumber): generalize the universal property to non-commutative rings (#7934)
The current universal properties of `TrivSqZeroExt`

and `DualNumber`

work only when the underlying ring is commutative.
This is not the case for things like the dual quaternions.
This generalizes both sets of results to the non-commutative case.
Unfortunately the new `TrivSqZeroExt`

version is rather involved, so this keeps the old statement as a special case.
The new `DualNumber`

version is less bad, so I just discarded the commutative special case.
For dual numbers, the generalization is from `R[ε] →ₐ[R] B`

to `A[ε] →ₐ[R] B`

, where `R`

is commutative but `A`

may not be.
Some variable names had to be shuffled to make the new statement look nice.