My degree is in mathematics. This is not how these notations are usually defined rigorously.
The most common way to do it starts from sequences of real numbers, then limits of sequences, then sequences of partial sums, then finally these notations turn out to just represent a special kind of limit of a sequence of partial sums.
If you want a bunch of details on this read further:
A sequence of real numbers can be thought of as an ordered nonterminating list of real numbers. For example: 1, 2, 3, … or 1/2, 1/3, 1/4, … or pi, 2, sqrt(2), 1000, 543212345, … or -1, 1, -1, 1, … Formally a sequence of real numbers is a function from the natural numbers to the real numbers.
A sequence of partial sums is just a sequence whose terms are defined via finite sums. For example: 1, 1+2, 1+2+3, … or 1/2, 1/2 + 1/4, 1/2 + 1/4 + 1/8, … or 1, 1 + 1/2, 1 + 1/2 + 1/3, … (do you see the pattern for each of these?)
The notion of a limit is sort of technical and can be found rigorously in any calculus book (such as Stewart’s Calculus) or any real analysis book (such as Rudin’s Principles of Mathematical Analysis) or many places online (such as Paul’s Online Math Notes). The main idea though is that sometimes sequences approximate certain values arbitrarily well. For example the sequence 1, 1/2, 1/3, 1/4, … gets as close to 0 as you like. Notice that no term of this sequence is actually 0. As another example notice the terms of the sequence 9/10, 9/10 + 9/100, 9/10 + 9/100 + 9/1000, … approximate the value 1 (try it on a calculator).
I want to stop here to make an important distinction. None of the above sequences are real numbers themselves because lists of numbers (or more formally functions from N to R) are not the same thing as individual real numbers.
Continuing with the discussion of sequences approximating numbers, when a sequence, call it A, approximates some number L, we say “A converges”. If we want to also specify the particular number that A converges to we say “A converges to L”. We give the number L a special name called “the limit of the sequence A”.
Notice in particular L is just some special real number. L may or may not be a term of A. We have several examples of sequences above with limits that are not themselves terms of the sequence. The sequence 0, 0, 0, … has as its limit the number 0 and every term of this sequence is also 0. The sequence 0, 1, 0, 0, … where only the second term is 1, has limit 0 and some but not all of its terms are 0.
Suppose we define a sequence a1, a2, a3, … where each of the an numbers is one of the numbers from 0, 1, 2, 3, 4, 5, 6, 7, 8 or 9. It can be shown that any sequence of the form a1/10, a1/10 + a2/100, a1/10 + a2/100 + a3/1000, … converges (it is too technical for me to show this here but this is explained briefly in Rudin ch 1 or Hrbacek/Jech’s Introduction To Set Theory).
As an example if each of the an values is 1 our sequence of partial sums above simplifies to 0.1,0.11,0.111,… if the an sequence is 0, 2, 0, 2, … our sequence of partial sums is 0.0, 0.02, 0.020, 0.0202, …
We define the notation 0 . a1 a2 a3 … to be the limit of the sequence of partial sums a1/10, a1/10 + a2/100, a1/10 + a2/100 + a3/1000, … where the an values are all chosen as mentioned above. This limit always exists as specified above also.
In particular 0 . a1 a2 a3 … is just some number and it may or may not be distinct from any term in the sequence of sums we used to define it.
When each of the an values is the same number it is possible to compute this sum explicitly. See here (where a=an, r=1/10 and subtract 1 if necessary to account for the given series having 1 as its first term).
So by definition the particular case where each an is 9 gives us our definition for 0.999…
To recap: the value of 0.999… is essentially just whatever value the (simplified) sequence of partial sums 0.9, 0.99, 0.999, … converges to. This is not necessarily the value of any one particular term of the sequence. It is the value (informally) that the sequence is approximating. The value that the sequence 0.9, 0.99, 0.999, … is approximating can be proved to be 1. So 0.999… = 1, essentially by definition.
That it repeats forever, to no end. Because it can never actually be correct, just that the difference becomes insignificant.
Numbers are not their notations.
My degree is in mathematics. This is not how these notations are usually defined rigorously.
The most common way to do it starts from sequences of real numbers, then limits of sequences, then sequences of partial sums, then finally these notations turn out to just represent a special kind of limit of a sequence of partial sums.
If you want a bunch of details on this read further:
A sequence of real numbers can be thought of as an ordered nonterminating list of real numbers. For example: 1, 2, 3, … or 1/2, 1/3, 1/4, … or pi, 2, sqrt(2), 1000, 543212345, … or -1, 1, -1, 1, … Formally a sequence of real numbers is a function from the natural numbers to the real numbers.
A sequence of partial sums is just a sequence whose terms are defined via finite sums. For example: 1, 1+2, 1+2+3, … or 1/2, 1/2 + 1/4, 1/2 + 1/4 + 1/8, … or 1, 1 + 1/2, 1 + 1/2 + 1/3, … (do you see the pattern for each of these?)
The notion of a limit is sort of technical and can be found rigorously in any calculus book (such as Stewart’s Calculus) or any real analysis book (such as Rudin’s Principles of Mathematical Analysis) or many places online (such as Paul’s Online Math Notes). The main idea though is that sometimes sequences approximate certain values arbitrarily well. For example the sequence 1, 1/2, 1/3, 1/4, … gets as close to 0 as you like. Notice that no term of this sequence is actually 0. As another example notice the terms of the sequence 9/10, 9/10 + 9/100, 9/10 + 9/100 + 9/1000, … approximate the value 1 (try it on a calculator).
I want to stop here to make an important distinction. None of the above sequences are real numbers themselves because lists of numbers (or more formally functions from N to R) are not the same thing as individual real numbers.
Continuing with the discussion of sequences approximating numbers, when a sequence, call it A, approximates some number L, we say “A converges”. If we want to also specify the particular number that A converges to we say “A converges to L”. We give the number L a special name called “the limit of the sequence A”.
Notice in particular L is just some special real number. L may or may not be a term of A. We have several examples of sequences above with limits that are not themselves terms of the sequence. The sequence 0, 0, 0, … has as its limit the number 0 and every term of this sequence is also 0. The sequence 0, 1, 0, 0, … where only the second term is 1, has limit 0 and some but not all of its terms are 0.
Suppose we define a sequence a1, a2, a3, … where each of the an numbers is one of the numbers from 0, 1, 2, 3, 4, 5, 6, 7, 8 or 9. It can be shown that any sequence of the form a1/10, a1/10 + a2/100, a1/10 + a2/100 + a3/1000, … converges (it is too technical for me to show this here but this is explained briefly in Rudin ch 1 or Hrbacek/Jech’s Introduction To Set Theory).
As an example if each of the an values is 1 our sequence of partial sums above simplifies to 0.1,0.11,0.111,… if the an sequence is 0, 2, 0, 2, … our sequence of partial sums is 0.0, 0.02, 0.020, 0.0202, …
We define the notation 0 . a1 a2 a3 … to be the limit of the sequence of partial sums a1/10, a1/10 + a2/100, a1/10 + a2/100 + a3/1000, … where the an values are all chosen as mentioned above. This limit always exists as specified above also.
In particular 0 . a1 a2 a3 … is just some number and it may or may not be distinct from any term in the sequence of sums we used to define it.
When each of the an values is the same number it is possible to compute this sum explicitly. See here (where a=an, r=1/10 and subtract 1 if necessary to account for the given series having 1 as its first term).
So by definition the particular case where each an is 9 gives us our definition for 0.999…
To recap: the value of 0.999… is essentially just whatever value the (simplified) sequence of partial sums 0.9, 0.99, 0.999, … converges to. This is not necessarily the value of any one particular term of the sequence. It is the value (informally) that the sequence is approximating. The value that the sequence 0.9, 0.99, 0.999, … is approximating can be proved to be 1. So 0.999… = 1, essentially by definition.