Sunday, March 10, 2013

Elementary Boolean geometry and logic

Version of 2019-01-11

Draft Outline

The basic building block for Boolean geometry and logic
is the Boolean “object of truth values”: $\bftwo = \{\ladjbot,\radjtop\} = \{\text{false},\text{true}\}$.
We give this set the (linear) order $\ladjbot\lt\radjtop$, in accordance with the ex falso sequitur quodlibet principle of logic.

Boolean geometry then considers powers of $\bftwo$:
the Boolean point $\bftwo^0 \cong 1$ ,
the Boolean line $\bftwo^1 \cong \bftwo$ ,
the Boolean plane $\bftwo^2 \cong \bftwo\times\bftwo$ ,
the Boolean cube $\bftwo^3\cong \bftwo\times\bftwo\times\bftwo$ , and so on.

The next step is to consider Boolean (i.e., $\bftwo$-valued) functions (which we will call predicates) defined on these geometric objects.
Since (the Boolean object of truth values, $\bftwo$) is (the subobject classifier) for (the category of sets),
such predicates are in bijection with
the subsets of (the source (domain) of the predicate).


A comparison of the traditional way of presenting truth tables to
the geometrical way (the graph of the function from $\bftwo\times\bftwo$ to $\bftwo$ determined by the truth table):
Truth table for $\objA\wedge\objB$
$\objA$ $\objB$ $\objA\wedge\objB$
$\radjtop$ $\radjtop$ $\radjtop$
$\ladjbot$ $\radjtop$ $\ladjbot$
$\radjtop$ $\ladjbot$ $\ladjbot$
$\ladjbot$ $\ladjbot$ $\ladjbot$
The graph of the function $\wedge : \bftwo\times\bftwo \rightarrow \bftwo$
$\objB$
$\radjtop$ $\ladjbot$ $\Rule{64px}{2px}{0px}$ $\radjtop$
$\neg\objA$ $\Rule{2px}{32px}{32px}$ $\objA\wedge\objB$ $\Rule{2px}{32px}{32px}$ $\objA$
$\ladjbot$ $\ladjbot$ $\Rule{64px}{2px}{0px}$ $\ladjbot$
$\ladjbot$ $\neg\objB$ $\radjtop$

The main point of this document is the relation between the geometry of the Boolean square $\bftwo\times\bftwo$ and Boolean logic;
however for future use it is of great value to show exactly how the four edges of the Boolean square are in fact instances of the categorical notion of pullback.
To that end, the display below shows at the right the vertices and edges of the Boolean square, and labels them appropriately for their use in logic,
while to the left appear the pullback diagrams in the category $\Set$ which exhibit those edges as pullbacks.

