I recently started working my way through Rudin's Principles of Mathematical Analysis (3rd Edition) in my own time, and I'm having a few problems in the first chapter with some of the finer points of Rudin's proof of the density of the rationals in the real numbers. I don't currently have anyone at hand offline to help me with this, so I would be very grateful for some help.

I'll just briefly outline the form of the theorem and (most of) the proof, since it's so short.

Basically, we're given real numbers x,y with y > x, and we want to show we can construct a rational number between x and y, (using the Archimedean property and the L.U.B property).

The proof starts with the Archimedean property being used to produce a positive integer n such that n(y - x) > 1.

The next step involves using the Archimedean property again to find lower and upper bounds for nx, i.e positive integers m1 and m2 are introduced such that m1 > nx and m2 > -nx, leading to the inequality

-m2 < nx < m1

The next sentence states 'Hence there is an integer m (with -m2 <= m <= m1) such that m - 1 <= nx < m.'

(The remainder of the proof just combines the first and last inequalities and divides through by n to get x < m/n < y).

My problem is that I don't see how producing the bounds on nx justifies the conclusion that nx is between (or coincides with the smallest of) two consecutive integers. Perhaps the idea is that given an upper bound like m1 we can simply subtract 1 a finite number of times (since we'll eventually reach -m2) until we either reach nx or something smaller than it, whereupon we'll have the pair m -1, m such that m - 1 <= nx < m? That's my best guess, but I'm not really convinced it's right. It just seems as though a little bit is missing from that part of the proof. I understand this is par for the course with PoMA, and that's fine, except that I'm unsure how to fill in the gap.

I don't feel as though I've explained my misunderstanding very well. It's just that given the content of the proof, I don't see why the desired m isn't produced straight away by noting that ny - nx > 1 implies there's an integer between ny and nx, since it seems to rest on the assumption that consecutive integers are separated by 1 unit, which as far as I can tell is the same assumption employed later to get m by a more circuitous route. Obviously I'm missing something, since if the stuff with the extra bounds was redundant it wouldn't be in there.