proposition: Lemma is_omega_cont_hat_exp_functor_list'_optimized (xst : list (list sort × sort) × sort) : is_omega_cont (hat_exp_functor_list'_optimized xst).
proof: Proof. induction xst as [xs t]. revert t. induction xs as [[|n] xs]. - induction xs. intro t. use nat_z_iso_preserve_ωlimits. 3: apply nat_z_iso_inv, constant_functor_composition_nat_z_iso. apply is_omega_cont_constant_functor. - induction n as [|n IH]. + induction xs as [m []]. change (1,, m,, tt) with (cons m nil). intro t. unfold hat_exp_functor_list'_optimized. rewrite foldr1_map_cons_nil. apply is_omega_cont_hat_exp_functor_list'_piece. + induction xs as [m [k xs]]. intro t. assert (IHinst := IH (k,,xs) t). change (S (S n),, m,, k,, xs) with (cons m (cons k (n,,xs))). unfold hat_exp_functor_list'_optimized. rewrite foldr1_map_cons. change (S n,, k,, xs) with (cons k (n,,xs)) in IHinst. unfold hat_exp_functor_list'_optimized in IHinst. apply is_omega_cont_BinProduct_of_functors. * apply is_omega_cont_hat_exp_functor_list'_piece. * exact IHinst. Defined.
imports: UniMath.Foundations.All UniMath.MoreFoundations.All UniMath.Combinatorics.Lists UniMath.CategoryTheory.Core.Categories UniMath.CategoryTheory.Core.NaturalTransformations UniMath.CategoryTheory.Core.Functors UniMath.CategoryTheory.Core.Isos UniMath.CategoryTheory.FunctorCategory UniMath.CategoryTheory.whiskering UniMath.CategoryTheory.Limits.Graphs.Limits UniMath.CategoryTheory.Limits.Graphs.Colimits UniMath.CategoryTheory.Limits.BinProducts UniMath.CategoryTheory.Limits.Products UniMath.CategoryTheory.Limits.BinCoproducts UniMath.CategoryTheory.Limits.Coproducts UniMath.CategoryTheory.Limits.Terminal UniMath.CategoryTheory.Limits.Initial UniMath.CategoryTheory.FunctorAlgebras UniMath.CategoryTheory.exponentials UniMath.CategoryTheory.Adjunctions.Core UniMath.CategoryTheory.Chains.All UniMath.CategoryTheory.Monads.Monads UniMath.CategoryTheory.Categories.HSET.Core UniMath.CategoryTheory.Categories.HSET.Limits UniMath.CategoryTheory.Categories.HSET.Colimits UniMath.CategoryTheory.Categories.HSET.Structures UniMath.CategoryTheory.Categories.StandardCategories UniMath.CategoryTheory.Groupoids UniMath.SubstitutionSystems.Signatures UniMath.SubstitutionSystems.SumOfSignatures UniMath.SubstitutionSystems.BinProductOfSignatures UniMath.SubstitutionSystems.MultiSorted_alt UniMath.CategoryTheory.Chains.OmegaContFunctors UniMath.SubstitutionSystems.ContinuitySignature.GeneralLemmas UniMath.SubstitutionSystems.ContinuitySignature.CommutingOfOmegaLimitsAndCoproducts