Introduction

First described by Emil Post in "The Two-Valued Iterative Systems Of Mathematical Logic", Post's Lattice is the lattice of clones (sets of functions closed under composition) of Boolean functions, partially ordered by inclusion. The lattice is surprisingly simple, being only countably infinite due to the presence of eight infinite families.

The description of the lattice has proven to be an invaluable asset when studying anything involving Boolean function composition or construction. Most notably, it has found applications in digital logic, circuit design, and complexity theory. One of its most immediate uses is that it enables one to efficiently determine which Boolean functions can be constructed using a given set of logical connectives.

Interactive Hasse Diagram

The diagram only displays the clones that both include the Min Clone and are included within the Max Clone. To adjust these parameters, first select the desired clone, then click on either the Min Clone or Max Clone button. The complete diagram can be restored by clicking the Reset Button. Additionally, use the Labels Switch to toggle label visibility according to your preference.

Labels:
Max Clone:
Min Clone:

Clone Descriptions

\( B \): The clone of all Boolean functions.

All functions in \( B \):

\( P_0 \): The clone of all falsity-preserving functions \( \forall f \in P_0: f(0, 0, \ldots, 0) = 0 \).

All functions in \( P_0 \):

\( P_1 \): The clone of all truth-preserving functions \( \forall f \in P_1: f(1, 1, \ldots, 1) = 1 \).

All functions in \( P_1 \):

\( P \): The clone of all constant-preserving functions \( P = P_0 \cap P_1 \).

All functions in \( P \):


\( F_{0}^{k} \): The clones of all \( k \)-order falsity-preserving functions \( \forall f \in F_{0}^{k}: \bigwedge(V_1, V_2, \ldots, V_k) = \) \( (0, 0, \ldots, 0) \Rightarrow \) \( \bigwedge(f(V_1), f(V_2), \ldots, f(V_k)) = 0 \). Note that \( P_0 = F_{0}^{1} \).

All functions in \( F_{0}^{2} \):

All functions in \( F_{0}^{3} \):

\( F_{0}^{\infty} \): The clone of all variable falsity-preserving functions \( \forall f \in F_{0}^{\infty}: \exists i \in \{1, 2, \ldots, n\}: f(V) \leq v_i \). Equivalently, \( F_{0}^{\infty} = \bigcap_{k=1}^{\infty} F_{0}^{k} \).

All functions in \( F_{0}^{\infty} \):

\( PF_{0}^{k} \): The clones of all constant-preserving \( k \)-order falsity-preserving functions \( PF_{0}^{k} = F_{0}^{k} \cap P \). Note that \( P = PF_{0}^{1} \).

All functions in\( PF_{0}^{2} \):

All functions in\( PF_{0}^{3} \):

\( PF_{0}^{\infty} \): The clone of all constant-preserving variable falsity-preserving functions \( PF_{0}^{\infty} = F_{0}^{\infty} \cap P \). Equivalently, \( PF_{0}^{\infty} = \) \( \bigcap_{k=1}^{\infty} PF_{0}^{k} \).

All functions in \( PF_{0}^{\infty} \):


\( F_{1}^{k} \): The clones of all \( k \)-order truth-preserving functions \( \forall f \in F_{1}^{k}: \bigvee(V_1, V_2, \ldots, V_k) = \) \( (1, 1, \ldots, 1) \Rightarrow \) \( \bigvee(f(V_1), f(V_2), \ldots, f(V_k)) = 1 \). Note that \( P_1 = F_{1}^{1} \).

All functions in \( F_{1}^{2} \):

All functions in \( F_{1}^{3} \):

\( F_{1}^{\infty} \): The clone of all variable truth-preserving functions \( \forall f \in F_{1}^{\infty}: \exists i \in \{1, 2, \ldots, n\}: f(V) \geq v_i \). Equivalently, \( F_{1}^{\infty} = \bigcap_{k=1}^{\infty} F_{1}^{k} \).

All functions in \( F_{1}^{\infty} \):

\( PF_{1}^{k} \): The clones of all constant-preserving \( k \)-order truth-preserving functions \( PF_{1}^{k} = F_{1}^{k} \cap P \). Note that \( P = PF_{1}^{1} \).

All functions in \( PF_{1}^{2} \):

All functions in \( PF_{1}^{3} \):

\( PF_{1}^{\infty} \): The clone of all constant-preserving variable truth-preserving functions \( PF_{1}^{\infty} = F_{1}^{\infty} \cap P \). Equivalently, \( PF_{1}^{\infty} = \) \( \bigcap_{k=1}^{\infty} PF_{1}^{k} \).

