Коммутативное полукольцо

Коммутативное полукольцо - это полукольцо, с коммутативной операцией умножения: для \(\forall x, y \in S\) выполняется \(x * y = y * x\).

Для полукольца с единицей должны соблюдаться все законы полукольца:

, а также закон коммутативности умножения:

Код

trait CSemiring[A] extends Semiring[A]

Законы

Схема

classDiagram
    class Semigroup~A~{
        +combine(x: A, y: A) A
    }  
    class Monoid~A~{
        +empty() A
    }
    Semigroup <|-- Monoid
    class CommutativeSemigroup~A~
    Semigroup <|-- CommutativeSemigroup  
    class CommutativeMonoid~A~
    Monoid <|-- CommutativeMonoid
    CommutativeSemigroup <|-- CommutativeMonoid
    class Semiring~A~
    CommutativeMonoid <|-- Semiring
    class MultiplicativeSemigroup~A~{
        +times(x: A, y: A) A
    }
    MultiplicativeSemigroup <|-- Semiring
    Semigroup .. MultiplicativeSemigroup
    class CommutativeSemiring~A~
    Semiring <|-- CommutativeSemiring

Реализация в библиотеках


Ссылки: