Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Synopsis
- consistent :: Prd r => r -> r -> Bool
- symmetric :: Prd r => r -> r -> Bool
- reflexive_eq :: Prd r => r -> Bool
- transitive_eq :: Prd r => r -> r -> r -> Bool
- antisymmetric :: Prd r => r -> r -> Bool
- reflexive_le :: Prd r => r -> Bool
- transitive_le :: Prd r => r -> r -> r -> Bool
- connex :: Prd r => r -> r -> Bool
- asymmetric :: Eq r => Prd r => r -> r -> Bool
- transitive_lt :: Eq r => Prd r => r -> r -> r -> Bool
- irreflexive_lt :: Eq r => Prd r => r -> Bool
- semiconnex :: Eq r => Prd r => r -> r -> Bool
- trichotomous :: Eq r => Prd r => r -> r -> Bool
- chain_22 :: Eq r => Prd r => r -> r -> r -> r -> Bool
- chain_31 :: Eq r => Prd r => r -> r -> r -> r -> Bool
Typeclass consistency
consistent :: Prd r => r -> r -> Bool Source #
Check that Prd
methods are internally consistent.
This is a required property.
Equivalence relations
symmetric :: Prd r => r -> r -> Bool Source #
\( \forall a, b: (a = b) \Leftrightarrow (b = a) \)
=~
is a symmetric relation.
This is a required property.
reflexive_eq :: Prd r => r -> Bool Source #
transitive_eq :: Prd r => r -> r -> r -> Bool Source #
\( \forall a, b, c: ((a = b) \wedge (b = c)) \Rightarrow (a = c) \)
=~
is a transitive relation.
This is a required property.
Partial orders
Non-strict partial orders
antisymmetric :: Prd r => r -> r -> Bool Source #
\( \forall a, b: (a \leq b) \wedge (b \leq a) \Rightarrow a = b \)
<=
is an antisymmetric relation.
This is a required property.
reflexive_le :: Prd r => r -> Bool Source #
transitive_le :: Prd r => r -> r -> r -> Bool Source #
\( \forall a, b, c: ((a \leq b) \wedge (b \leq c)) \Rightarrow (a \leq c) \)
<=
is an transitive relation.
This is a required property.
Connex non-strict partial orders
connex :: Prd r => r -> r -> Bool Source #
\( \forall a, b: ((a \leq b) \vee (b \leq a)) \)
<=
is a connex relation.
Strict partial orders
asymmetric :: Eq r => Prd r => r -> r -> Bool Source #
\( \forall a, b: (a \lt b) \Rightarrow \neg (b \lt a) \)
lt
is an asymmetric relation.
This is a required property.
transitive_lt :: Eq r => Prd r => r -> r -> r -> Bool Source #
\( \forall a, b, c: ((a \lt b) \wedge (b \lt c)) \Rightarrow (a \lt c) \)
lt
is a transitive relation.
This is a required property.
irreflexive_lt :: Eq r => Prd r => r -> Bool Source #
\( \forall a: \neg (a \lt a) \)
lt
is an irreflexive relation.
This is a required property.
Semiconnex strict partial orders
semiconnex :: Eq r => Prd r => r -> r -> Bool Source #
\( \forall a, b: \neg (a = b) \Rightarrow ((a \lt b) \vee (b \lt a)) \)
lt
is a semiconnex relation.
trichotomous :: Eq r => Prd r => r -> r -> Bool Source #
\( \forall a, b, c: ((a \lt b) \vee (a = b) \vee (b \lt a)) \wedge \neg ((a \lt b) \wedge (a = b) \wedge (b \lt a)) \)
In other words, exactly one of \(a \lt b\), \(a = b\), or \(b \lt a\) holds.
If lt
is a trichotomous relation then the set is totally ordered.