All Downloads are FREE. Search and download functionalities are using the official Maven repository.

poly.algebra.CRing.scala Maven / Gradle / Ivy

package poly.algebra

import poly.algebra.factory._
import poly.algebra.specgroup._

/**
 * Represents a commutative ring (i.e. the multiplication operation is also commutative).
 *
 * An instance of this typeclass should satisfy the following axioms:
 *  - $lawAdditiveAssociativity
 *  - $lawAdditiveIdentity
 *  - $lawAdditiveInvertibility
 *  - $lawAdditiveCommutativity
 *  - $lawMultiplicativeAssociativity
 *  - $lawMultiplicativeIdentity
 *  - $lawMultiplicativeCommutativity
 *  - $lawDistributivityMA
 * @since 0.2.6
 */
trait CRing[@sp(fdil) X] extends Ring[X] with CSemiring[X]

object CRing extends ImplicitGetter[CRing]




© 2015 - 2024 Weber Informatics LLC | Privacy Policy