It looks like you're new here. If you want to get involved, click one of these buttons!

- All Categories 1.9K
- Applied Category Theory Course 42
- Applied Category Theory Exercises 62
- Azimuth Code Project 107
- News and Information 550
- Chat 406
- Azimuth Blog 148
- Azimuth Forum 29
- Azimuth Project 190
- - Strategy 109
- - Conventions and Policies 21
- - Questions 43
- Azimuth Wiki 706
- - Latest Changes 698
- - - Action 14
- - - Biodiversity 8
- - - Books 1
- - - Carbon 9
- - - Computational methods 38
- - - Climate 53
- - - Earth science 23
- - - Ecology 43
- - - Energy 29
- - - Experiments 30
- - - Geoengineering 0
- - - Mathematical methods 69
- - - Meta 9
- - - Methodology 16
- - - Natural resources 7
- - - Oceans 4
- - - Organizations 34
- - - People 6
- - - Publishing 4
- - - Reports 3
- - - Software 20
- - - Statistical methods 2
- - - Sustainability 4
- - - Things to do 2
- - - Visualisation 1
- General 37

Options

Last time we studied meets and joins of partitions. We observed an interesting difference between the two.

Suppose we have partitions \(P\) and \(Q\) of a set \(X\). To figure out if two elements \(x , x' \in X\) are in the same part of the meet \(P \wedge Q\), it's enough to know if they're the same part of \(P\) and the same part of \(Q\), since

$$ x \sim_{P \wedge Q} x' \textrm{ if and only if } x \sim_P x' \textrm{ and } x \sim_Q x'. $$ Here \(x \sim_P x'\) means that \(x\) and \(x'\) are in the same part of \(P\), and so on.

However, this does *not* work for the join!

$$ \textbf{THIS IS FALSE: } \; x \sim_{P \vee Q} x' \textrm{ if and only if } x \sim_P x' \textrm{ or } x \sim_Q x' . $$ To understand this better, the key is to think about the "inclusion"

$$ i : \{x,x'\} \to X , $$ that is, the function sending \(x\) and \(x'\) to themselves thought of as elements of \(X\). We'll soon see that any partition \(P\) of \(X\) can be "pulled back" to a partition \(i^{\ast}(P)\) on the little set \( \{x,x'\} \). And we'll see that our observation can be restated as follows:

$$ i^{\ast}(P \wedge Q) = i^{\ast}(P) \wedge i^{\ast}(Q) $$ but

$$ \textbf{THIS IS FALSE: } \; i^{\ast}(P \vee Q) = i^{\ast}(P) \vee i^{\ast}(Q) . $$ This is just a slicker way of saying the exact same thing. But it will turn out to be more illuminating!

So how do we "pull back" a partition?

Suppose we have any function \(f : X \to Y\). Given any partition \(P\) of \(Y\), we can "pull it back" along \(f\) and get a partition of \(X\) which we call \(f^{\ast}(P)\). Here's an example from the book:

For any part \(S\) of \(P\) we can form the set of all elements of \(X\) that map to \(S\). This set is just the **preimage** of \(S\) under \(f\), which we met in Lecture 9. We called it

$$ f^{\ast}(S) = \{x \in X: \; f(x) \in S \}. $$ As long as this set is nonempty, we include it our partition \(f^{\ast}(P)\).

So beware: we are now using the symbol \(f^{\ast}\) in two ways: for the preimage of a subset and for the pullback of a partition. But these two ways fit together quite nicely, so it'll be okay.

Summarizing:

**Definition.** Given a function \(f : X \to Y\) and a partition \(P\) of \(Y\), define the **pullback** of \(P\) along \(f\) to be this partition of \(X\):

$$ f^{\ast}(P) = \{ f^{\ast}(S) : \; S \in P \text{ and } f^{\ast}(S) \ne \emptyset \} . $$
**Puzzle 40.** Show that \( f^{\ast}(P) \) really is a partition using the fact that \(P\) is. It's fun to prove this using properties of the preimage map \( f^{\ast} : P(Y) \to P(X) \).

It's easy to tell if two elements of \(X\) are in the same part of \(f^{\ast}(P)\): just map them to \(Y\) and see if they land in the same part of \(P\). In other words,

