Galois Connection

Definition 1.90. A Galois connection between preorders P and Q is a pair of monotone maps f : P → Q and g : Q → P such that

f(p) ≤ q if and only if p ≤ g(q). (1.6)

We say that f is the left adjoint and g is the right adjoint of the Galois connection.

module definitions.chapter1.GaloisConnection where

open import definitions.chapter1.Preorder using (Preorder)
open import definitions.chapter1.MonotoneMap using (Monotonic)

-- Galois connection between preorders
record GaloisConnection (P Q : Preorder) : Set where
  open Preorder P renaming (Carrier to A; _≤_ to _≤₁_)
  open Preorder Q renaming (Carrier to B; _≤_ to _≤₂_)

  field
    f : A  B  -- Lower adjoint (left adjoint)
    g : B  A  -- Upper adjoint (right adjoint)

    -- Adjunction property: f(x) ≤₂ y  ⟺  x ≤₁ g(y)
    f-g :  {x y}  f x ≤₂ y  x ≤₁ g y
    g-f :  {x y}  x ≤₁ g y  f x ≤₂ y

  -- Derived properties
  f-monotonic : Monotonic _≤₁_ _≤₂_ f
  f-monotonic x≤y = g-f (Preorder.transitive P x≤y (f-g (Preorder.reflexive Q)))

  g-monotonic : Monotonic _≤₂_ _≤₁_ g
  g-monotonic y≤z = f-g (Preorder.transitive Q (g-f (Preorder.reflexive P)) y≤z)