Let M,N be real smooth manifolds and p:M-->N a smooth map. Then smooth functions on M form a module over the ring of smooth functions on N (via pullback). Is it know whether this module is flat when p is a submersion? Recall that flatness is equivalent to the following: whenever h<sub>1</sub> ... h<sub>k</sub> are smooth functions on N and g<sub>1</sub> ... g<sub>k</sub> are smooth functions on M such that: h<sub>1</sub>g<sub>1</sub> + ... + h<sub>k</sub>g<sub>k</sub> = 0 (as function on M) then there are functions G<sub>1</sub> ... G<sub>r</sub> on M and a<sub>i,j</sub> on N such that: g<sub>i</sub>= Σ<sub>j</sub> a<sub>i,j</sub>G<sub>j</sub> for all i and Σ<sub>i</sub> h<sub>i</sub> a<sub>i,j</sub>= 0 for all j. Some remarks: - This condition of flatness is equivalent to the usual one (see the comments below). - It is known that the inclusion of an open subset into N is flat since smooth functions on an open U are obtained from the smooth functions on N by localizing w.r.t. functions vanishing nowhere on U. - It is also known that a smooth flat map has to be open. Proofs of both of these facts can be found for example in the book: Gonzales, Salas, C^\infty differentiable spaces, Lecture notes in Mathematics, Springer 2000. - The equational condition of flatness I gave above seems to be the most reasonable thing to use trying to come up with a proof. But considering already the simplest situation here's what gets me stuck: suppose you want to check flatness of the standard projection of R^2 to R (by R I mean the reals), and consider the case of just one h(x) and g(x,y) such that hg=0. If you take h(x) to be a smooth function strictly positive for x<0 and 0 for x\geq 0, then the flatness condition translates into: Any smooth function g(x,y) vanishing on the half plane x\leq 0 admits a "factorization": g(x,y)=Σ<sub>j</sub> a<sub>j</sub>(x)G<sub>j</sub>(x,y) where the a<sub>j</sub>(x) are smooth functions vanishing on x\leq 0. (No restrictions on the G<sub>j</sub> except smoothness). Anyone has an idea how to prove this, or knows how to come up with a counter example?