I've been experimenting with the following idea, and I wondered if there's a name for it:
Suppose $S_0, S_1, ... S_{n-1}$ is an array of $n$ sets of elements in $U$. Now for any element $e \in U$ we can test whether or not $(e \in S_0), (e \in S_1), ... (e \in S_{n-1})$ etc, producing an array of $n$ boolean values.
Since we can treat these results as the digits of an $n$-digit binary number, it's clear that we've partitioned $U$ into $2^n$ distinct sets.
This seems like a promising way to model variables in a little automated theorem prover I'm building, and I'm hoping someone out there could point me to something similar in the literature.