All functions in \( PF_{1}^{\infty} \):


\( MC \): The clone of all monotone functions \( \forall f \in MC: V_1 \leq V_2 \Rightarrow f(V_1) \leq f(V_2) \) with the constants \( MC = M \cup \{0, 1\} \). In other words, it is the clone of all functions for which changing an input variable from 0 to 1 will never change the output from 1 to 0. For example, if \( f(0, 1, 1, 0) = 1 \), \( f(1, 1, 1, 0) = 1 \).

All functions in \( MC \):

\( M_0 \): The clone of all monotone functions with \( 0 \) ( \( M0 = M \cup \{0\} \) ). Equivalently, it is the clone of all falsity-preserving monotone functions ( \( M0 = MC \cap P_0 \) ).

All functions in \( M_0 \):

\( M_1 \): The clone of all monotone functions with \( 1 \) ( \( M1 = M \cup \{1\} \) ). Equivalently, it is the clone of all truth-preserving monotone functions ( \( M1 = MC \cap P_1 \) ).

All functions in \( M_1 \):

\( M \): The clone of all monotone functions without the constants. Equivalently, it is the clone of all constant-preserving monotone functions ( \( M = MC \cap P \) ).

All functions in \( M \):


\( MF_{0}^{k} \): The clones of all monotone \( k \)-order falsity-preserving functions with \( 0 \) \( (MF_{0}^{k} = F_{0}^{k} \cap M0 = MPF_{0}^{k} \cup \{0\}) \). Note that \( M0 = MF_{0}^{1} \).

All functions in \( MF_{0}^{2} \):

All functions in \( MF_{0}^{3} \):

\( MF_{0}^{\infty} \): The clone of all monotone variable falsity-preserving functions with \( 0 \) \( (MF_{0}^{\infty} = F_{0}^{\infty} \cap M0 = \) \( MPF_{0}^{\infty} \cup \{0\}) \). Equivalently, \( MF_{0}^{\infty} = \bigcap_{k=1}^{\infty} MF_{0}^{k} \).

All functions in \( MF_{0}^{\infty} \):

\( MPF_{0}^{k} \): The clones of all monotone \( k \)-order falsity-preserving functions without the constants. Equivalently, they are the clones of all constant-preserving monotone \( k \)-order falsity-preserving functions \( MPF_{0}^{k} = MF_{0}^{k} \cap P \). Note that \( M = MPF_{0}^{1} \).

All functions in \( MPF_{0}^{2} \):

All functions in \( MPF_{0}^{3} \):

\( MPF_{0}^{\infty} \): The clone of all monotone variable falsity-preserving functions without the constants. Equivalently, \( MPF_{0}^{\infty} = \bigcap_{k=1}^{\infty} MPF_{0}^{k} \).

All functions in \( MPF_{0}^{\infty} \):


\( MF_{1}^{k} \): The clones of all monotone \( k \)-order truth-preserving functions with \( 1 \) \( (MF_{1}^{k} = F_{1}^{k} \cap M1 = MPF_{1}^{k} \cup \{1\}) \). Note that \( M1 = MF_{1}^{1} \).

All functions in \( MF_{1}^{2} \):

All functions in \( MF_{1}^{3} \):

\( MF_{1}^{\infty} \): The clone of all monotone variable truth-preserving functions with \( 1 \) \( (MF_{1}^{\infty} = F_{1}^{\infty} \cap M1 = \) \( MPF_{1}^{\infty} \cup \{1\}) \). Equivalently, \( MF_{1}^{\infty} = \bigcap_{k=1}^{\infty} MF_{1}^{k} \).

All functions in \( MF_{1}^{\infty} \):

\( MPF_{1}^{k} \): The clones of all monotone \( k \)-order truth-preserving functions without the constants. Equivalently, they are the clones of all constant-preserving monotone \( k \)-order truth-preserving functions \( MPF_{1}^{k} = MF_{1}^{k} \cap P \). Note that \( M = MPF_{1}^{1} \).

All functions in \( MPF_{1}^{2} \):

All functions in \( MPF_{1}^{3} \):

\( MPF_{1}^{\infty} \): The clone of all monotone variable truth-preserving functions without the constants. Equivalently, \( MPF_{1}^{\infty} = \bigcap_{k=1}^{\infty} MPF_{1}^{k} \).

