Let $S\subseteq \mathbb{N}$ where: (i) $2^k\in S$ for all $k\in \mathbb{N}$; and (ii) for all $k\ge 2$, if $k\in S$, then $k-1\in S$. Prove using induction that $S=\mathbb{N}$.
So the base case: If $k=1$, then by (i) $2^1=2\in S$. Then by (ii), $1\in S$.
Now the assumption, $k\le n$. So we assume that for all $k\le n$ that through (i) we have $2^k\in S$. But now that we know that by (ii) $2^k\in S$, so therefore $2^k-1, 2^k-2,...,2^{k-1}+1$ are all in $S$. (Seems like a kind of reverse induction?...) So now I think all integers up to $2^k$ are assumed to be in $S$
So finally, for $2^{k+1}$, we have that $2^{k+1}\in S$. But since $2^{k+1}\in S$, so is $2^{k+1}-1$ by (ii) and thus so is $2^{k+1}-2, 2^{k+1}-3,...,2^{k+1}-(2^k-1)$. This last value is nothing more than
$$2^{k+1}-(2^k-1)=2^{k+1}-2^k+1=2^{k}(2-1)+1=2^k+1$$
And since we know $2^k\in S$ then every integer in between $2^k$ and $2^{k+1}$ is now also in $S$. Thus, for all natural numbers $k$, all integers are in $S$ which means finally that $S=\mathbb{N}$.
I've never done an induction proof like this before, so I was challenging myself to understand the logic of why it to be true and I think I succeeded, but there's a nagging feeling that I'm not using my assumptions in the correct manner, so I'm thinking that this line of reasoning and logic is wrong. Can anyone please take a look and see if I'm right or my logic is faulty?
In the base case, you say: “Then by (ii), $1\in S$.” Unfortunately, (ii) only applies to $k\ge2$.
The base case should actually be two steps, as follows. Take $k_{\rm (i)}=1$, so (i) guarantees $2\in S$. Now take $k_{\rm (ii)}=2$, so (ii) guarantees $2-1=1\in S$.
Now proceed! You have a good handle on how induction works; the rest is perfect.