Pullback diagrams in $\Set$ The Boolean square $\bftwo\times\bftwo$
$\begin{array}{} \boxed{\begin{array}{} \pi_1^{-1} \ladjbot\\ \ladjbot\times\bftwo\\ \end{array}} & \xrightarrow{\textstyle \ladjbot\times\bftwo} & \bftwo\times\bftwo & \xleftarrow{\textstyle \radjtop\times\bftwo} & \boxed{\begin{array}{} \pi_1^{-1} \radjtop\\ \radjtop\times\bftwo\\ \end{array}} \\ \Big\downarrow & \mkern-1.8em{\raise2ex\hbox{$\lrcorner$}} & \llap{\pi_1} \Big\downarrow & \mkern+1.8em{\raise2ex\hbox{$\llcorner$}} & \Big\downarrow \\ \bfone & \xrightarrow[\textstyle \ladjbot]{} & \bftwo & \xleftarrow[\textstyle \radjtop]{} & \bfone \\ \end{array}$ $\begin{array}{} \boxed{\begin{array}{} \pi_2^{-1} \radjtop\\ \bftwo\times\radjtop\\ \end{array}} & \xrightarrow{} & \bfone \\ \llap{\bftwo\times\radjtop} \Big\downarrow & \mkern-1.8em{\raise2ex\hbox{$\lrcorner$}} & \Big\downarrow \rlap{\radjtop} \\ \bftwo\times\bftwo & \xrightarrow[\textstyle \pi_2]{} & \bftwo \\ \llap{\bftwo\times\ladjbot} \Big\uparrow & \mkern-1.8em{\lower2ex\hbox{$\urcorner$}} & \Big\uparrow \rlap{\ladjbot} \\ \boxed{\begin{array}{} \pi_2^{-1} \ladjbot\\ \bftwo\times\ladjbot\\ \end{array}} & \xrightarrow{} & \bfone \\ \end{array}$
$\objB\in\{\ladjbot,\radjtop\}$
$\vary\in\{0,1\}$
$\Big\uparrow$ $\boxed{ \begin{array}{} \bftwo\times\radjtop\\ \objB\\ \end{array} }$
$1$ $\top$ $\boxed{ \begin{array}{c}\langle \ladjbot, \radjtop \rangle\\\objB - \objA\\\end{array} }$ $\Rule{64px}{2px}{0px}$ $\boxed{ \begin{array}{c}\langle \radjtop, \radjtop \rangle\\\objA\cap\objB\\\end{array} }$
$\boxed{ \begin{array}{} \ladjbot\times\bftwo\\ \neg\objA\\ \end{array} }$ $\Rule{2px}{32px}{32px}$ $\Rule{2px}{32px}{32px}$ $\boxed{ \begin{array}{} \radjtop\times\bftwo\\ \objA\\ \end{array} }$
$0$ $\bot$ $\boxed{ \begin{array}{c}\langle \ladjbot, \ladjbot \rangle\\ \neg\objA\wedge\neg\objB\\ \end{array} }$ $\Rule{64px}{2px}{0px}$ $\boxed{ \begin{array}{c}\langle \radjtop, \ladjbot \rangle\\\objA - \objB\\\end{array} }$ $\longrightarrow \objA\in\{\ladjbot,\radjtop\}, \varx\in\{0,1\}$
$\bot$ $\boxed{ \begin{array}{} \bftwo\times\ladjbot\\ \neg\objB\\ \end{array} }$ $\top$
$0$ $1$