$$ x\sim_{f^{\ast}(P)} x' \textrm{ if and only if } f(x) \sim_P f(x') $$ Now for the main point:

**Proposition.** Given a function \(f : X \to Y\) and partitions \(P\) and \(Q\) of \(Y\), we always have

$$ f^{\ast}(P \wedge Q) = f^{\ast}(P) \wedge f^{\ast}(Q) $$ but sometimes we have

$$ f^{\ast}(P \vee Q) \ne f^{\ast}(P) \vee f^{\ast}(Q) . $$
**Proof.** To prove that

$$ f^{\ast}(P \wedge Q) = f^{\ast}(P) \wedge f^{\ast}(Q) $$ it's enough to prove that they give the same equivalence relation on \(X\). That is, it's enough to show

$$ x \sim_{f^{\ast}(P \wedge Q)} x' \textrm{ if and only if } x \sim_{ f^{\ast}(P) \wedge f^{\ast}(Q) } x'. $$ This looks scary but we just follow our nose. First we rewrite the right-hand side using our observation about the meet of partitions:

$$ x \sim_{f^{\ast}(P \wedge Q)} x' \textrm{ if and only if } x \sim_{ f^{\ast}(P)} x' \textrm{ and } x\sim_{f^{\ast}(Q) } x'. $$ Then we rewrite everything using what we just saw about the pullback:

