Scott - great! You've explained how my formula is really just matrix multiplication.

\\(\textbf{Bool}\\) has a 'multiplication' \\(\wedge\\) which distributes over the 'addition' \\(\vee\\), so it's a lot like a [ring](https://en.wikipedia.org/wiki/Ring_(mathematics)#Definition); the only thing missing is subtraction, so we call it a **rig**, which is a joking shorthand for 'ri**n**g without **n**egatives'.

We can multiply matrices whose entries lie in any rig, and if we do this for \\(\textbf{Bool}\\) we get exactly the formula for composing relations. Composing feasibility relations is a special case.

My one persnickety objection is that people don't call \\(\textbf{Bool}\\) 'Boolean algebra'. The phrase 'Boolean algebra' means a couple of things:

1. There's a _branch of math_ called [Boolean algebra](https://en.wikipedia.org/wiki/Boolean_algebra), which that Wikipedia article discusses: "Boolean algebra is the branch of algebra in which the values of the variables are the truth values true and false, usually denoted 1 and 0 respectively."

2. Mathematicians have defined a _special kind of rig_ called a [Boolean algebra](https://en.wikipedia.org/w/index.php?title=Boolean_algebra_(structure)&action=edit§ion=2), and \\(\textbf{Bool}\\) is _an example of_ a Boolean algebra, in fact the most important and fundamental example.

As a mathematician I hear my friends talk about 2 all the time but never 1.

I said a Boolean algebra is a special kind of rig; the link I gave lists the rules, but here's a high-powered description. It's a poset that has finite meets and joins, where \\(\vee\\) and \\(\wedge\\) distribute over each other, and such that every element \\(x\\) has an element \\(\neg x\\) such that \\(x \vee \neg x = \top\\) and \\(x \wedge \neg x = \bot\\).

The poset of subsets of any set \\(X\\), called the **power set** \\(P(X)\\), is the classic example of a Boolean algebra. If \\(X\\) has just one element we get \\(\mathbf{Bool}\\).