Any invertible matrix can be written as a product of elementary matrices (row-switching, row-multiplying and row-addition). Is there a similar concept for diffeomorphisms from $\mathbb{R}^n$ to $\mathbb{R}^n$? I'm looking for "elementary diffeomorphisms" analogous to elementary matrices that can be composed to generate any diffeomorphism. My hypothesis is that the following "elementary diffeomorphisms" would be enough to generate any diffeomorphism:
Permutation of components (analogous to row-switching) of the form
$$a(x_1, x_2, x_3) = (x_2, x_1, x_3)$$
Element-wise rescaling (analogous to row-scaling) of the form
$$a(x_1, x_2, x_3) = (x_1, b(x_2), x_3)$$
where $b$ is a diffeomorphism from $\mathbb{R}$ to $\mathbb{R}$.
Pairwise mixing (analogous to row-addition) of the form
$$a(x_1, x_2, x_3) = (c(x_1, x_2), x_2, x_3)$$
such that the map $(x_1, x_2) \mapsto (c(x_1, x_2), x_2)$ is a diffeomorphism.
Any thoughts on how to prove/disprove this? Any references that could be helpful?
I'm just realizing now that the third type actually includes the second type, so I suspect only the first and third types are sufficient.