Proposition causal_ase {x y z w : C} (f : x --> y) (g : y --> z) (h1 h2 : z --> w) : h1 =_{f · g} h2 -> g · ⟨h1, identity _⟩ =_{f} g · ⟨h2, identity _⟩. Proof. cbn. intros E. rewrite <- !assoc in E. apply pairing_flip. apply causality_l; [ assumption | ]. rewrite assoc. symmetry. rewrite assoc. symmetry. apply pairing_flip. rewrite <- !assoc. exact E. Qed.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Prelude. Require Import UniMath.CategoryTheory.Limits.Terminal. Require Import UniMath.CategoryTheory.Monoidal.Categories. Require Import UniMath.CategoryTheory.Monoidal.Structure.Cartesian. Require Import UniMath.CategoryTheory.Monoidal.Structure.Symmetric. Require Import UniMath.CategoryTheory.MarkovCategories.MarkovCategory. Require Import UniMath.CategoryTheory.MarkovCategories.Determinism. Require Import UniMath.CategoryTheory.MarkovCategories.AlmostSurely. Require Import UniMath.CategoryTheory.MarkovCategories.Univalence. Import MonoidalNotations.