Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Galois connections have the same properties as adjunctions defined over other categories:
\( \forall x, y : f \dashv g \Rightarrow f (x) \leq b \Leftrightarrow x \leq g (y) \)
\( \forall x : f \dashv g \Rightarrow x \leq g \circ f (x) \)
\( \forall x : f \dashv g \Rightarrow f \circ g (x) \leq x \)
Synopsis
- adjoint :: (Preorder a, Preorder b) => (forall k. Conn k a b) -> a -> b -> Bool
- adjointL :: (Preorder a, Preorder b) => ConnL a b -> a -> b -> Bool
- adjointR :: (Preorder a, Preorder b) => ConnR a b -> a -> b -> Bool
- adjunction :: Rel r Bool -> Rel s Bool -> (s -> r) -> (r -> s) -> s -> r -> Bool
- closed :: (Preorder a, Preorder b) => (forall k. Conn k a b) -> a -> Bool
- closedL :: (Preorder a, Preorder b) => ConnL a b -> a -> Bool
- closedR :: (Preorder a, Preorder b) => ConnR a b -> a -> Bool
- kernel :: (Preorder a, Preorder b) => (forall k. Conn k a b) -> b -> Bool
- kernelL :: (Preorder a, Preorder b) => ConnL a b -> b -> Bool
- kernelR :: (Preorder a, Preorder b) => ConnR a b -> b -> Bool
- invertible :: Rel s b -> (s -> r) -> (r -> s) -> s -> b
- monotonic :: (Preorder a, Preorder b) => (forall k. Conn k a b) -> a -> a -> b -> b -> Bool
- monotonicR :: (Preorder a, Preorder b) => ConnR a b -> a -> a -> b -> b -> Bool
- monotonicL :: (Preorder a, Preorder b) => ConnL a b -> a -> a -> b -> b -> Bool
- monotone :: Rel r Bool -> Rel s Bool -> (r -> s) -> r -> r -> Bool
- idempotent :: (Preorder a, Preorder b) => (forall k. Conn k a b) -> a -> b -> Bool
- idempotentL :: (Preorder a, Preorder b) => ConnL a b -> a -> b -> Bool
- idempotentR :: (Preorder a, Preorder b) => ConnR a b -> a -> b -> Bool
- projective :: Rel s b -> (r -> s) -> (s -> s) -> r -> b
Adjointness
adjointL :: (Preorder a, Preorder b) => ConnL a b -> a -> b -> Bool Source #
\( \forall x, y : f \dashv g \Rightarrow f (x) \leq y \Leftrightarrow x \leq g (y) \)
A Galois connection is an adjunction of preorders. This is a required property.
adjunction :: Rel r Bool -> Rel s Bool -> (s -> r) -> (r -> s) -> s -> r -> Bool Source #
\( \forall a: f a \leq b \Leftrightarrow a \leq g b \)
A monotone Galois connection is defined by adjunction (<~) (<~)
,
while an antitone Galois connection is defined by adjunction (>~) (<~)
.
Closure
closedL :: (Preorder a, Preorder b) => ConnL a b -> a -> Bool Source #
\( \forall x : f \dashv g \Rightarrow x \leq g \circ f (x) \)
This is a required property.
kernelL :: (Preorder a, Preorder b) => ConnL a b -> b -> Bool Source #
\( \forall x : f \dashv g \Rightarrow x \leq g \circ f (x) \)
This is a required property.
invertible :: Rel s b -> (s -> r) -> (r -> s) -> s -> b Source #
\( \forall a: f (g a) \sim a \)
Monotonicity
monotonic :: (Preorder a, Preorder b) => (forall k. Conn k a b) -> a -> a -> b -> b -> Bool Source #
monotonicR :: (Preorder a, Preorder b) => ConnR a b -> a -> a -> b -> b -> Bool Source #
\( \forall x, y : x \leq y \Rightarrow f (x) \leq f (y) \)
This is a required property.
monotone :: Rel r Bool -> Rel s Bool -> (r -> s) -> r -> r -> Bool Source #
\( \forall a, b: a \leq b \Rightarrow f(a) \leq f(b) \)
Idempotence
idempotentL :: (Preorder a, Preorder b) => ConnL a b -> a -> b -> Bool Source #
\( \forall x: f \dashv g \Rightarrow counit \circ f (x) \sim f (x) \wedge unit \circ g (x) \sim g (x) \)
projective :: Rel s b -> (r -> s) -> (s -> s) -> r -> b Source #
\( \forall a: g \circ f (a) \sim f (a) \)