In logic and universal algebra, Post's lattice denotes the lattice of all clones on a two-element set, ordered by inclusion. It is named for Emil Post, who published a complete description of the lattice in 1941.[1] The relative simplicity of Post's lattice is in stark contrast to the lattice of clones on a three-element (or larger) set, which has the cardinality of the continuum, and a complicated inner structure. A modern exposition of Post's result can be found in Lau (2006).[2]
A Boolean function, or logical connective, is an n-ary operation for some, where 2 denotes the two-element set . Particular Boolean functions are the projections
n(x | |
\pi | |
1,...,x |
n)=xk,
h(x1,...,xn)=f(g1(x1,...,xn),...,gm(x1,...,xn)),
Let B be a set of connectives. The functions which can be defined by a formula using propositional variables and connectives from B form a clone [''B''], indeed it is the smallest clone which includes B. We call [''B''] the clone generated by B, and say that B is the basis of [''B'']. For example, [¬, ∧] are all Boolean functions, and [0, 1, ∧, ∨] are the monotone functions.
We use the operations ¬, Np, (negation), ∧, Kpq, (conjunction or meet), ∨, Apq, (disjunction or join), →, Cpq, (implication), ↔, Epq, (biconditional), +, Jpq (exclusive disjunction or Boolean ring addition), ↛, Lpq,[3] (nonimplication), ?: (the ternary conditional operator) and the constant unary functions 0 and 1. Moreover, we need the threshold functions
n | |
th | |
k(x |
1,...,xn)=\begin{cases}1&ifl|\{i\midxi=1\}r|\gek,\\ 0&otherwise.\end{cases}
3 | |
maj=th | |
2=(x\land |
y)\lor(x\landz)\lor(y\landz).
We denote elements of 2n (i.e., truth-assignments) as vectors: . The set 2n carries a natural product Boolean algebra structure. That is, ordering, meets, joins, and other operations on n-ary truth assignments are defined pointwise:
(a1,...,an)\le(b1,...,bn)\iffai\lebifori=1,...,n,
(a1,...,an)\land(b1,...,bn)=(a1\landb1,...,an\landbn).
Intersection of an arbitrary number of clones is again a clone. It is convenient to denote intersection of clones by simple juxtaposition, i.e., the clone is denoted by C1C2...Ck. Some special clones are introduced below:
\begin{align} &f(a1,...,ai-1,c,ai+1,...,an)=f(a1,...,d,ai+1,...)\\ ⇒ &f(b1,...,c,bi+1,...)=f(b1,...,d,bi+1,...) \end{align}
for every i ≤ n, a, b ∈ 2n, and c, d ∈ 2. Equivalently, the functions expressible as for some a0, a.
f(x1,...,xn)=wedgei\inxi
f(x1,...,xn)=veei\inxi
a1\land … \landak=0 ⇒ f(a1)\land … \landf(ak)=0.
Moreover,
k | |
T | |
0 |
As a special case, = [∨, +] is the set of 0-preserving functions: . Furthermore, ⊤ can be considered T00 when one takes the empty meet into account.
a1\lor … \lorak=1 ⇒ f(a1)\lor … \lorf(ak)=1,
and
k | |
T | |
1 |
The special case = [∧, →] consists of the 1-preserving functions: . Furthermore, ⊤ can be considered T10 when one takes the empty join into account.
The set of all clones is a closure system, hence it forms a complete lattice. The lattice is countably infinite, and all its members are finitely generated. All the clones are listed in the table below.
clone | one of its bases | |
---|---|---|
⊤ | ∨, ¬ | |
P0 | ∨, + | |
P1 | ∧, → | |
P | x ? y : z | |
T0k, k ≥ 2 | thkk+1, ↛ | |
T0∞ | ↛ | |
PT0k, k ≥ 2 | thkk+1, x ∧ (y → z) | |
PT0∞ | x ∧ (y → z) | |
T1k, k ≥ 2 | th2k+1, → | |
T1∞ | → | |
PT1k, k ≥ 2 | th2k+1, x ∨ (y + z) | |
PT1∞ | x ∨ (y + z) | |
M | ∧, ∨, 0, 1 | |
MP0 | ∧, ∨, 0 | |
MP1 | ∧, ∨, 1 | |
MP | ∧, ∨ | |
MT0k, k ≥ 2 | thkk+1, 0 | |
MT0∞ | x ∧ (y ∨ z), 0 | |
MPT0k, k ≥ 2 | thkk+1 for k ≥ 3, maj, x ∧ (y ∨ z) for k = 2 | |
MPT0∞ | x ∧ (y ∨ z) | |
MT1k, k ≥ 2 | th2k+1, 1 | |
MT1∞ | x ∨ (y ∧ z), 1 | |
MPT1k, k ≥ 2 | th2k+1 for k ≥ 3, maj, x ∨ (y ∧ z) for k = 2 | |
MPT1∞ | x ∨ (y ∧ z) | |
Λ | ∧, 0, 1 | |
ΛP0 | ∧, 0 | |
ΛP1 | ∧, 1 | |
ΛP | ∧ | |
V | ∨, 0, 1 | |
VP0 | ∨, 0 | |
VP1 | ∨, 1 | |
VP | ∨ | |
D | maj, ¬ | |
DP | maj, x + y + z | |
DM | maj | |
A | ↔, 0 | |
AD | ¬, x + y + z | |
AP0 | + | |
AP1 | ↔ | |
AP | x + y + z | |
U | ¬, 0 | |
UD | ¬ | |
UM | 0, 1 | |
UP0 | 0 | |
UP1 | 1 | |
⊥ |
The eight infinite families have actually also members with k = 1, but these appear separately in the table:,,,,, .
The lattice has a natural symmetry mapping each clone C to its dual clone, where is the de Morgan dual of a Boolean function f. For example,,, and .
The complete classification of Boolean clones given by Post helps to resolve various questions about classes of Boolean functions. For example:
If one only considers clones that are required to contain the constant functions, the classification is much simpler: there are only 7 such clones: UM, Λ, V, U, A, M, and ⊤. While this can be derived from the full classification, there is a simpler proof, taking less than a page.[5]
Composition alone does not allow to generate a nullary function from the corresponding unary constant function, this is the technical reason why nullary functions are excluded from clones in Post's classification. If we lift the restriction, we get more clones. Namely, each clone C in Post's lattice which contains at least one constant function corresponds to two clones under the less restrictive definition: C, and C together with all nullary functions whose unary versions are in C.
Post originally did not work with the modern definition of clones, but with the so-called iterative systems, which are sets of operations closed under substitution
h(x1,...,xn+m-1)=f(x1,...,xn-1,g(xn,...,xn+m-1)),