I'm reading Dwyer-Spalinski's Homotopy theories and model categories, and when they define homotopy pushouts there is one point in the definition of model category that isn't checked, and doesn't seem so obvious.
Let $D$ be the category $a\leftarrow b \to c$, and $C$ a model category, they define :
Let $f:X\to Y$ be a morphism in $C^D$, then let $\partial_a(f)$ be the pushout of
$\require{AMScd} \begin{CD} X(b) @>>> X(a)\\ @V{f_b}VV @VVV\\ Y(b) @>>> \partial_a(f) \end{CD}$
Then we obviously get a map $\partial_a(f) \to Y(a)$, which we call $i_a(f)$. We define $\partial_c(f)$ and $i_c(f)$ similarly; and let $\partial_b(f) = Y(b), i_b(f) = f_b$.
Then define on $C^D$ a weak equivalence to be a pointwise weak equivalence, a fibration to be a pointwise fibration, and a cofibration to be an $f$ such that $i_a(f),i_b(f)$ and $i_c(f)$ are cofibrations in $C$.
Then they check the axioms for a model category, but never check that all these classes of maps are closed under composition ! Now obviously weak equivalences and fibrations are, because they're pointwise, but for cofibrations it's not that easy
So my question is :
Why are cofibrations on $C^D$ closed under composition ?
I thought it would be obvious as they didn't check it, and so tried to write the appropriate diagram, but it didn't work. We get something like :
$\require{AMScd} \begin{CD} X(b) @>>> X(a)\\ @V{f_b}VV @VVV\\ Y(b) @>>> \partial_a(f) \\ @V{id}VV @V{i_a(f)}VV \\ Y(b) @>>> Y(a)\\ @V{g_b}VV @VVV \\ Z(b) @>>> \partial_a(g) \end{CD}$
where $f:X\to Y, g:Y\to Z$. All vertical maps displayed are cofibrations by hypothesis, and by stability under pushout of cofibrations, and we have very little information about the horizontal ones.
Then clearly we get a map $\partial_a(g\circ f)\to \partial_a(g)$, and if we prove it's a cofibration then we are done, because clearly $i_a(g\circ f)$ is the composite of this map and $i_a(g)$, but I can't really see why this map should be a cofibration.
The map $X(a)\to \partial_a(g\circ f)$ is one, and so if cofibrations had the 2-out-of-3 property, we could get that the map $\partial_a(g\circ f)\to \partial_a(g)$ does too because there's a factorization, but of course they don't in general.
For any class $R$ of maps in a category $\mathcal C$, define $$ \operatorname{LLP}(R) = \{ f \text{ map in } \mathcal C \mid \forall r\in R, f \text{ has the left lifting property relatively to } r\} $$
The proof is just a matter of lifting in two stages.
Now in your case, by definition, the trivial fibrations are the pointwise trivial fibrations. Because "they check the [other] axioms for a model category", they must prove at some point that the cofibrations lift on the left relatively to the trivial fibrations. In other words, they prove $C \subseteq \operatorname{LLP}(F\cap W)$ (where $C,F,W$ denote respectively the class of cofibrations, fibrations and weak equivalences). So you are done if you prove the reversed inclusion. Let me use the notation $(h_a,h_b,h_c)$ for maps between diagrams. Then for a map $f\in \operatorname{LLP}(F\cap W)$,