Finding a smooth function less than some given (positive) continuous function

Let $M$ be a smooth manifold ($dim\ge 1$). Let $f:M\to\mathbb{R}$ be a positive continuous function. Prove there is a smooth map $g\in C^{\infty}(M)$ such that $0<g<f$.

I knew this would involve a partition of unity. I took a locally finite cover of $M$ by precompact open sets ${\bf U}=\{U_i\}_{i\in I}$. Since $f$ is continuous I know $f$ attains a minimum on each ${\rm cl}(U_i)$, say at $x_i$, and that this minimum is still positive. So I defined maps $g_i: U_i\to\mathbb{R}$ given as a constant maps: $g_i(x)=\epsilon_i$, where $\epsilon_i$ is chosen to be $0<\epsilon_i<f(x_i)$. But each $x\in M$ is contained in only finitely many $U_i$, so I defined $h(x)=\min{\{g_i(x)\;|\; x\in U_i\}}$. Now I take a partition of unity $\{\psi_i:M\to\mathbb{R}\}_{i\in I}$ subordinate to ${\bf U}$. My thinking is to smoothly stitch together these constant maps... but I'm not sure what to do from here. Should I define $g(x)=\sum_{i\in I}{\psi_i(x)\,h(x)}$? I know each of these sums will be finite because $supp(\psi_i)\subseteq U_i$, but does this function actually do what I want it to? I thought at first it would, but now it just looks like I'm multiplying by $1$ in a really fancy way...

• The stitching together to make h a smooth function is tricky, since taking a min of smooth functions doesn't give you a smooth function. Otherwise, what you are doing is reasonable. I'd personally take a good cover of $M$ by coordinate charts so I could do the smoothing in $\mathbb{R}^n$, for simplicity. – Sam Lisi Oct 5 '11 at 19:26

Do not start by fixing a covering ${\bf U}=\{U_i\}_{i\in I}$ of $M$ ! Here is how you might proceed.
For each $m\in M$ choose an open neigbourhood $U_m$ of $m$ and a constant $\epsilon _m\gt0$ with $\epsilon_m \lt f$ on $U_m$.
Then choose a partition of unity $(\phi _m)_{m\in M}$ subordinate to the covering $\mathcal U=(U_m)_{m\in M}$.
The map $g=\sum\limits_{m\in M} \epsilon_m \phi _m$ is of class $\mathcal C^\infty$ and satisfies, as required, $0\lt g\lt f$. That's all.
Warning I think the apparent difficulty of this exercise comes from the common misconception that if you have an open covering $(U_i)_{i\in I}$ of a paracompact manifold and you want a subordinate partition of unity $(\phi_i)_{i\in I}$, then you should impose something on the covering, like being locally finite or denumerable, or on the $U_i$'s, like being relatively compact.
This is actually not necessary at all: the $\phi_i$'s always exist, they are $\geq 0$, their supports form a locally finite collection of closed sets $supp(\phi_i)\subset U_i$ [even if the initial covering $(U_i)_{i\in I}$ was $not$ locally finite!] and of course $\sum\limits_{i\in I} \phi_i=1$.