$$ f(x) \sim_{P \wedge Q} f(x') \textrm{ if and only if } f(x) \sim_P f(x') \textrm{ and } f(x) \sim_Q f(x'). $$ And this is true, by our observation about the meet of partitions! So, we're really just stating that observation in a new language.

To prove that sometimes

$$ f^{\ast}(P \vee Q) \ne f^{\ast}(P) \vee f^{\ast}(Q) , $$ we just need one example. So, take \(P\) and \(Q\) to be these two partitions:

They are partitions of the set

$$ Y = \{11, 12, 13, 21, 22, 23 \}. $$ Take \(X = \{11,22\} \) and let \(i : X \to Y \) be the inclusion of \(X\) into \(Y\), meaning that

$$ i(11) = 11, \quad i(22) = 22 . $$ Then compute everything! \(11\) and \(22\) are in different parts of \(i^{\ast}(P)\):

$$ i^{\ast}(P) = \{ \{11\}, \{22\} \} . $$ They're also in different parts of \(i^{\ast}(Q)\):

$$ i^{\ast}(Q) = \{ \{11\}, \{22\} \} .$$ Thus, we have

$$ i^{\ast}(P) \vee i^{\ast}(Q) = \{ \{11\}, \{22\} \} . $$ On the other hand, the join \(P \vee Q \) has just two parts:

$$ P \vee Q = \{\{11,12,13,22,23\},\{21\}\} . $$ If you don't see why, figure out the finest partition that's coarser than \(P\) and \(Q\) - that's \(P \vee Q \). Since \(11\) and \(22\) are in the same parts here, the pullback \(f^{\ast}(P) \vee f^{\ast}(Q) \) has just one part:

$$ f^{\ast}(P \vee Q) = \{ \{11, 22 \} \} . $$ So, we have

$$ f^{\ast}(P \vee Q) \ne f^{\ast}(P) \vee f^{\ast}(Q) $$ as desired. \( \quad \blacksquare \)

Now for the real punchline. The example we just saw was the same as our example of a "generative effect" in Lecture 12. So, we have a new way of thinking about generative effects: *the pullback of partitions preserves meets, but it may not preserve joins!*

This is an interesting feature of the logic of partitions. Next time we'll understand it more deeply by pondering left and right adjoints. But to warm up, you should compare how meets and joins work in the logic of subsets:

**Puzzle 41.** Let \(f : X \to Y \) and let \(f^{\ast} : PY \to PX \) be the function sending any subset of \(Y\) to its preimage in \(X\). Given \(S,T \in P(Y) \), is it always true that

$$ f^{\ast}(S \wedge T) = f^{\ast}(S) \wedge f^{\ast}(T ) ? $$ Is it always true that

$$ f^{\ast}(S \vee T) = f^{\ast}(S) \vee f^{\ast}(T ) ? $$
**To read other lectures go here.**

## Comments

Something is wrong with the math typesetting at the moment. Starting right after: "First we rewrite the right-hand side using our observation about the meet of partitions:"

`Something is wrong with the math typesetting at the moment. Starting right after: "First we rewrite the right-hand side using our observation about the meet of partitions:"`

Yeah, there's no way for me to see if the typesetting is correct without publishing the post, so my lectures will always look screwed up for the first 15 minutes or so, while I'm desperately debugging them.

`Yeah, there's no way for me to see if the typesetting is correct without publishing the post, so my lectures will always look screwed up for the first 15 minutes or so, while I'm desperately debugging them.`

If I understand, given a function \( f : X \rightarrow Y \) we can find both pullbacks/preimages of both subsets \( f_P^* : PY \rightarrow PX \) and partitions/equivalence relations \( f_{\mathcal{E}}^* : \mathcal{E}(Y) \rightarrow \mathcal{E}(X) \)?

`If I understand, given a function \\( f : X \rightarrow Y \\) we can find both pullbacks/preimages of both subsets \\( f_P^* : PY \rightarrow PX \\) and partitions/equivalence relations \\( f_{\mathcal{E}}^* : \mathcal{E}(Y) \rightarrow \mathcal{E}(X) \\)?`

Keith: I fixed your comment slightly and now it's 100% correct.

(You'd called \(f\) a "monotone map", but \(X\) and \(Y\) are just sets here, so "monotone" wouldn't mean anything. \(f\) is an arbitrary function.)

We are using \(f^{\ast}\) to stand for both the preimage, which you're calling \(f_P^{\ast} \), and the pullback of partitions, which you're calling \( f^{*}_{\mathcal{E}} \). Your notation is unambiguous.

`Keith: I fixed your comment slightly and now it's 100% correct. (You'd called \\(f\\) a "monotone map", but \\(X\\) and \\(Y\\) are just sets here, so "monotone" wouldn't mean anything. \\(f\\) is an arbitrary function.) We are using \\(f^{\ast}\\) to stand for both the preimage, which you're calling \\(f_P^{\ast} \\), and the pullback of partitions, which you're calling \\( f^{*}_{\mathcal{E}} \\). Your notation is unambiguous.`

If we treat sets as discrete posets, ie \( ( P,\leq ) := ( S, = ) \), then do functions between sets not count as discrete monotone maps between discrete posets, or is there something wrong with my reasoning?

`If we treat sets as discrete posets, ie \\( ( P,\leq ) := ( S, = ) \\), then do functions between sets not count as discrete monotone maps between discrete posets, or is there something wrong with my reasoning?`

Keith: there's nothing wrong with your reasoning! So, now I understand what you mean and all is well.

However, it's not good to say "a monotone map \(f : X \to Y \)" here. For one thing, when you start a conversation by saying "a monotone map \(f : X \to Y \)," you are leaving it to us to guess what \(X\) and \(Y\) are. The two immediate guesses are "arbitrary preorders" or "arbitrary posets", since that's what monotone maps go between... but of course, other things in what you wrote pull us toward guessing that \(X\) and \(Y\) are sets, so we're left scratching our heads. Only a few very sneaky mathematicians would guess that you meant \(X\) and \(Y\) are sets being treated as discrete posets.

It's easier to understand "a function \(f : X \to Y\)", and even easier to understand "a function \(f\) from the set \(X\) to the set \(Y\)".

`Keith: there's nothing wrong with your reasoning! So, now I understand what you mean and all is well. However, it's not good to say "a monotone map \\(f : X \to Y \\)" here. For one thing, when you start a conversation by saying "a monotone map \\(f : X \to Y \\)," you are leaving it to us to guess what \\(X\\) and \\(Y\\) are. The two immediate guesses are "arbitrary preorders" or "arbitrary posets", since that's what monotone maps go between... but of course, other things in what you wrote pull us toward guessing that \\(X\\) and \\(Y\\) are sets, so we're left scratching our heads. Only a few very sneaky mathematicians would guess that you meant \\(X\\) and \\(Y\\) are sets being treated as discrete posets. It's easier to understand "a function \\(f : X \to Y\\)", and even easier to understand "a function \\(f\\) from the set \\(X\\) to the set \\(Y\\)".`

Hi John, there are a couple of typos in the proof:

"To prove that sometimes", the meet is used rather than the join.

The same error in the line above the QED.

`Hi John, there are a couple of typos in the proof: "To prove that sometimes", the meet is used rather than the join. The same error in the line above the QED.`

Joel - thanks, I'll fix those!

`Joel - thanks, I'll fix those!`

Hi John.

A couple of small typos:

$$ x \sim_{f^{\ast}(P \wedge Q)} x' \textrm{ if and only if } x \sim_{ f^{\ast}(P)} x' \textrm{ and } x_{f^{\ast}(Q) } x'. $$ should be:

$$ x \sim_{f^{\ast}(P \wedge Q)} x' \textrm{ if and only if } x \sim_{ f^{\ast}(P)} x' \textrm{ and } x \sim_{f^{\ast}(Q) } x'. $$ The next equation also has a small typo and should be:

$$ f(x) \sim_{P \wedge Q} f(x') \textrm{ if and only if } f(x) \sim_P f(x') \textrm{ and } f(x) \sim_Q f(x'). $$ Also I think the join \(P \vee Q \) has two parts:

$$ P \vee Q = \{\{11,12,13,22,23\},\{21\}\} . $$

`Hi John. A couple of small typos: $$ x \sim_{f^{\ast}(P \wedge Q)} x' \textrm{ if and only if } x \sim_{ f^{\ast}(P)} x' \textrm{ and } x_{f^{\ast}(Q) } x'. $$ should be: $$ x \sim_{f^{\ast}(P \wedge Q)} x' \textrm{ if and only if } x \sim_{ f^{\ast}(P)} x' \textrm{ and } x \sim_{f^{\ast}(Q) } x'. $$ The next equation also has a small typo and should be: $$ f(x) \sim_{P \wedge Q} f(x') \textrm{ if and only if } f(x) \sim_P f(x') \textrm{ and } f(x) \sim_Q f(x'). $$ Also I think the join \\(P \vee Q \\) has two parts: $$ P \vee Q = \\{\\{11,12,13,22,23\\},\\{21\\}\\} . $$`

Kyle - thanks very much! I'm glad

someoneis reading this stuff carefully! I think I fixed these typos and a couple more.`Kyle - thanks very much! I'm glad _someone_ is reading this stuff carefully! I think I fixed these typos and a couple more.`

John, I'm very happy to at least make some contribution (even if only very small) to this very nice initiative you've set underway! (By the way, it looks like an extra f( ) has crept in surrounding x' at the end of the first typo line I mentioned above)

`John, I'm very happy to at least make some contribution (even if only very small) to this very nice initiative you've set underway! (By the way, it looks like an extra f( ) has crept in surrounding x' at the end of the first typo line I mentioned above)`

Thanks for your patience, Kyle! Fixed!

`Thanks for your patience, Kyle! Fixed!`

John, your definition of f*(P) looks dubious if f is not surjective, because it may have empty parts. It happens to work in the example given...

`John, your definition of f*(P) looks dubious if f is not surjective, because it may have empty parts. It happens to work in the example given...`

@WilliamGodwin : the f in John's example is not surjective (nothing maps to 22), but that doesn't seem to be a real problem: f*(sets of elements of Y not "reached" from X via f) = empty set and we can simply disregard the empty set when we look at the induced partition on X.

`@WilliamGodwin : the f in John's example is not surjective (nothing maps to 22), but that doesn't seem to be a real problem: f*(sets of elements of Y not "reached" from X via f) = empty set and we can simply disregard the empty set when we look at the induced partition on X.`

Earlier I asked pullbacks of subsets in terms of a set of people a set of consequences, and some personal actions viewed as a function between sets, and we found out that the pullback of some subset of consequences produces the subset of people who could be responsible.

Would the same reasoning work here, expect that partition pullback takes a partition of consequences to the partition of people who could be responsible.

Also, thinking this out. The pullback of a singleton subset/partition would produce the people who were actually responsible for the singular outcome, ie if you're a murder investigator, this is the pullback you really trying to find.

Did I get this right?

`Earlier I asked pullbacks of subsets in terms of a set of people a set of consequences, and some personal actions viewed as a function between sets, and we found out that the pullback of some subset of consequences produces the subset of people who could be responsible. Would the same reasoning work here, expect that partition pullback takes a partition of consequences to the partition of people who could be responsible. Also, thinking this out. The pullback of a singleton subset/partition would produce the people who were actually responsible for the singular outcome, ie if you're a murder investigator, this is the pullback you really trying to find. Did I get this right?`

William wrote:

There are never empty parts in \(f^{\ast}(P)\), because the parts in \(f^{\ast}(P)\) are inverse images of parts in \(P\), which are nonempty, and the inverse image of a nonempty set is always nonempty.

`William wrote: > John, your definition of \\(f^{\ast}(P)\\) looks dubious if \\(f\\) is not surjective, because it may have empty parts. It happens to work in the example given... There are never empty parts in \\(f^{\ast}(P)\\), because the parts in \\(f^{\ast}(P)\\) are inverse images of parts in \\(P\\), which are nonempty, and the inverse image of a nonempty set is always nonempty.`

John - sorry, but I don't see that "the inverse image of a nonempty set is always nonempty." Am I missing something? The part \(S\) in \(Y\) may simply have nothing mapped onto it by \(f\) - then \(f^{\ast}(S)\) will be empty and \(f^{\ast}(P)\) will have an empty part. I know this is rather pedantic, because if you define the partition \(f^\ast(P)\) in terms of an equivalence relation, then empty parts make no difference. To be clear, if you change your example and map \(X_{14}\) to \(Y_{22}\), then \(f^{\ast}({Y_{13}})\) will be empty. I suppose I have been trained never to treat an empty set as "nothing"!

`John - sorry, but I don't see that "the inverse image of a nonempty set is always nonempty." Am I missing something? The part \\(S\\) in \\(Y\\) may simply have nothing mapped onto it by \\(f\\) - then \\(f^{\ast}(S)\\) will be empty and \\(f^{\ast}(P)\\) will have an empty part. I know this is rather pedantic, because if you define the partition \\(f^\ast(P)\\) in terms of an equivalence relation, then empty parts make no difference. To be clear, if you change your example and map \\(X_{14}\\) to \\(Y_{22}\\), then \\(f^{\ast}({Y_{13}})\\) will be empty. I suppose I have been trained never to treat an empty set as "nothing"!`

William - Sorry, I was being stupid. The inverse image of a nonempty set may indeed be empty - it's the

imageof a nonempty set that's always nonempty. This is obvious in retrospect but curious from a formal viewpoint because the inverse image is better-behaved in most ways: it preserves all meets and joins, while the image only preserves all joins, in general.So yes, we need to discard the "empty parts" when forming the pullback of a partition. I'll fix the lecture. The deep meaning of this fact remains obscure to me.

`William - Sorry, I was being stupid. The inverse image of a nonempty set may indeed be empty - it's the _image_ of a nonempty set that's always nonempty. This is obvious in retrospect but curious from a formal viewpoint because the inverse image is better-behaved in most ways: it preserves all meets and joins, while the image only preserves all joins, in general. So yes, we need to discard the "empty parts" when forming the pullback of a partition. I'll fix the lecture. The deep meaning of this fact remains obscure to me.`

Okay, I fixed the definition of the pullback of a partition. Since we have to exclude empty parts "by hand", the definition is quite a bit more ugly than I thought before. This ugliness probably causes various problems. But I don't see a way around it unless we generalize partitions to allow empty parts... or just work with equivalence relations.

`Okay, I fixed the definition of the pullback of a partition. Since we have to exclude empty parts "by hand", the definition is quite a bit more ugly than I thought before. This ugliness probably causes various problems. But I don't see a way around it unless we generalize partitions to allow empty parts... or just work with equivalence relations.`

Well, I guess the way around it is to define a partition of \(X\) to be an equivalence class of onto functions \(f: X \to Y\), as done in the book.

`Well, I guess the way around it is to define a partition of \\(X\\) to be an equivalence class of onto functions \\(f: X \to Y\\), as done in the book.`