📘 Antitone Galois connections

📘 Antitone Galois connections#

In this tutorial, we will explore the concept of antitone Galois connections using the galactic.algebras.connections.core module of the GALACTIC framework. An antitone Galois connection is a mathematical structure that establishes a relationship between two partially ordered sets through a pair of monotone functions (called polarities) that reverse the order:

  • A function \(\alpha: 2^X \mapsto 2^Y\) is antitone if for all \(A_1, A_2 \subseteq X\), \(A_1 \subseteq A_2\) implies \(\alpha(A_1) \supseteq \alpha(A_2)\).

  • A function \(\beta: 2^Y \mapsto 2^X\) is antitone if for all \(B_1, B_2 \subseteq Y\), \(B_1 \subseteq B_2\) implies \(\beta(B_1) \supseteq \beta(B_2)\).

In the GALACTIC framework, we can define antitone Galois connections using the GaloisConnection protocol. An example of an antitone Galois connection is provided below using the IntegerConnection class.

<galactic.algebras.connection.examples.numerical.core.IntegerConnection object at 0x7b9eed6f3ac0>

The antitone Galois connection consists of two sets of integers and two antitone functions, \(\alpha\) and \(\beta\). The function \(\alpha\) maps subsets of the first set to subsets of the second set, while \(\beta\) maps subsets of the second set to subsets of the first set.

We can use the antitone functions to compute the images of specific subsets:

display(connection.polarities)
α, β = connection.polarities
display(α([2, 3, 5]), β(α([2, 3, 5])))
(<galactic.algebras.connection.examples.numerical.core.MultiplePolarity object at 0x7b9eed7086e0>,
 <galactic.algebras.connection.examples.numerical.core.DivisorPolarity object at 0x7b9eed708650>)
[30, 60]
[2, 3, 5, 6]

The compositions \(\beta \circ \alpha\) and \(\alpha \circ \beta\) are closure operators on the respective power sets. We can compute the closures of specific subsets:

display(connection.closures)
φ, ψ = connection.closures
display(φ([2, 3, 5]), ψ([30]))
(compose(<galactic.algebras.connection.examples.numerical.core.DivisorPolarity object at 0x7b9eed708650>, <galactic.algebras.connection.examples.numerical.core.MultiplePolarity object at 0x7b9eed7086e0>),
 compose(<galactic.algebras.connection.examples.numerical.core.MultiplePolarity object at 0x7b9eed7086e0>, <galactic.algebras.connection.examples.numerical.core.DivisorPolarity object at 0x7b9eed708650>))
[2, 3, 5, 6]
[30, 60]