Documentation

ToMathlib.Control.MonadRelation

Monad relations #

class MonadRelation (m : Type u → Type v) (n : Type u → Type w) :
Type (max (max (u + 1) v) w)
  • monadRel {α : Type u} : m αn αProp
Instances
    class LawfulMonadRelation (m : Type u → Type v) (n : Type u → Type w) [Monad m] [Monad n] [MonadRelation m n] :
    Instances
      instance MonadRelation.instOfMonadLiftT {m : Type u_1 → Type u_2} {n : Type u_1 → Type u_3} [MonadLiftT m n] :

      A (transitive) monad lift defines a monad relation via its graph

      Equations
      instance MonadRelation.instOfLawfulMonadLiftT {m : Type u_1 → Type u_2} {n : Type u_1 → Type u_3} [Monad m] [Monad n] [MonadLiftT m n] [LawfulMonadLiftT m n] :

      A (transitive) lawful monad lift defines a lawful monad relation via its graph

      class MonadRelationHom (m₁ : Type u → Type v₁) (n₁ : Type u → Type w₁) (m₂ : Type u → Type v₂) (n₂ : Type u → Type w₂) :
      Type (max (max (max (max (u + 1) v₁) v₂) w₁) w₂)
      • monadRelHomFst {α : Type u} : m₁ αm₂ α
      • monadRelHomSnd {α : Type u} : n₁ αn₂ α
      Instances
        class LawfulMonadRelationHom (m₁ : Type u → Type v₁) (n₁ : Type u → Type w₁) (m₂ : Type u → Type v₂) (n₂ : Type u → Type w₂) [MonadRelation m₁ n₁] [MonadRelation m₂ n₂] [MonadRelationHom m₁ n₁ m₂ n₂] :
        Instances