Tuesday, February 18, 2025

A formal shorthand for categorical logic

I wanted a short, symbolic way to express categorical propositions (as in Aristotelian syllogistic), and I came up with the following.

English Shorthand Conventional notation
All S is P \( \langle \forall, S, \in, P \rangle \) \( \forall x [ x \in S \rightarrow x \in P ] \)
All S is non-P \( \langle \forall, S, \in, \lnot{P} \rangle \) \( \forall x [ x \in S \rightarrow x \notin P ] \)
All S is not P \( \langle \forall, S, \notin, P \rangle \) \( \forall x [ x \in S \rightarrow x \notin P ] \)
All S is not non-P \( \langle \forall, S, \notin, \lnot{P} \rangle \) \( \forall x [ x \in S \rightarrow x \notin P^\complement ] \)
All non-S is P \( \langle \forall, \lnot{S}, \in, P \rangle \) \( \forall x [ x \notin S \rightarrow x \in P ] \)
All non-S is non-P \( \langle \forall, \lnot{S}, \in, \lnot{P} \rangle \) \( \forall x [ x \notin S \rightarrow x \notin P ] \)
All non-S is not P \( \langle \forall, \lnot{S}, \notin, P \rangle \) \( \forall x [ x \notin S \rightarrow x \notin P ] \)
All non-S is not non-P \( \langle \forall, \lnot{S}, \notin, \lnot{P} \rangle \) \( \forall x [ x \notin S \rightarrow x \notin P^\complement ] \)
Not all S is P \( \langle \not\forall, S, \in, P \rangle \) \( \lnot \forall x [ x \in S \rightarrow x \in P ] \)
Not all S is non-P \( \langle \not\forall, S, \in, \lnot{P} \rangle \) \( \lnot \forall x [ x \in S \rightarrow x \notin P ] \)
Not all S is not P \( \langle \not\forall, S, \notin, P \rangle \) \( \lnot \forall x [ x \in S \rightarrow x \notin P ] \)
Not all S is not non-P \( \langle \not\forall, S, \notin, \lnot{P} \rangle \) \( \lnot \forall x [ x \in S \rightarrow x \notin P^\complement ] \)
Not all non-S is P \( \langle \not\forall, \lnot{S}, \in, P \rangle \) \( \lnot \forall x [ x \notin S \rightarrow x \in P ] \)
Not all non-S is non-P \( \langle \not\forall, \lnot{S}, \in, \lnot{P} \rangle \) \( \lnot \forall x [ x \notin S \rightarrow x \notin P ] \)
Not all non-S is not P \( \langle \not\forall, \lnot{S}, \notin, P \rangle \) \( \lnot \forall x [ x \notin S \rightarrow x \notin P ] \)
Not all non-S is not non-P \( \langle \not\forall, \lnot{S}, \notin, \lnot{P} \rangle \) \( \lnot \forall x [ x \notin S \rightarrow x \notin P^\complement ] \)
Some S is P \( \langle \exists, S, \in, P \rangle \) \( \exists x [ x \in S \land x \in P ] \)
Some S is non-P \( \langle \exists, S, \in, \lnot{P} \rangle \) \( \exists x [ x \in S \land x \notin P ] \)
Some S is not P \( \langle \exists, S, \notin, P \rangle \) \( \exists x [ x \in S \land x \notin P ] \)
Some S is not non-P \( \langle \exists, S, \notin, \lnot{P} \rangle \) \( \exists x [ x \in S \land x \notin P^\complement ] \)
Some non-S is P \( \langle \exists, \lnot{S}, \in, P \rangle \) \( \exists x [ x \notin S \land x \in P ] \)
Some non-S is non-P \( \langle \exists, \lnot{S}, \in, \lnot{P} \rangle \) \( \exists x [ x \notin S \land x \notin P ] \)
Some non-S is not P \( \langle \exists, \lnot{S}, \notin, P \rangle \) \( \exists x [ x \notin S \land x \notin P ] \)
Some non-S is not non-P \( \langle \exists, \lnot{S}, \notin, \lnot{P} \rangle \) \( \exists x [ x \notin S \land x \notin P^\complement ] \)
No S is P \( \langle \nexists, S, \in, P \rangle \) \( \lnot \exists x [ x \in S \land x \in P ] \)
No S is non-P \( \langle \nexists, S, \in, \lnot{P} \rangle \) \( \lnot \exists x [ x \in S \land x \notin P ] \)
No S is not P \( \langle \nexists, S, \notin, P \rangle \) \( \lnot \exists x [ x \in S \land x \notin P ] \)
No S is not non-P \( \langle \nexists, S, \notin, \lnot{P} \rangle \) \( \lnot \exists x [ x \in S \land x \notin P^\complement ] \)
No non-S is P \( \langle \nexists, \lnot{S}, \in, P \rangle \) \( \lnot \exists x [ x \notin S \land x \in P ] \)
No non-S is non-P \( \langle \nexists, \lnot{S}, \in, \lnot{P} \rangle \) \( \lnot \exists x [ x \notin S \land x \notin P ] \)
No non-S is not P \( \langle \nexists, \lnot{S}, \notin, P \rangle \) \( \lnot \exists x [ x \notin S \land x \notin P ] \)
No non-S is not non-P \( \langle \nexists, \lnot{S}, \notin, \lnot{P} \rangle \) \( \lnot \exists x [ x \notin S \land x \notin P^\complement ] \)

It is possible to get shorter, as in \(A \subseteq B\) for “All A is B”, but this hides the similarities between propositions that have the same subject, predicate, quantity, or quality. As to Fred Sommers’s “Term Functor Logic”, I found it confusing to use. The best that can be done with conventional notation is to use restricted quantifiers, as in \( \exists x Sx\colon Px \) (“Some S is P”, with predicates instead of classes for extra brevity), but this repeats the useless “x” and doesn’t have an explicit copula, which is convenient for the parallel with how categorical logic is usually expressed in natural languages.