Can one exchange fibre and base space in a fibre bundle? The first trivial example of a fibre bundle $E$ is a product bundle $E=F \times B$, with fibre $F$ and base space $B$. Of course in this trivial example, one can exchange base space and fibre and think of the product bundle $E$ as a fibre bundle with fibre $B$ and base space $F$.
Under which necessary conditions can one exchange fibre and base space, i.e. regard $E$ as an $F$-bundle over $B$ as a $B$-bundle over $F$?
It seems that when one has a flat connection, one "knows" how to move from fibre to fibre (that is, from $F_x$ to $F_y$) and makes sure that one ends up in the same place after a small loop. When global loops also end up in the same spot and not on the other side of the fibre (i.e. the holonomy is not just discrete, but trivial), then it looks like given any point in the fibre, one can trace out the base space $B$, i.e. one could interpret $E$ as a $B$-bundle over $F$.
So, is a flat $F$-bundle over $B$ with trivial holonomy also a $B$-bundle over $F$? If not, could someone provide a counter-example?
 A: Yes, the total space $E$ of a flat bundle with trivial holonomy is naturally a product (assuming the base and fibre are connected smooth manifolds): Fix an arbitrary point $b_{0}$ of the base, and an arbitrary point $f_{0}$ in the fibre over $b_{0}$. For each point $b$ in $B$, choose a path $\gamma$ from $b_{0}$ to $b$. There is a unique covariantly-constant lift $\sigma_{0}$ over $\gamma$, and because the holonomy is trivial, the value $\sigma_{0}(b)$ is independent of $\gamma$ (i.e., depends only on $b_{0}$ and $b$). The set of all values of covariantly-constant sections with $\sigma_{0}(b_{0}) = f_{0}$ defines a section $\sigma_{0}:B \to E$ whose image is diffeomorphic to $B$ under the projection $p:E \to B$.
Because $f_{0}$ was arbitrary, each point of $E$ lies on a covariantly-constant section, and every section hits the fibre $F$ exactly once. The map $B \times F \to E$ that sends $(b, f_{0})$ to $\sigma_{0}(b)$ is easily checked to be a diffeomorphism. The inverse map sends an arbitrary point $f$ to $(p(f), \sigma_{0}^{-1}(f))$; in other words, the first coordinate is the bundle projection, and the second coordinate is the unique $f_{0}$ in the fibre over $b_{0}$ for which $\sigma_{0}(b) = f$.
