Approximating continuous functions via diffeomorphisms on compact manifolds Let $M$ be a compact and connected manifold without boundary.
My question is how to prove the following fact which I believe is true:
If $f : M \to \mathbb{R}$ is a continuous function that attains the values $a < b$, then for any $c\in [a,b]$ and any $1\leq p<\infty$, there is diffeomorphism $\varphi : M\to M$ such that $f \circ \varphi$ is close to $c$ in the $L^p(M)$ norm.
 A: The answer to the last question follows from the following result:

Theorem. If $f:\mathcal{M}\to\mathbb{R}$ is a continuous function on a smooth compact connected manifold without boundary and if
$$
\inf_{\mathcal{M}} f\leq c\leq \sup_{\mathcal{M}} f,
$$
then for any $1\leq p<\infty$ and any $\varepsilon>0$ there is a diffeomorphism $\varphi:\mathcal{M}\to\mathcal{M}$ such that
$$
\Vert f\circ\varphi -c\Vert_p<\varepsilon.
$$

Proof.
It follows from the existence of a triangulation of $\mathcal{M}$ that there is a smooth mapping
$$
p:\overline{B}^n\to\mathcal{M}
$$
defined on the closed unit ball such that $p$ is a diffeomorphism in the interior $B^n$ of $\overline{B}^n$ and that $p(\partial B^n)$ is contained in the $(n-1)$-dimensional skeleton of $\mathcal{M}$. We obtain $p$ by expanding one cell of a trianglation of $\mathcal{M}$ by pushing adjacent cells to their boundaries.
Clearly there is $x_0$ such that
$f(x_0)=c$. We can assume that $x_0$ is not in the $(n-1)$-skeleton of $\mathcal{M}$ so that $x_0=p(y_0)$ for some $y_0\in B^n$.
Fix $\eta>0$. Let $X$ be a smooth vector field in $B^n$ radially emerging from $y_0$ and  vanishing in a neighborhood $U$ of $\partial B^n$ that has measure $|U|<\eta/2$. Let $\Phi_t$ be the flow generated by $X$ so $\Phi_t=\operatorname{id}$ in $U$. Then for any $\delta>0$,
$$
|B^n\setminus\Phi_t(B^n(y_0,\delta))|<\eta
$$
provided $t$ is sufficiently large. Indeed, $B^n\setminus B^n(y_0,\delta)$ will be pushed towards $U$ that has measure less than $\eta/2$.
Now we push forward the family of diffeomorphisms to $\mathcal{M}$ by the formula
$$
\Psi_t(x)=
\begin{cases}
p(\Phi_t(p^{-1}(x))), & x\in p(B^n),\\
x & x\in p(\partial B^n).
\end{cases}
$$
This is a well defined family of diffeomorphisms that is identity in $p(U)$ which is a small neighborhood of the $(n-1)$-dimensional set $p(B^n)$.
The diffeomorphisms $\Psi_t$ expand tiny neighborhoods of $x_0$ towards the small set $p(U)$. Thus for $t$ sufficiently large, the function $f\circ \Psi_t^{-1}$ is very close in the uniform norm to $f(x_0)=c$ except on a set of a very small measure (a tiny neighborhood of $p(\partial B^n)$ and we can guarantee by taking small $\eta$ and large $t$ that
$$
\Vert f\circ\Phi_t^{-1}-c\Vert_p<\varepsilon.
$$
