Answer
See explanation
Work Step by Step
Below is a concise explanation of **Exercise 56**, which generalizes Example 7.2.8 from the case \(\{a,b\}\) to an arbitrary \(n\)-element set.
---
## Setup
- Let \(X = \{x_1, x_2, \ldots, x_n\}\) be a set with \(n\) distinct elements.
- Let \(\mathcal{P}(X)\) be the power set of \(X\), i.e., the set of all subsets of \(X\).
- Let \(S\) be the set of all binary strings (strings of 0’s and 1’s) of length \(n\). Formally,
\[
S \;=\; \{\,0,1\}^n \;=\;\{ (b_1,b_2,\ldots,b_n)\mid b_i\in\{0,1\}\ \text{for each }i\}.
\]
We wish to construct a **one-to-one correspondence** (bijection)
\[
h: \mathcal{P}(X)\; \longrightarrow\; S.
\]
---
## Part (a) Defining the Bijection
1. **Fix an ordering** of the elements of \(X\). We will assume \(X\) is labeled in the order \(x_1, x_2, \dots, x_n\).
2. **For each subset \(A \subseteq X\)**, define the string
\[
h(A) \;=\; (b_1, b_2, \dots, b_n),
\]
where
\[
b_i \;=\;
\begin{cases}
1, & \text{if } x_i \in A,\\
0, & \text{if } x_i \notin A.
\end{cases}
\]
In other words, look at each \(x_i\) in order:
- If \(x_i\) is **in** \(A\), put a **1** in the \(i\)-th position of the string.
- If \(x_i\) is **not** in \(A\), put a **0** in the \(i\)-th position.
### Why Is \(h\) Injective?
If \(h(A_1) = h(A_2)\), that means for every \(i\) from 1 to \(n\),
\[
b_i^{(A_1)} = b_i^{(A_2)},
\]
where \(b_i^{(A_k)}\) is the \(i\)-th bit of the string \(h(A_k)\). By definition, \(b_i^{(A_k)} = 1\) exactly when \(x_i \in A_k\). Thus for all \(i\),
\[
x_i \in A_1 \;\Longleftrightarrow\; b_i^{(A_1)} = 1
\;\Longleftrightarrow\; b_i^{(A_2)} = 1
\;\Longleftrightarrow\; x_i \in A_2.
\]
Hence \(A_1\) and \(A_2\) contain exactly the same elements, so \(A_1 = A_2\). Therefore, \(h\) is **injective**.
### Why Is \(h\) Surjective?
Take any binary string \((b_1,b_2,\dots,b_n)\in S\). We want to find a subset \(A\subseteq X\) such that \(h(A)=(b_1,b_2,\dots,b_n)\). Define
\[
A \;=\; \{\, x_i \in X \mid b_i = 1 \}.
\]
Then by construction, the string \(h(A)\) will exactly be \((b_1,b_2,\dots,b_n)\). Hence \(h\) is **surjective**.
Because \(h\) is both injective and surjective, it is a **bijection**.
---
## Part (b) Counting Subsets: \(\lvert \mathcal{P}(X)\rvert = 2^n\)
1. We have established a bijection
\[
h: \mathcal{P}(X)\;\longrightarrow\;\{0,1\}^n.
\]
2. It is well-known (or easy to verify) that the set \(\{0,1\}^n\) of all length-\(n\) binary strings has exactly \(2^n\) elements: each position in the string can be chosen independently as 0 or 1, giving \(2\cdot 2\cdot \dots \cdot 2\) (\(n\) times) = \(2^n\).
3. Since \(\mathcal{P}(X)\) is in bijection with \(\{0,1\}^n\), they have the **same** number of elements. Therefore,
\[
|\mathcal{P}(X)| = 2^n.
\]
This provides an elegant proof that an \(n\)-element set has exactly \(2^n\) subsets.
---
## Summary of the Argument
1. **Define** \(h(A)\) by scanning each \(x_i\in X\) in order, writing a 1 if \(x_i\in A\) and 0 otherwise.
2. **Prove injectivity**: if two subsets have the same 0–1 pattern, they must be the same subset.
3. **Prove surjectivity**: given any 0–1 pattern, build a subset by including \(x_i\) exactly when the \(i\)-th bit is 1.
4. **Conclude** a bijection between \(\mathcal{P}(X)\) and all binary strings of length \(n\).
5. **Hence** \(\lvert \mathcal{P}(X)\rvert = 2^n\).
This completes the solution.