Why do we have two theorems one for the density of $C^{\infty}\_c(\mathbb{R}^n)$ in $L^p(\mathbb{R}^n)$ and one for the density of $C^{\infty}\_c(\Omega)$ in $L^p(\Omega)$? with $\Omega$ an open subset of $\mathbb{R}^n$.


Why not just the second one?


I was asked by the prof what is the difference between the density of $C(\Omega)$ and $C(\mathbb{R}^n)$ but all I found when checking the demonstrations is that we take $\Omega \neq \mathbb{R}^n$ when giving the proof for the second theorem because for $\Omega = \mathbb{R}^n$ we already have the first theorem.



Why do we have two theorems when one implies the other?
Some mathematicians seem to agree with you, and strive only to state and prove the most general versions of their theorems. I've had co-authors express that view. And I've sometimes had referee reports on my papers state this philosophical perspective explicitly, objecting to a warm-up theorem that I stated and proved early in the paper, even though later I proved harder, more general results. Earlier in my career, against my own judgement I would dutifully remove the objectionable warm-up presentations (and I did so even in what became one my most highly cited papers), but no longer.


I strongly disagree with the objection. I don't agree that one should seek to present only the most general forms of one's theorems. Rather, there is a definite value in proving easier or more concrete results first, even when one intends to move on to prove more encompassing results later. Indeed, I would say that often the main value of a theorem is concentrated in an easier, less general principal case.


The simpler results often aid in mathematical insight. Unencumbered with unnecessary generality or abstraction, they are often simply easier to understand, yet still illustrate the main idea clearly. Removing even a small generalization, such as restricting to $n=2$ or simplifying from an arbritrary real-like space $\Omega$ to the reals $\mathbb{R}$, can dramatically improve understanding, especially on your reader's first engagement with your argument. The reason is that every generalization, even very small ones, contributes yet another layer of difficulty and abstraction, contributing to the cognitive load that can make a difficult proof impenetrable.


On the first pass, it can often be best to focus on a simple, main case, which highlights the core ideas without unnecessary distractions. Once one has mastered such a case, then one has often thereby developed a familiarity of understanding of the core idea or technique of the argument, a framework of understanding capable of supporting a deeper understanding of the more general result. Having the easy case first makes the difficult case much easier to master. Indeed, often the key ideas of an argument have only to do with the special case in the first instance, and the generalizing steps are routine — all the more reason to omit them at first.


So this is not just for pedagogy, although certainly students new to a topic will appreciate mastering the easier versions of a theorem first. My point is that the practice is also important for experts, at every level of expertise. One gains ultimately a deeper understanding of the general result, when one sees how the core ideas and methods generalize those in a simpler case.


The same goes for mathematics talks. At conferences or seminars, please consider begining your talk with an easier special case that illustrates the theme or methods of your more general, advanced results. Your audience will definitely appreciate it.


So I have no problem with having two theorems, one of them implying the other, and I would find that to be a very sound way of proceeding in mathematics.


