Definition monad_dist_laws (a : T ∙ S ⟹ S ∙ T) := (((∏ x : C, η S (T x) · a x = #T (η S x)) × (∏ x : C, #S (η T x) · a x = η T (S x))) × (∏ x : C, a (T x) · #T (a x) · μ T (S x) = #S (μ T x) · a x)) × (∏ x : C, #S (a x) · a (S x) · #T (μ S x) = μ S (T x) · a x).
Require Import UniMath.Foundations.PartD. Require Import UniMath.Foundations.Propositions. Require Import UniMath.Foundations.Sets. Require Import UniMath.MoreFoundations.Tactics. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.CategoryTheory.Core.Isos. Require Import UniMath.CategoryTheory.Core.Functors. Require Import UniMath.CategoryTheory.Core.NaturalTransformations. Require Import UniMath.CategoryTheory.Monads.Monads. Require Import UniMath.CategoryTheory.Limits.BinCoproducts. Require Import UniMath.CategoryTheory.PrecategoryBinProduct. Require Import UniMath.CategoryTheory.whiskering. Require Import UniMath.CategoryTheory.Monads.LModules.