I'm reading Book of Proof for a refresher on mathematical proofs and came across this problem:
If $n \in \mathbb{N}$, then $2^0 + 2^1 + 2^2 + 2^3 + \dots + 2^n = 2^{n+1} - 1$.
I know there have been similar questions on the site asking to prove this problem by induction, but I don't want to use induction because the book has not yet introduced it (even though I'm familiar, but not comfortable, with induction proofs). In fact, my book's answer key uses a direct proof:
Proof. We use direct proof. Suppose $n \in \mathbb{N}$. Let $S$ be the number:
$S = 2^0 + 2^1 + 2^2 + 2^3 + 2^4 + \dots + 2^n$ (1)
In what follows, we will solve for $S$ and show $S = 2^{n+1} - 1$. Multiplying both sides of (1) by $2$ gives
$2S = 2^1 + 2^2 + 2^3 + 2^4 + 2^5 + \dots + 2^{n+1}$ (2)
Now subtract Equation (1) from Equation (2) to obtain $2S - S = -2^{0} + 2^{n+1}$, which simplifies to $S = 2^{n+1} - 1$. Combining this with Equation (1) produces $2^0 + 2^1 + 2^2 + 2^3 + 2^4 + \dots + 2^n = 2^{n+1} - 1$, so the proof is complete.
I don't follow how the subtraction was performed. I think I'm very close to understanding this, but there's some key piece missing that's preventing me from articulating this proof.
I understand it a little better if I line up $S$ and $2S$ above each other diagrammatically, in which case it's clear that multiplying $S$ by $2$ is the same as shifting the bits to the right, such that we lose the $2^0$ we had before ($-1$) but gain an extra $2^{n+1}$ that was not there before, such that the total difference ends up being $2^{n+1} - 1$.
$S = \color{red}{2^0} + \color{blue}{2^1 + 2^2 + 2^3 + 2^4 + \dots + 2^{n-1} + 2^n}$
$2S = \color{blue}{2^1 + 2^2 + 2^3 + 2^4 + 2^5 \dots + 2^{n-1} + 2^n} + \color{red}{2^{n+1}}$
How can I express this intuitive understanding more formally? What am I missing? I'm having trouble actually performing the subtraction step.
Equivalently, I know I can translate this problem into one where we're dealing with binary strings, showing that $111...111$ is the same as $1000...000$ (with a leading $1$ in the $n+1$th bit) minus $0000...001$ (one), which produces a binary string with a $1$ in every place from $0$ to $n$. Is that an acceptable proof?