| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
Data.Dioid.Property
Synopsis
- ordered_preordered :: Dioid r => r -> r -> Bool
- ordered_monotone_zero :: (Monoid r, Dioid r) => r -> Bool
- ordered_monotone_addition :: Dioid r => r -> r -> r -> Bool
- ordered_positive_addition :: (Prd r, Monoid r) => r -> r -> Bool
- ordered_monotone_multiplication :: Dioid r => r -> r -> r -> Bool
- ordered_annihilative_sunit :: (Monoid r, Dioid r) => r -> Bool
- ordered_idempotent_addition :: (Prd r, Monoid r) => r -> r -> Bool
- ordered_positive_multiplication :: (Monoid r, Dioid r) => r -> r -> Bool
- absorbative_addition :: (Eq r, Dioid r) => r -> r -> Bool
- absorbative_addition' :: (Eq r, Dioid r) => r -> r -> Bool
- idempotent_addition :: (Eq r, Monoid r, Dioid r) => r -> Bool
- absorbative_multiplication :: (Eq r, Dioid r) => r -> r -> Bool
- absorbative_multiplication' :: (Eq r, Dioid r) => r -> r -> Bool
- annihilative_addition :: (Eq r, Monoid r, Dioid r) => r -> Bool
- annihilative_addition' :: (Eq r, Monoid r, Dioid r) => r -> Bool
- codistributive :: (Eq r, Dioid r) => r -> r -> r -> Bool
Properties of dioids
ordered_preordered :: Dioid r => r -> r -> Bool Source #
ordered_monotone_zero :: (Monoid r, Dioid r) => r -> Bool Source #
mempty is a minimal or least element of r.
This is a required property.
ordered_monotone_addition :: Dioid r => r -> r -> r -> Bool Source #
( forall a, b, c: b leq c Rightarrow b + a leq c + a
In an ordered semiring this follows directly from the definition of <~.
Compare cancellative_addition.
This is a required property.
ordered_positive_addition :: (Prd r, Monoid r) => r -> r -> Bool Source #
\( \forall a, b: a + b = 0 \Rightarrow a = 0 \wedge b = 0 \)
This is a required property.
ordered_monotone_multiplication :: Dioid r => r -> r -> r -> Bool Source #
( forall a, b, c: b leq c Rightarrow b * a leq c * a
In an ordered semiring this follows directly from distributive and the definition of <~.
Compare cancellative_multiplication.
This is a required property.
ordered_annihilative_sunit :: (Monoid r, Dioid r) => r -> Bool Source #
<~ is consistent with annihilativity.
This means that a dioid with an annihilative multiplicative sunit must satisfy:
(one<~) ≡ (one==)
ordered_idempotent_addition :: (Prd r, Monoid r) => r -> r -> Bool Source #
( forall a, b: a leq b Rightarrow a + b = b
ordered_positive_multiplication :: (Monoid r, Dioid r) => r -> r -> Bool Source #
\( \forall a, b: a * b = 0 \Rightarrow a = 0 \vee b = 0 \)
Properties of absorbative dioids
absorbative_addition :: (Eq r, Dioid r) => r -> r -> Bool Source #
\( \forall a, b \in R: a * b + b = b \)
Right-additive absorbativity is a generalized form of idempotency:
absorbative_additionsunita ~~ a <> a ~~ a
absorbative_addition' :: (Eq r, Dioid r) => r -> r -> Bool Source #
\( \forall a, b \in R: b + b * a = b \)
Left-additive absorbativity is a generalized form of idempotency:
absorbative_additionsunita ~~ a <> a ~~ a
absorbative_multiplication :: (Eq r, Dioid r) => r -> r -> Bool Source #
\( \forall a, b \in R: (a + b) * b = b \)
Right-mulitplicative absorbativity is a generalized form of idempotency:
absorbative_multiplicationmemptya ~~ a><a ~~ a
absorbative_multiplication' :: (Eq r, Dioid r) => r -> r -> Bool Source #
\( \forall a, b \in R: b * (b + a) = b \)
Left-mulitplicative absorbativity is a generalized form of idempotency:
absorbative_multiplication'memptya ~~ a><a ~~ a
Properties of annihilative dioids
annihilative_addition' :: (Eq r, Monoid r, Dioid r) => r -> Bool Source #
codistributive :: (Eq r, Dioid r) => r -> r -> r -> Bool Source #
\( \forall a, b, c \in R: c + (a * b) \equiv (c + a) * (c + b) \)
A right-codistributive semiring has a right-annihilative muliplicative sunit:
codistributivesunitamempty~~sunit~~sunit<>a
idempotent mulitiplication:
codistributivememptymemptya ~~ a ~~ a><a
and idempotent addition:
codistributiveamemptya ~~ a ~~ a<>a
Furthermore if R is commutative then it is a right-distributive lattice.