proposition: Lemma bimap_id_left_right {F : C ∏ D ⟶ E} {w} `(f : z ~{D}~> w) `(g : x ~{C}~> y) : bimap id f ∘ bimap g id ≈ bimap g f.
proof: Proof. unfold bimap. rewrite <- fmap_comp. apply fmap_respects. split; simpl; cat. Qed.
imports: Category.Lib Category.Theory.Category Category.Theory.Isomorphism Category.Theory.Functor Category.Construction.Product