But a number between 0 and 1 could be arbitrarily close to 0 and 1, which I thought could be proved to be equal to 0 or 1, which are integers. So isn't this not necessarily a contradiction?
But it's showing specifically that the sum lies between the first term s_0 (which is strictly less than 1) and the sum of the first two terms s_0 - s_1 (which is strictly greater than 0). So there's no possibility for it to converge to a value outside of the interval [s_0-s_1,s_0], which is itself strictly contained inside [0,1].
The reason it still works is because it's actually 0 < s_0 < a < s_1 < 1, so even if a approaches s_1 arbitrarily close it still won't be equal to an integer (same is true if it goes arbitrarily close to s_0 of course).