proposition: Proposition is_functor_terminal_functor : is_functor terminal_functor_data.
proof: Proof. split. - intros x ; cbn. apply maponpaths. use (TerminalArrowEq (T := terminal_in_fib T x)). - intros x y z f g ; cbn. apply maponpaths. unfold terminal_mor_lift. cbn. rewrite mor_disp_transportf_postwhisker. rewrite mor_disp_transportf_prewhisker. rewrite transport_f_f. etrans. { apply maponpaths. use (terminal_mor_factorization_eq (idpath _) _ _ (TerminalArrow (lift_terminal_in_fib T f) (terminal_obj_in_fib T x) ;; HD y x f (terminal_obj_in_fib T y) ;; (TerminalArrow (lift_terminal_in_fib T g) (terminal_obj_in_fib T y) ;; HD z y g (terminal_obj_in_fib T z)))%mor_disp). refine (maponpaths (λ z, _ · z) (!(id_left _)) @ _). apply maponpaths_2. exact (!(id_left _)). } unfold transportb. rewrite transport_f_f. apply maponpaths_2. apply homset_property. Qed.
imports: UniMath.Foundations.All UniMath.MoreFoundations.All UniMath.CategoryTheory.Core.Prelude UniMath.CategoryTheory.Adjunctions.Core UniMath.CategoryTheory.DisplayedCats.Core UniMath.CategoryTheory.DisplayedCats.Univalence UniMath.CategoryTheory.DisplayedCats.Total UniMath.CategoryTheory.DisplayedCats.Functors UniMath.CategoryTheory.DisplayedCats.NaturalTransformations UniMath.CategoryTheory.DisplayedCats.Fibrations UniMath.CategoryTheory.DisplayedCats.Fiber UniMath.CategoryTheory.Limits.Terminal UniMath.CategoryTheory.Limits.Preservation