Complete reducibility of a Lie algebra $\mathfrak{g}$ and splitting of short exact sequence of $\mathfrak{g}$-modules. Suppose that $\mathfrak{g}$ is a semisimple Lie algebra. By Weyl's theorem on complete reducibility, $\mathfrak{g}$ is completely reducible. Now my book says that the following is equivalent:
For every submodule $\mathfrak{a}$ with complementary submodule $\mathfrak{b}$, the short exact sequence 
$$
0\to \mathfrak{a}\to\mathfrak{b}\underbrace{\to}_{p}\mathfrak{c}\to0
$$
splits, so there exists a $\mathfrak{g}$-module homomorphism $\varphi:\mathfrak{c}\to\mathfrak{b}$ such that $p\circ\phi=I_{\mathfrak{c}}$. They do not state a reason why this holds. How can we see it?
 A: As mentioned in the comments (and as you can see below), this is a general fact about all kinds of modules not just modules for Lie algebras. :)
Complete reducibility says that any module is a direct sum of irreducible submodules. This is equivalent to that statement that any submodule has a complement. [Why? Let $M$ be a module. Suppose every submodule has a complement, take any proper submodule $N$. It has a complement $N'$. Inductively decompose $N$ and $N'$ into irreducibles. Now put these decompositions together and you've decomposed $M$ into irreducibles. Conversely, suppose reducibility of your module. Take a submodule $N$. Every irreducible submodule of the whole module is either completely contained in $N$ or not. The irreducibles contained in $N$ form its decomposition. The irreducibles not contained in $N$ form a complement for $N$.]
Now to connect with the split sequence statement.
Suppose that every short exact sequence is split. Say $0\rightarrow\mathfrak{a}\stackrel{f}{\rightarrow}\mathfrak{b}\stackrel{p}{\rightarrow}\mathfrak{c}\rightarrow 0$ is split by $\mathfrak{c}\stackrel{\varphi}{\rightarrow}\mathfrak{b}$. Then $f$ is injective and $p$ is surjective. $f(\mathfrak{a})  \oplus \varphi(\mathfrak{c}) = \mathfrak{b}$. Why? Suppose $x \in \mathfrak{b}$ and consider $y=b-\varphi(p(b))$. Notice that $p(y)=p(b)-p(\varphi(p(b)))=p(b)-p(b)=0$ since $p\circ\varphi$ is the identity. Thus $y$ is in the kernel of $p$ hence in the image of $f$. Thus $y=f(a)$ for some $a \in \mathfrak{a}$. This means that $b=y+\varphi(p(b))=f(a)+\varphi(p(b)) \in f(\mathfrak{a})+\varphi(\mathfrak{c})$. Suppose $b\in f(\mathfrak{a}) \cap \varphi(\mathfrak{c})$. Then $b=f(a)$ for some $a \in\mathfrak{a}$ and $b=\varphi(c)$ for some $c \in \mathfrak{c}$. But then $c = p(\varphi(c))=p(b)=p(f(a))=0$ (because $p\circ\varphi$ is the identity and our sequence is exact at $\mathfrak{b}$). Thus $b=\varphi(c)=\varphi(0)=0$. So the sum is direct.
Conversely suppose every submodule has a complement. Consider an exact sequence $0\rightarrow\mathfrak{a}\stackrel{f}{\rightarrow}\mathfrak{b}\stackrel{p}{\rightarrow}\mathfrak{c}\rightarrow 0$. Let $\mathfrak{n}=f(\mathfrak{a})=\mathrm{ker}(p)$. This submodule of $\mathfrak{b}$ has a complement, call it $\mathfrak{m}$. Notice that $p$ restricted to $\mathfrak{m}$ is an isomorphism. Why? If $p(m)=0$, then $m \in \mathrm{ker}(p)=\mathfrak{n}$ so $m=0$ (because $\mathfrak{n}$ and $\mathfrak{m}$ are complementary). Thus $p$ is injective (when restricted to $\mathfrak{m}$). Next, $p$ is surjective because our sequence is exact at $\mathfrak{c}$. Take any $y \in \mathfrak{c}$ there is some $x \in \mathfrak{b}$ such that $p(x)=y$. But $x=x'+x''$ for some $x'\in\mathfrak{n}$ and $x''\in\mathfrak{m}$. However, $p(x'')=0+p(x'')=p(x')+p(x'')=p(x)=y$ since $x' \in \mathfrak{n}=\mathrm{ker}(p)$. Thus $p$'s restriction to $\mathfrak{m}$ is onto. This restriction to $\mathfrak{m}$'s inverse is the splitting $\varphi$ that we want. Thus our sequence splits.
