1.4. Galois connections#
from IPython.display import Image
See also Galois connection and Adjoint functors.
1.4.1. Definition and examples of Galois connections#
Notice
Example 1.97.#
The first paragraph of this example should replace the dummy variable
Or as:
See Floor and ceiling functions. By the definition of the ceiling function we have
Exercise 1.98.#
We need a function from
See Floor and ceiling functions. By the definition of the floor function we have
As expected the right adjoint is
Image('raster/2023-10-07T15-32-32.png', metadata={'description': "7S answer"})
Show code cell output
Exercise 1.99.#
All of these cases (for part 1.
) are true, so
As we work through the cases for 2.
we hit a failure:
Reveal answer
Remark 1.100.#
The right adjoint is red:
Exercise 1.101.#
We are interested in finding the function
To fix the corner cases, one could define
Looking forward, one could use Theorem 1.115 to define a left adjoint, although it would also be in
an unsatisfying set-builder notation. Because
The answer given in the Appendix seems wrong, with the logic failing at:
In the same way,
for all , so .
Reveal answer
1.4.2. Back to partitions#
The “?” in
Example 1.102#
Exercise 1.103.#
The author asks for 6 examples in the question, then only bothers to do 4 in the Appendix. Doing so many is probably not a great use of time; this answer includes 5 only because the same drawings can be reused in the next question.
Reveal answer
Exercise 1.105.#
Reveal answer
Exercise 1.106.#
The parenthetical remark in 3.
could be taken to mean you need to go back and fix your answer to
1.
if you can’t answer 3.
, because you apparently misunderstood something. More likely it simply
means you need to choose a partition in 1.
that allows for both a coarser partition in 2.
and a
non-coarser partition in 3.
.
Reveal answer
1.4.3. Basic theory of Galois connections#
Exercise 1.109.#
For 1.
take any
For 2.
suppose
Reveal answer
Exercise 1.110.#
Reveal answer
Proposition 1.111#
See Complete lattice § Morphisms of complete lattices for comments on the categories Sup (for supremum) and Inf (for infimum). We preserve both meets and joins in complete lattice morphisms, but only e.g. joins in Sup. See also Limit-preserving function (order theory).
If you’re trying to remember what kind of adjoint preserves which operation, you can match them up in alphabetical order. That is, join < meet and left < right. It’s also even the case that join < left < lower < meet < right < upper so you could remember that joins are preserved by left/lower adjoints and meets are preserved by right/upper adjoints. In a less passive voice (a design perspective): to preserve a join you need a left/lower adjoint and to preserve a meet you need a right/upper adjoint.
Exercise 1.112.#
Let
So take any other upper bound
Reveal answer
Exercise 1.114.#
The second row in the solution for this question is incorrect.
Reveal answer
Theorem 1.115.#
For the more general adjoint functor theorem, see Formal criteria for adjoint functors. In the case, preserving all joins generalizes to preserving all limits (see similar comments at the start of 1.3.2 in Section 1.3).
Example 1.117.#
The function
Nearly the exact same example is given Universal quantification § As adjoint, where
A related example is given in A concrete intuition for Galois Connection - MSE, where
These functors are also discussed in Image functors for sheaves, which has pointers to articles specific to each.
This example looks superficially related to the content above Example 1.102, but the relationship may only be syntatical.
Exercise 1.118.#
Selecting the function and subsets:
Reveal answer
1.4.4. Closure operators#
See also Closure operators on partially ordered sets. Why do we use the term “interior operator” for the other composite? Search for “closure” in Interior (topology). See also Interior algebra § Modal logic and Interior algebra § Definition.
Exercise 1.119: Adjunctions produce closures#
For 1.
, this is simply a restatement of the first part of
For 2.
, define
Define
Reveal answer
Define closure operator#
In short, a closure operator is a monotone map with two extra properties. In Closure operator we replace:
“monotone” with “increasing”
Requirement (a) with “extensive”
Requirement (b) with “idempotent”
Using the term “monotone” is in general a bit ambiguous/unhelpful, because it could be taken to mean that an increase in the input variable always leads to a decrease in the output variable (sometimes called “antitone”). If you’re not using “monotone” alongside “antitone” it may be clearer to use “monotonically increasing” or simply “increasing” in its place. Per Monotonic function § In order theory, the terms “order-preserving” and “order-reversing” are likely even clearer.
In Galois connection, the term “extensive” is replaced with “inflationary” which also seems like a good choice. This term lets us use “deflationary” with interior operators, and avoids a term that seems to have been invented for the sake of closure operators (see Extensive).
Example 1.121: Computation closures#
Applying a closure operator always gets you something bigger or equal; applying an interior operator always gets you something smaller or equal. The closure of a set such as [0,1) is bigger, specifically [0,1] (adding one point). The interior of the same set is smaller, specifically (0,1) (losing one point).
If you’re more familiar with the language of “reducing” expressions in computation, it could be a struggle to remember the definition of a closure if you associate it with reductions. See Abstract rewriting system for a discussion of how this word is entrenched in the language of these systems. It may be better to see a “reduction” as a rewrite to something better (bigger is better) but better because it’s smaller (e.g. compressed). A refactor changes code to something “better” via a rewrite that doesn’t change behavior, as well.
A transitive closure always produces something clearly “bigger” as well (filling in holes in the binary relation, see Exercise 1.125 below). The convex hull (pictured on Closure operator) is also clearly “bigger” than its starting point.
Example 1.122: Closures produce adjunctions#
For the term “inclusion” used in this example, see Inclusion map. See also Fixed point (mathematics).
See Upper set for the definition of an upper closure; let’s compute this closure on a simple preorder:
Example 1.123: Logic closures#
See also Modal operator, although the article Modal logic provides a much more complete introduction to these two operators. See Geometric Shapes (Unicode block) for “white medium square” (□) and “lozenge” (◊).
For more on propositional logic, see forall x: Calgary. An Introduction to Formal Logic.
Which function is left and right?#
If you suspect or feel confident you have two functions that are adjoints, how do you determine which is left/right? In the examples in Section 1.4.1 above, the author establishes a convention that the left adjoint is a function from the top to bottom of a diagram and the right adjoint is a function from bottom to top. This means the label for the left adjoint (colored blue in most examples) is on an arrow going from top to bottom.
This doesn’t help if you don’t know which set to put on the top and bottom. Consider the following example, where we’re stripping the blue/red clue:
Recognize that the scales on your diagram don’t matter. You should be able to stretch/scale or shift to the left/right the scales on top and bottom.
Form what will be either a closure or interior operator by composing the two functions; in this case we’ll compose them as
If either function is not increasing or decreasing (both can be non-strictly), or what they do is not opposite, then you don’t have an adjoint pair. Choose whichever function is not an identity, and pattern match it against the definitions of a closure/interior operator in this section to determine which is left/right.
In the example above,
1.4.5. Level shifting#
See Category of preordered sets.
Exercise 1.124: Binary relation preorders#
Reveal answer
Exercise 1.125: Preorder preorder#
For 1.
define the preorder
Then we have
For 2.
take the binary relations:
For 3.
see Example 1.22 above; the authors are implying
For now we’ll only show that
The preorder
Clearly 1.
above). For 4.
we have:
The preorder
Clearly
Reveal answer