proposition: Lemma proj_left_left {x y z} : proj_left ∘ proj_left ≈ @proj_left _ _ _ x (y ⨂ z) ∘ tensor_assoc.
proof: Proof. unfold proj_left; normal. rewrite <- !comp_assoc. rewrite (comp_assoc _ unit_right). rewrite to_unit_right_natural; normal. rewrite <- !comp_assoc. apply compose_respects; [reflexivity|]. rewrite bimap_triangle_right. rewrite <- comp_assoc. rewrite <- to_tensor_assoc_natural. rewrite comp_assoc. apply compose_respects; [|reflexivity]. normal. apply bimap_respects; [reflexivity|]. apply unit_terminal. Qed.
imports: Category.Lib Category.Theory.Category Category.Theory.Isomorphism Category.Theory.Functor Category.Functor.Bifunctor Category.Structure.Monoidal Category.Structure.Monoidal.Proofs Category.Structure.Monoidal.Semicartesian