Definition lift_poset_comonad_smash (X Y : pointed_poset_sym_mon_closed_cat) : lift_poset_comonad X ∧* lift_poset_comonad Y --> lift_poset_comonad (X ∧* Y). Proof. simple refine (_ ,, _). - use map_from_smash. + intros x y. induction x as [ x | ] ; induction y as [ y | ]. * refine (inl _). use setquotpr. exact (x ,, y). * exact (inr tt). * exact (inr tt). * exact (inr tt). + abstract (intros [ y₁ | ] [ y₂ | ] ; cbn ; apply idpath). + abstract (intros [ x | ] [ y | ] ; cbn ; apply idpath). + abstract (intros [ x₁ | ] [ x₂ | ] ; cbn ; apply idpath). - use hset_struct_with_smash_map_from_smash. split. + abstract (intros xy₁ xy₂ p ; induction xy₁ as [ x₁ y₁ ] ; induction xy₂ as [ x₂ y₂ ] ; induction x₁ as [ x₁ | ], y₁ as [ y₁ | ], x₂ as [ x₂ | ], y₂ as [ y₂ | ] ; cbn in * ; try (apply tt) ; try (apply p) ; apply hinhpr ; use inr ; exact p ). + abstract (cbn ; apply idpath). Defined.
Require Import UniMath.MoreFoundations.All. Require Import UniMath.OrderTheory.Posets. Require Import UniMath.CategoryTheory.Core.Prelude. Require Import UniMath.CategoryTheory.PrecategoryBinProduct. Require Import UniMath.CategoryTheory.DisplayedCats.Structures.CartesianStructure. Require Import UniMath.CategoryTheory.DisplayedCats.Structures.StructureLimitsAndColimits. Require Import UniMath.CategoryTheory.DisplayedCats.Structures.StructuresSmashProduct. Require Import UniMath.CategoryTheory.DisplayedCats.Examples.PointedPosetStrict. Require Import UniMath.CategoryTheory.Monoidal.WhiskeredBifunctors. Require Import UniMath.CategoryTheory.Monoidal.Categories. Require Import UniMath.CategoryTheory.Monoidal.Functors. Require Import UniMath.CategoryTheory.Monoidal.FunctorCategories. Require Import UniMath.CategoryTheory.Monoidal.Structure.Symmetric. Require Import UniMath.CategoryTheory.Monoidal.Structure.Closed. Require Import UniMath.CategoryTheory.Monoidal.Examples.SmashProductMonoidal. Require Import UniMath.CategoryTheory.Monoidal.Examples.PosetsMonoidal. Require Import UniMath.CategoryTheory.DisplayedCats.Examples.CategoryOfPosets. Require Import UniMath.CategoryTheory.Monads.Comonads. Require Import UniMath.CategoryTheory.Monoidal.Comonoids.Category.