In mathematics, the power set (or powerset) of any set S is the set of all subsets of S, including the empty set and S itself, variously denoted as P(S), P(S), ?(S) (using the "Weierstrass p"), P(S), P(S), or, identifying the powerset of S with the set of all functions from S to a given set of two elements, 2^{S}. In axiomatic set theory (as developed, for example, in the ZFC axioms), the existence of the power set of any set is postulated by the axiom of power set.^{[1]}
Any subset of P(S) is called a family of sets over S.
If S is the set {x, y, z}, then the subsets of S are
and hence the power set of S is {{}, {x}, {y}, {z}, {x, y}, {x, z}, {y, z}, {x, y, z}}.^{[2]}
If S is a finite set with |S| = n elements, then the number of subsets of S is |P(S)| = 2^{n}. This fact, which is the motivation for the notation 2^{S}, may be demonstrated simply as follows,
Cantor's diagonal argument shows that the power set of a set (whether infinite or not) always has strictly higher cardinality than the set itself (informally the power set must be larger than the original set). In particular, Cantor's theorem shows that the power set of a countably infinite set is uncountably infinite. The power set of the set of natural numbers can be put in a one-to-one correspondence with the set of real numbers (see Cardinality of the continuum).
The power set of a set S, together with the operations of union, intersection and complement can be viewed as the prototypical example of a Boolean algebra. In fact, one can show that any finite Boolean algebra is isomorphic to the Boolean algebra of the power set of a finite set. For infinite Boolean algebras this is no longer true, but every infinite Boolean algebra can be represented as a subalgebra of a power set Boolean algebra (see Stone's representation theorem).
The power set of a set S forms an abelian group when considered with the operation of symmetric difference (with the empty set as the identity element and each set being its own inverse) and a commutative monoid when considered with the operation of intersection. It can hence be shown (by proving the distributive laws) that the power set considered together with both of these operations forms a Boolean ring.
In set theory, X^{Y} is the set of all functions from Y to X. As "2" can be defined as {0,1} (see natural number), 2^{S} (i.e., {0,1}^{S}) is the set of all functions from S to {0,1}. By identifying a function in 2^{S} with the corresponding preimage of 1, we see that there is a bijection between 2^{S} and P(S), where each function is the characteristic function of the subset in P(S) with which it is identified. Hence 2^{S} and P(S) could be considered identical set-theoretically. (Thus there are two distinct notational motivations for denoting the power set by 2^{S}: the fact that this function-representation of subsets makes it a special case of the X^{Y} notation and the property, mentioned above, that || = 2^{||}.)
This notion can be applied to the example above in which S = {x, y, z} to see the isomorphism with the binary numbers from 0 to 2^{n} - 1 with n being the number of elements in the set. In S, a "1" in the position corresponding to the location in the enumerated set { (x, 0), (y, 1), (z, 2) } indicates the presence of the element. So {x, y} = 011_{(2)}.
For the whole power set of S we get:
Subset | Sequence of digits |
Binary interpretation |
Decimal equivalent |
---|---|---|---|
{ } | 0, 0, 0 | 000_{(2)} | 0_{(10)} |
{ x } | 0, 0, 1 | 001_{(2)} | 1_{(10)} |
{ y } | 0, 1, 0 | 010_{(2)} | 2_{(10)} |
{ x, y } | 0, 1, 1 | 011_{(2)} | 3_{(10)} |
{ z } | 1, 0, 0 | 100_{(2)} | 4_{(10)} |
{ x, z } | 1, 0, 1 | 101_{(2)} | 5_{(10)} |
{ y, z } | 1, 1, 0 | 110_{(2)} | 6_{(10)} |
{ x, y, z } | 1, 1, 1 | 111_{(2)} | 7_{(10)} |
Such bijective mapping of S to integers is arbitrary, so this representation of subsets of S is not unique, but the sort order of the enumerated set does not change its cardinality.
However, such finite binary representation is only possible if S can be enumerated (this is possible even if S has an infinite cardinality, such as the set of integers or rationals, but not for example if S is the set of real numbers, in which we cannot enumerate all irrational numbers to assign them a defined finite location in an ordered set containing all irrational numbers).
The power set is closely related to the binomial theorem. The number of subsets with k elements in the power set of a set with n elements is given by the number of combinations, C(n, k), also called binomial coefficients.
For example, the power set of a set with three elements, has:
Using this relationship we can compute using the formula:
Therefore, one can deduce the following identity, assuming :
If S is a finite set, there is a recursive algorithm to calculate P(S).
Define the operation F (e, T) = {X ? {e} | X ? T}.
In English, return the set with the element e added to each set X in T.
In words: The power set of the empty set is the set containing only the empty set and the power set of any other set is all the subsets of the set containing some specific element and all the subsets of the set not containing that specific element.
The following is a Python implementation of the above algorithm as used for lists (note that such lists, opposed to sets, may also hold duplicated enties):
Verbose:
def powerset(s) -> List:
"""Power set."""
if s == []: # Base case
return [s] # If s is empty, then the only sublist of s is s itself
else:
e = s[0] # Any element from s (in this implementation, we choose the first element)
t = s[1:] # s with e removed
pt = powerset(t) # The list of all sublists of t (note that this is a recursive call)
fept = [x + [e] for x in pt] # pt with e appended to each sublist
return pt + fept # The concatenation of all constructed sublists
# Example:
print(powerset(['x', 'y', 'z']))
Concise form:
def p(s):
return p(s[1:]) + [x + [s[0]] for x in p(s[1:])] if s else [s]
The set of subsets of S of cardinality less than or equal to ? is sometimes denoted by P_{?}(S) or [S]^{?}, and the set of subsets with cardinality strictly less than ? is sometimes denoted P_{< ?}(S) or [S]^{<?}. Similarly, the set of non-empty subsets of S might be denoted by P_{>= 1}(S) or P^{+}(S).
A set can be regarded as an algebra having no nontrivial operations or defining equations. From this perspective the idea of the power set of X as the set of subsets of X generalizes naturally to the subalgebras of an algebraic structure or algebra.
Now the power set of a set, when ordered by inclusion, is always a complete atomic Boolean algebra, and every complete atomic Boolean algebra arises as the lattice of all subsets of some set. The generalization to arbitrary algebras is that the set of subalgebras of an algebra, again ordered by inclusion, is always an algebraic lattice, and every algebraic lattice arises as the lattice of subalgebras of some algebra. So in that regard subalgebras behave analogously to subsets.
However, there are two important properties of subsets that do not carry over to subalgebras in general. First, although the subsets of a set form a set (as well as a lattice), in some classes it may not be possible to organize the subalgebras of an algebra as itself an algebra in that class, although they can always be organized as a lattice. Secondly, whereas the subsets of a set are in bijection with the functions from that set to the set {0,1} = 2, there is no guarantee that a class of algebras contains an algebra that can play the role of 2 in this way.
Certain classes of algebras enjoy both of these properties. The first property is more common, the case of having both is relatively rare. One class that does have both is that of multigraphs. Given two multigraphs G and H, a homomorphism h: G -> H consists of two functions, one mapping vertices to vertices and the other mapping edges to edges. The set H^{G} of homomorphisms from G to H can then be organized as the graph whose vertices and edges are respectively the vertex and edge functions appearing in that set. Furthermore, the subgraphs of a multigraph G are in bijection with the graph homomorphisms from G to the multigraph ? definable as the complete directed graph on two vertices (hence four edges, namely two self-loops and two more edges forming a cycle) augmented with a fifth edge, namely a second self-loop at one of the vertices. We can therefore organize the subgraphs of G as the multigraph ?^{G}, called the power object of G.
What is special about a multigraph as an algebra is that its operations are unary. A multigraph has two sorts of elements forming a set V of vertices and E of edges, and has two unary operations s,t: E -> V giving the source (start) and target (end) vertices of each edge. An algebra all of whose operations are unary is called a presheaf. Every class of presheaves contains a presheaf ? that plays the role for subalgebras that 2 plays for subsets. Such a class is a special case of the more general notion of elementary topos as a category that is closed (and moreover cartesian closed) and has an object ?, called a subobject classifier. Although the term "power object" is sometimes used synonymously with exponential object Y^{X}, in topos theory Y is required to be ?.
In category theory and the theory of elementary topoi, the universal quantifier can be understood as the right adjoint of a functor between power sets, the inverse image functor of a function between sets; likewise, the existential quantifier is the left adjoint.^{[3]}