How Connected is the Graph of Spinoza’s *Ethics*?

R. F. Tredwell

In an earlier paper, I stated without proof that *Ethics*
is connected except for its unused assumptions. I noted that the proof was
“tedious,” and since the purpose of that paper was to demonstrate some
interpretive tools, the proof was not really apposite. Nevertheless, it may
not be entirely obvious how to prove connectedness, so I append this outline of
a proof.

Here in Maine, we are, perhaps, the world’s most opinionated
experts on questions of connectedness. Due to an unfortunate vinyl record
called “Bert and I”, it is widely believed, here, that you cannot drive from
Kennebunk to Millinocket, despite the fact that J. L. Condon actually did so in
1948. However, while you can drive from Minturn to Atlantic and you can drive
from Pretty Marsh to Millinocket, you cannot drive from Minturn to
Millinocket—or to Pretty Marsh or Kennebunk, for all of that. And you can’t
drive to Dark Harbor, Frenchboro or Islesford from *any* of the above—including
Kennebunk! Maine’s highway system does not form a connected graph.

A graph is connected provided that there is a path between
any pair of nodes; in the case of a directed graph, a “path” for this purpose
can be with- or against the arrows. We already know that *Ethics* is not
connected, since it contains a number of statements that are assumed but not
used to prove anything else. The unused assumptions have an unusual property.
If we think of an “assumption” as a statement with in-degree = 0 and a “leaf”
as a statement with out-degree = 0, then an unused assumption is both an
assumption *and* a leaf.

The *Ethics* might fail of connection even without its
unused assumptions. It might contain two or more regions, each of which was
internally connected, but which were not connected to one another. Let’s call
such a region an “island”. Because *Ethics* is finite, directed and
acyclic, any island must contain at least one assumption and at least one
leaf. (Notice that an unused assumption is a sort of degenerate island: it
contains an assumption and a leaf—it just happens that the assumption and the
leaf are the same statement!) Moreover, in a finite acyclic directed graph,
any statement (other than an assumption or a leaf) must have at least one
assumption among its ancestors and at least one leaf among its descendents.

Investigating connectedness, then, amounts to counting the
number of islands: if the graph is connected, it has only one island. We *could*
investigate this by somehow examining each of the 158,000 statement pairs, but
there is a more tractable solution. Relying on our earlier observation, that
every proved statement is on a path from an assumption to a leaf, we see that
if all *Ethics’* leaves and assumptions are on the same island, then the
rest of the statements are on that island as well. There are 65 assumptions
(leaving out the unused ones) and 103 leaves. So basically, we have to examine
only 6,695 pairs.

Here is how we proceed.

Step 1: from the *Ethics*’ transitive closure, we select
just the edges having an assumption as parent and a leaf as child. We add
these to a new graph’s adjacency table (called the ‘UTC’—for “Undirected
Transitive Closure”). The new graph’s table of nodes—its domain—is just *Ethics’*
assumptions plus its leaves.

Step 2: we add the reciprocal of each of these rows to the
UTC. That is, if <x,y> is in the UTC, we add <y,x>. The reason is
that in the underlying *directed* graph, there is a path from *x* to *y*,
but no path from *y* to *x*. In our *undirected* graph, a path
runs both ways.

Step 3: we complete the transitive closure of the UTC in the usual way. That is, whenever <x,y> and <y,z> are in the UTC, we add <x,z> if it is not there already. We iterate this step until the next iteration adds no new rows. (It is fairly easy to show that whenever <x,z> is added, <z,x> is added as well—so that the symmetry of the UTC is preserved as the transitive closure is completed.)

Now if we examine the UTC, we can see that it is an
equivalence relation: it is symmetric because of Step 2; it is transitive
because of Step 3, and it is reflexive because it is symmetric and transitive.
An equivalence relation generates a partition of its domain: that is, the UTC
divides its domain (the set of *Ethics’ *assumptions plus leaves) into
mutually exclusive and jointly exhaustive sub-sets of equivalent nodes and each
such sub-set contains the nodes on the same island. Put shortly, the UTC is
the “sameness of island” relation among *Ethics’ *assumptions and leaves.

Step 4: Two nodes are “equivalent” if they share a row in
UTC. Color all the UTC’s nodes (*Ethics’* assumptions plus leaves) blue.
Then, choose any blue node and color it, and any node equivalent to it, red.
If any blue nodes remain, choose one and color it (and any node equivalent to
it) green. Proceed in this way, using a different color each time, until no
blue nodes remain. Each color will belong to a different island.

In fact, when these steps are performed on the UTC, all
nodes are colored red. So *Ethics* (minus the unused assumptions) is
connected…all its leaves and assumptions are on the same island, and therefore
all its statements are on the same island.