${2\times2 \choose 4} = 1$ all
$\objB$
$\radjtop$ $\radjtop$ $\Rule{64px}{2px}{0px}$ $\radjtop$
$\neg\objA$ $\Rule{2px}{32px}{32px}$ $\begin{array}{c}\radjtop\\1\end{array}$ $\Rule{2px}{32px}{32px}$ $\objA$
$\ladjbot$ $\radjtop$ $\Rule{64px}{2px}{0px}$ $\radjtop$
$\ladjbot$ $\neg\objB$ $\radjtop$
${2\times2 \choose 3} = 4$ ells
angles
$\objB$
$\radjtop$ $\radjtop$ $\Rule{128px}{2px}{0px}$ $\radjtop$
$\neg\objA$ $\Rule{2px}{32px}{32px}$ $\begin{array}{c}\objA\vee\objB\\ \neg(\neg\objA\wedge\neg\objB)\\ (\varx+1)(\vary+1)+1\\ \varx\vary+\varx+\vary\end{array}$ $\Rule{2px}{32px}{32px}$ $\objA$
$\ladjbot$ $\ladjbot$ $\Rule{128px}{2px}{0px}$ $\radjtop$
$\ladjbot$ $\neg\objB$ $\radjtop$
$\objB$
$\radjtop$ $\radjtop$ $\Rule{96px}{2px}{0px}$ $\radjtop$
$\neg\objA$ $\Rule{2px}{32px}{32px}$ $\begin{array}{c}\objA\Rightarrow\objB\\\neg\objA\vee\objB\\\neg(\objA\wedge\neg\objB)\\\varx(\vary+1)+1\\\varx\vary+\varx+1\end{array}$ $\Rule{2px}{32px}{32px}$ $\objA$
$\ladjbot$ $\radjtop$ $\Rule{96px}{2px}{0px}$ $\ladjbot$
$\ladjbot$ $\neg\objB$ $\radjtop$
$\objB$
$\radjtop$ $\ladjbot$ $\Rule{96px}{2px}{0px}$ $\radjtop$
$\neg\objA$ $\Rule{2px}{32px}{32px}$ $\begin{array}{c}\objA\Leftarrow\objB\\\objA\vee\neg\objB\\\neg(\neg\objA\wedge\objB)\\(\varx+1)\vary+1\\\varx\vary+\vary+1\end{array}$ $\Rule{2px}{32px}{32px}$ $\objA$
$\ladjbot$ $\radjtop$ $\Rule{96px}{2px}{0px}$ $\radjtop$
$\ladjbot$ $\neg\objB$ $\radjtop$
$\objB$
$\radjtop$ $\radjtop$ $\Rule{128px}{2px}{0px}$ $\ladjbot$
$\neg\objA$ $\Rule{2px}{32px}{32px}$ $\begin{array}{c}\neg\objA\vee\neg\objB\\\neg(\objA\wedge\objB)\\\varx\vary+1\end{array}$ $\Rule{2px}{32px}{32px}$ $\objA$
$\ladjbot$ $\radjtop$ $\Rule{128px}{2px}{0px}$ $\radjtop$
$\ladjbot$ $\neg\objB$ $\radjtop$
${2\times2 \choose 2} = 6$ lines
$\objB$
$\radjtop$ $\ladjbot$ $\Rule{64px}{2px}{0px}$ $\radjtop$
$\neg\objA$ $\Rule{2px}{32px}{32px}$ $\begin{array}{c}\objA\\\varx\end{array}$ $\Rule{2px}{32px}{32px}$ $\objA$
$\ladjbot$ $\ladjbot$ $\Rule{64px}{2px}{0px}$ $\radjtop$
$\ladjbot$ $\neg\objB$ $\radjtop$
$\objB$
$\radjtop$ $\radjtop$ $\Rule{128px}{2px}{0px}$ $\radjtop$
$\neg\objA$ $\Rule{2px}{32px}{32px}$ $\begin{array}{c}\objB\\\vary\end{array}$ $\Rule{2px}{32px}{32px}$ $\objA$
$\ladjbot$ $\ladjbot$ $\Rule{128px}{2px}{0px}$ $\ladjbot$
$\ladjbot$ $\neg\objB$ $\radjtop$
$\objB$
$\radjtop$ $\ladjbot$ $\Rule{96px}{2px}{0px}$ $\radjtop$
$\neg\objA$ $\Rule{2px}{32px}{32px}$ $\begin{array}{c}\objA\Leftrightarrow\objB\\\varx+\vary+1\end{array}$ $\Rule{2px}{32px}{32px}$ $\objA$
$\ladjbot$ $\radjtop$ $\Rule{96px}{2px}{0px}$ $\ladjbot$
$\ladjbot$ $\neg\objB$ $\radjtop$
$\objB$
$\radjtop$ $\radjtop$ $\Rule{96px}{2px}{0px}$ $\ladjbot$
$\neg\objA$ $\Rule{2px}{32px}{32px}$ $\begin{array}{c}\objA \veebar\objB\\\varx+\vary\end{array}$ $\Rule{2px}{32px}{32px}$ $\objA$
$\ladjbot$ $\ladjbot$ $\Rule{96px}{2px}{0px}$ $\radjtop$
$\ladjbot$ $\neg\objB$ $\radjtop$
$\objB$
$\radjtop$ $\ladjbot$ $\Rule{128px}{2px}{0px}$ $\ladjbot$
$\neg\objA$ $\Rule{2px}{32px}{32px}$ $\begin{array}{c}\neg\objB\\\vary+1\end{array}$ $\Rule{2px}{32px}{32px}$ $\objA$
$\ladjbot$ $\radjtop$ $\Rule{128px}{2px}{0px}$ $\radjtop$
$\ladjbot$ $\neg\objB$ $\radjtop$
$\objB$
$\radjtop$ $\radjtop$ $\Rule{64px}{2px}{0px}$ $\ladjbot$
$\neg\objA$ $\Rule{2px}{32px}{32px}$ $\begin{array}{c}\neg\objA\\\varx+1\end{array}$ $\Rule{2px}{32px}{32px}$ $\objA$
$\ladjbot$ $\radjtop$ $\Rule{64px}{2px}{0px}$ $\ladjbot$
$\ladjbot$ $\neg\objB$ $\radjtop$
${2\times2 \choose 1} = 4$ points
vertices
$\objB$
$\radjtop$ $\ladjbot$ $\Rule{128px}{2px}{0px}$ $\radjtop$
$\neg\objA$ $\Rule{2px}{32px}{32px}$ $\begin{array}{c}\objA\wedge\objB\\\varx\vary\end{array}$ $\Rule{2px}{32px}{32px}$ $\objA$
$\ladjbot$ $\ladjbot$ $\Rule{128px}{2px}{0px}$ $\ladjbot$
$\ladjbot$ $\neg\objB$ $\radjtop$
$\objB$
$\radjtop$ $\radjtop$ $\Rule{96px}{2px}{0px}$ $\ladjbot$
$\neg\objA$ $\Rule{2px}{32px}{32px}$ $\begin{array}{c} \objB-\objA\\ \neg\objA\wedge\objB\\ (\varx+1)\vary\\ \varx\vary+\vary\end{array}$ $\Rule{2px}{32px}{32px}$ $\objA$
$\ladjbot$ $\ladjbot$ $\Rule{96px}{2px}{0px}$ $\ladjbot$
$\ladjbot$ $\neg\objB$ $\radjtop$
$\objB$
$\radjtop$ $\ladjbot$ $\Rule{96px}{2px}{0px}$ $\ladjbot$
$\neg\objA$ $\Rule{2px}{32px}{32px}$ $\begin{array}{c} \objA-\objB\\ \objA\wedge\neg\objB\\ \varx(\vary+1)\\ \varx\vary+\varx\end{array}$ $\Rule{2px}{32px}{32px}$ $\objA$
$\ladjbot$ $\ladjbot$ $\Rule{96px}{2px}{0px}$ $\radjtop$
$\ladjbot$ $\neg\objB$ $\radjtop$
$\objB$
$\radjtop$ $\ladjbot$ $\Rule{128px}{2px}{0px}$ $\ladjbot$
$\neg\objA$ $\Rule{2px}{32px}{32px}$ $\begin{array}{c} \neg\objA\wedge\neg\objB\\ (\varx+1)(\vary+1)\\ \varx\vary+\varx+\vary+1\end{array}$ $\Rule{2px}{32px}{32px}$ $\objA$
$\ladjbot$ $\radjtop$ $\Rule{128px}{2px}{0px}$ $\ladjbot$
$\ladjbot$ $\neg\objB$ $\radjtop$
${2\times2 \choose 0} = 1$ none
$\objB$
$\radjtop$ $\ladjbot$ $\Rule{64px}{2px}{0px}$ $\ladjbot$
$\neg\objA$ $\Rule{2px}{32px}{32px}$ $\begin{array}{c} \ladjbot\\ 0\end{array}$ $\Rule{2px}{32px}{32px}$ $\objA$
$\ladjbot$ $\ladjbot$ $\Rule{64px}{2px}{0px}$ $\ladjbot$
$\ladjbot$ $\neg\objB$ $\radjtop$

\[\begin{array}{} &&& dot & \unicode{0x2500} & dot \\ && \unicode{0x2571} && \unicode{0x2571} \\ & dot & \unicode{0x2500} & dot \\ \\ && dot & \unicode{0x2500} & dot \\ & \unicode{0x2571} && \unicode{0x2571} \\ dot & \unicode{0x2500} & dot \\ \end{array}\]
\[\begin{array}{} dot & \unicode{0x2500} & dot \\ & \unicode{0x2572} && \unicode{0x2572} \\ && dot & \unicode{0x2500} & dot \\ \\ & dot & \unicode{0x2500} & dot \\ && \unicode{0x2572} && \unicode{0x2572} \\ &&& dot & \unicode{0x2500} & dot \\ \end{array}\]

No comments:

Post a Comment