All functions in \( MPF_{1}^{\infty} \):


\( D \): The clone of all self-dual functions \( \forall f \in D: f(V) = \neg f(\neg V) \).

All functions in \( D \):

\( DP \): The clone of all constant-preserving self-dual functions \( DP = D \cap P \).

All functions in \( DP \):

\( DM \): The clone of all monotone self-dual functions \( DM = D \cap M \).

All functions in \( DM \):


\( L \): The clone of all linear functions, also known as affine; counting functions \( \forall f \in L: \exists (v_0, V): f(x_1, x_2, \ldots, x_n) = \) \( v_0 \oplus (v_1 \land x_1) \oplus (v_2 \land x_2) \) \( \oplus \ldots \oplus (v_n \land x_n) \).

All functions in \( L \):

\( LP_0 \): The clone of all ⊕ functions \( \forall f \in LP_0: \exists V: f(x_1, x_2, \ldots, x_n) = 0 \) \( \oplus (v_1 \land x_1) \oplus (v_2 \land x_2) \oplus \ldots \oplus (v_n \land x_n) \). Equivalently, it is the clone of all falsity-preserving linear functions \( LP_0 = L \cap P_0 \).

All functions in \( LP_0 \):

\( LP_1 \): The clone of all ↔ functions \( \forall f \in LP_1: \exists V: f(x_1, x_2, \ldots, x_n) = \) \( 1 \leftrightarrow (v_1 \land x_1) \leftrightarrow (v_2 \land x_2) \) \( \leftrightarrow \ldots \leftrightarrow (v_n \land x_n) \). Equivalently, it is the clone of all truth-preserving linear functions \( LP_1 = L \cap P_1 \).

All functions in \( LP_1 \):

\( LD \): The clone of all linear functions with an odd number of non-dummy variables. Equivalently, it is the clone of all self-dual linear functions \( LD = L \cap D \).

All functions in \( LD \):

\( LP \): The clone of all ⊕/↔ functions with an odd number of non-dummy variables. Equivalently, it is the clone of all constant-preserving linear functions \( LP = L \cap P \).

All functions in \( LP \):


\( AC \): The clone of all \( \wedge \) functions with the constants \( (AC = A \cup C) \).

All functions in \( AC \):

\( A_0 \): The clone of all \( \wedge \) functions with \( 0 \) \( (A_O = A \cup \{0\}) \).

All functions in \( A_0 \):

\( A_1 \): The clone of all \( \wedge \) functions with \( 1 \) \( (A_1 = A \cup \{1\}) \).

All functions in \( A_1 \):

\( A \): The clone of all \( \wedge \) functions without the constants.

All functions in \( A \):


\( OC \): The clone of all \( \vee \) functions with the constants \( (OC = O \cup C) \).

All functions in \( OC \):

\( O_0 \): The clone of all \( \vee \) functions with \( 0 \) \( (O_0 = O \cup \{0\}) \).

All functions in \( O_0 \):

\( O_1 \): The clone of all \( \vee \) functions with \( 1 \) \( (O_1 = O \cup \{1\}) \).

All functions in \( O_1 \):

\( O \): The clone of all \( \vee \) functions without the constants.

All functions in \( O \):


\( UC \): The clone of all unary functions (functions with only one non-dummy variable) with the constants \( (UC = U \cup C) \).

All functions in \( UC \):

\( U \): The clone of all unary functions without constants.

All functions in \( U \):


\( IC \): The clone of all identity functions with the constants \( (IC = I \cup C) \).

All functions in \( IC \):

\( I_0 \): The clone of all identity functions with \( 0 \) \( (I_0 = I \cup \{0\}) \).

All functions in \( I_0 \):

\( I_1 \): The clone of all identity functions with \( 1 \) \( (I_1 = I \cup \{1\}) \).

All functions in \( I_1 \):

\( I \): The clone of all identity functions, also known as projection functions \( \forall f \in I: \exists i \in \{1, 2, \ldots, n\}: \) \( f(x_1, x_2, \ldots, x_n) = x_i \).

All functions in \( I \):


Clone Bases

\( B \):

\( \underline{B}: \)

Minimal Bases of \( B \):
Minimal Bases of \( B \):

\( P_0 \):

\( \underline{P_0}: \)

Minimal Bases of \( P_0 \):

\( P_1 \):

\( \underline{P_1}: \)

Minimal Bases of \( P_1 \):

\( P \):

\( \underline{P}: \)

Minimal Bases of \( P \):


