nutcracker.util.algebraic

Type members

Classlikes

trait NonDecreasingMonoid[A] extends NonDecreasingSemigroup[A] with Monoid[A]

Monoid with a property that the result of the monoid operation is greater than or equal to any of the operands:

Monoid with a property that the result of the monoid operation is greater than or equal to any of the operands:

∀ a,b: a ≤ a⊕b b ≤ a⊕b

This property implies that zero is the minimum element:

∀a: 0 ≤ a

Companion:
object
Companion:
class

Semigroup with a property that the result of the semigroup operation is greater than or equal to any of the operands:

Semigroup with a property that the result of the semigroup operation is greater than or equal to any of the operands:

∀ a,b: a ≤ a⊕b b ≤ a⊕b

Companion:
object
trait NonIncreasingMonoid[A] extends NonIncreasingSemigroup[A] with Monoid[A]

Monoid with a property that the result of the monoid operation is less than or equal to any of the operands:

Monoid with a property that the result of the monoid operation is less than or equal to any of the operands:

∀ a,b: a⊕b ≤ a a⊕b ≤ b

This property implies that zero is the maximum element:

∀a: a ≤ 0

Companion:
object
Companion:
class

Semigroup with a property that the result of the semigroup operation is less than or equal to any of the operands:

Semigroup with a property that the result of the semigroup operation is less than or equal to any of the operands:

∀ a,b: a⊕b ≤ a a⊕b ≤ b

Companion:
object
trait OrderPreservingMonoid[A] extends OrderPreservingSemigroup[A] with Monoid[A]

Monoid whose operation preserves the Order:

Monoid whose operation preserves the Order:

∀ a,b,c: (a ≤ b) → (a⊕c ≤ b⊕c) (a ≤ b) → (c⊕a ≤ c⊕b)

See also:
Companion:
object

Semigroup whose operation preserves the Order:

Semigroup whose operation preserves the Order:

∀ a,b,c: (a ≤ b) → (a⊕c ≤ b⊕c) (a ≤ b) → (c⊕a ≤ c⊕b)

See also:
Companion:
object
trait SemigroupWithOrder[A] extends Semigroup[A] with Order[A]

An auxiliary trait that extends both Semigroup and Order, but does not add any new laws.

An auxiliary trait that extends both Semigroup and Order, but does not add any new laws.

Companion:
object
Companion:
class