Okay: I've told you what a Galois connection is. But now it's time to explain why they matter. This will take much longer - and be much more fun.
Galois connections do something really cool: they tell you _the best possible way to recover data that can't be recovered_.
More precisely, they tell you _the best approximation to reversing a computation that can't be reversed._
Someone hands you the output of some computation, and asks you what the input was. Sometimes there's a unique right answer. But sometimes there's more than one answer, or none! That's when your job gets hard. In fact, impossible! But don't let that stop you.
Suppose we have a function between sets, \\(f : A \to B\\) . We say a function \\(g: B \to A \\) is the **inverse** of \\(f\\) if
\[ g(f(a)) = a \textrm{ for all } a \in A \quad \textrm{ and } \quad f(g(b)) = b \textrm{ for all } b \in B \]
Another equivalent way to say this is that
\[ f(a) = b \textrm{ if and only if } a = g(b) \]
for all \\(a \in A\\) and \\(b \in B\\).
So, the idea is that \\(g\\) undoes \\(f\\). For example, if \\(A = B = \mathbb{R}\\) is the set of real numbers, and \\(f\\) doubles every number, then \\(f\\) has an inverse \\(g\\), which halves every number.
But what if \\(A = B = \mathbb{N}\\) is the set of _natural_ numbers, and \\(f\\) doubles every natural number. This function has no inverse!
So, if I say "\\(2a = 4\\); tell me \\(a\\)" you can say \\(a = 2\\). But if I say "\\(2a = 3\\); tell me \\(a\\)" you're stuck.
But you can still try to give me a "best approximation" to the nonexistent natural number \\(a\\) with \\(2 a = 3\\).
"Best" in what sense? We could look for the number \\(a\\) that makes \\(2a\\) as close as possible to 3. There are two equally good options: \\(a = 1\\) and \\(a = 2\\). Here we are using the usual distance function, or [metric](https://en.wikipedia.org/wiki/Metric_(mathematics)), on \\(\mathbb{N}\\), which says that the distance between \\(x\\) and \\(y\\) is \\(|x-y|\\).
But we're not talking about distance functions in this class now! We're talking about _preorders_. Can we define a "best approximation" using just the relation \\(\le\\) on \\(\mathbb{N}\\)?
Yes! But we can do it in two ways!
**Best approximation from below.** Find the largest possible \\(a \in \mathbb{N}\\) such that \\(2a \le 3\\). Answer: \\(a = 1\\).
**Best approximation from above.** Find the smallest possible \\(a \in \mathbb{N}\\) such that \\(3 \le 2a\\). Answer: \\(a = 2\\).
Okay, now work this out more generally:
**Puzzle 14.** Find the function \\(g : \mathbb{N} \to \mathbb{N}\\) such that \\(g(b) \\) is the largest possible natural number \\(a\\) with \\(2a \le b\\).
**Puzzle 15.** Find the function \\(g : \mathbb{N} \to \mathbb{N}\\) such that \\(g(b)\\) is the smallest possible natural number \\(a\\) with \\(b \le 2a\\).
Now think about [Lecture 4](https://forum.azimuthproject.org/discussion/1828/lecture-4-chapter-1-galois-connections) and the puzzles there! I'll copy them here with notation that better matches what I'm using now:
**Puzzle 12.** Find a right adjoint for the function \\(f: \mathbb{N} \to \mathbb{N}\\) that doubles natural numbers: that is, a function \\(g : \mathbb{N} \to \mathbb{N}\\) with
\[ f(a) \le b \textrm{ if and only if } a \le g(b) \]
for all \\(a,b \in \mathbb{N}\\).
**Puzzle 13.** Find a left adjoint for the same function \\(f\\): that is, a function \\(g : \mathbb{N} \to \mathbb{N}\\) with
\[ g(b) \le a \textrm{ if and only if } b \le f(a) \]
Next:
**Puzzle 16.** What's going on here? What's the pattern you see, and why is it working this way?
**[To read other lectures go here.](http://www.azimuthproject.org/azimuth/show/Applied+Category+Theory#Course)**