proposition: Lemma is_left_adjoint_post_composition_functor : is_left_adjoint (post_composition_functor C D E F).
proof: Proof. exists (post_composition_functor _ _ _ G). use tpair. - split. + use make_nat_trans. * simpl; intros F'. simpl in F'. apply (nat_trans_comp _ _ _ (nat_trans_comp _ _ _ (nat_trans_functor_id_right_inv F') (pre_whisker F' η)) (nat_trans_functor_assoc_inv _ _ _)). * abstract (intros F1 F2 α; apply (nat_trans_eq D); intro c; simpl in *; now rewrite !id_right, !id_left; apply (nat_trans_ax η (F1 c) _ (α c))). + use make_nat_trans. * simpl; intros F'. simpl in F'. apply (nat_trans_comp _ _ _ (nat_trans_functor_assoc _ _ _) (nat_trans_comp _ _ _ (pre_whisker F' ε) (nat_trans_functor_id_left _))). * abstract (intros F1 F2 α; apply (nat_trans_eq E); intro c; simpl in *; now rewrite !id_right, !id_left; apply (nat_trans_ax ε _ _ (α c))). - abstract (split; simpl; intro F'; [ apply (nat_trans_eq E); simpl; intro c; now rewrite !id_left, !id_right; apply H1 | apply (nat_trans_eq D); simpl; intro c; now rewrite !id_left, !id_right; apply H2]). Defined.
imports: UniMath.Foundations.All UniMath.MoreFoundations.All UniMath.CategoryTheory.Core.Categories UniMath.CategoryTheory.Core.Functors UniMath.CategoryTheory.Core.Isos UniMath.CategoryTheory.Core.NaturalTransformations UniMath.CategoryTheory.Epis UniMath.CategoryTheory.Epis UniMath.CategoryTheory.SplitMonicsAndEpis UniMath.CategoryTheory.Monics UniMath.CategoryTheory.FunctorCategory UniMath.CategoryTheory.whiskering