\( F_{0}^{k} \):

\( \underline{F_{0}^{2}}: \)

\( \underline{F_{0}^{3}}: \)

Minimal Bases of \( F_{0}^{k} \) (\( k \ge 2 \)):

\( F_{0}^{\infty} \):

\( \underline{F_{0}^{\infty}}: \)

Minimal Bases of \( F_{0}^{\infty} \):

\( PF_{0}^{k} \):

\( \underline{PF_{0}^{2}}: \)

Minimal Bases of \( PF_{0}^{k} \):

\( PF_{0}^{\infty} \):

\( \underline{PF_{0}^{\infty}}: \)

Minimal Bases of \( PF_{0}^{\infty} \):


\( F_{1}^{k} \):

\( \underline{F_{1}^{2}}: \)

\( \underline{F_{1}^{3}}: \)

Minimal Bases of \( F_{1}^{k} \) (\( k \ge 2 \)):

\( F_{1}^{\infty} \):

\( \underline{F_{1}^{\infty}}: \)

Minimal Bases of \( F_{1}^{\infty} \):

\( PF_{1}^{k} \):

\( \underline{PF_{1}^{2}}: \)

Minimal Bases of \( PF_{1}^{k} \):

\( PF_{1}^{\infty} \):

\( \underline{PF_{1}^{\infty}}: \)

Minimal Bases of \( PF_{1}^{\infty} \):


\( MC \):

Minimal Bases of \( MC \):

\( M_0 \):

Minimal Bases of \( M_0 \):

\( M_1 \):

Minimal Bases of \( M_1 \):

\( M \):

\( \underline{M}: \)

Minimal Bases of \( M \):


\( MF_{0}^{k} \):

Minimal Bases of \( MF_{0}^{k} \):

\( MF_{0}^{\infty} \):

Minimal Bases of \( MF_{0}^{\infty} \):

\( MPF_{0}^{k} \):

\( \underline{MPF_{0}^{2}}: \)

\( \underline{MPF_{0}^{3}}: \)

Minimal Bases of \( MPF_{0}^{k} \):

\( MPF_{0}^{\infty} \):

\( \underline{MPF_{0}^{\infty}}: \)

Minimal Bases of \( MPF_{0}^{\infty} \):


\( MF_{1}^{k} \):

Minimal Bases of \( MF_{1}^{k} \):

\( MF_{1}^{\infty} \):

Minimal Bases of \( MF_{1}^{\infty} \):

\( MPF_{1}^{k} \):

\( \underline{MPF_{1}^{2}}: \)

\( \underline{MPF_{1}^{3}}: \)

Minimal Bases of \( MPF_{0}^{k} \):

\( MPF_{1}^{\infty} \):

\( \underline{MPF_{1}^{\infty}}: \)
Minimal Bases of \( MPF_{1}^{\infty} \):


\( D \):

\( \underline{D}: \)

Minimal Bases of \( D \):

\( DP \):

\( \underline{DP}: \)

Minimal Bases of \( DP \):

\( DM \):

\( \underline{DM}: \)

Minimal Bases of \( DM \):


\( L \):

Minimal Bases of \( L \):

\( LP_0 \):

\( \underline{LP_0}: \)

Minimal Bases of \( LP_0 \):

\( LP_1 \):

\( \underline{LP_1}: \)

Minimal Bases of \( LP_1 \):

\( LD \):

\( \underline{LD}: \)

Minimal Bases of \( LD \):

\( LP \):

\( \underline{LP}: \)

Minimal Bases of \( LP \):


\( AC \):

Minimal Bases of \( AC \):

\( A_0 \):

Minimal Bases of \( A_0 \):

\( A_1 \):

Minimal Bases of \( A_1 \):

\( A \):

\( \underline{A}: \)

Minimal Bases of \( A \):


\( OC \):

Minimal Bases of \( OC \):

\( O_0 \):

Minimal Bases of \( O_0 \):

\( O_1 \):

Minimal Bases of \( O_1 \):

\( O \):

\( \underline{O}: \)

Minimal Bases of \( O \):


\( UC \):

Minimal Bases of \( UC \):

\( U \):

\( \underline{U}: \)

Minimal Bases of \( U \):


\( IC \):

Minimal Bases of \( IC \):

\( I_0 \):

\( \underline{I_0}: \)

Minimal Bases of \( I_0 \):

\( I_1 \):

\( \underline{I_1}: \)

Minimal Bases of \( I_1 \):

\( I \):

All identity functions: