Built with Alectryon, running Coq+SerAPI v8.16.0+0.16.3. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑Ctrl+↓ to navigate, Ctrl+🖱️ to focus. On Mac, use ⌘ instead of Ctrl.
From Tealeaves Require Export
Classes.Kleisli.DecoratedTraversableMonad
Classes.Kleisli.Theory.DecoratedTraversableFunctor
Classes.Kleisli.Theory.DecoratedContainerMonad.Import Monoid.Notations.Import Subset.Notations.Import List.ListNotations.Import ContainerFunctor.Notations.Import DecoratedContainerFunctor.Notations.#[local] Generalizable VariableW M T U G A B C.(** * Theory of Decorated Traversable Monads *)(**********************************************************************)Sectioncomposition.Context
`{op: Monoid_op W}
`{unit: Monoid_unit W}
`{Monoid_inst: ! Monoid W}.Context
`{ret_inst: Return T}
`{Map_T_inst: Map T}
`{Mapd_T_inst: Mapd W T}
`{Traverse_T_inst: Traverse T}
`{Bind_T_inst: Bind T T}
`{Mapdt_T_inst: Mapdt W T}
`{Bindd_T_inst: Bindd W T T}
`{Bindt_T_inst: Bindt T T}
`{Binddt_T_inst: Binddt W T T}
`{! Compat_Map_Binddt W T T}
`{! Compat_Mapd_Binddt W T T}
`{! Compat_Traverse_Binddt W T T}
`{! Compat_Bind_Binddt W T T}
`{! Compat_Mapdt_Binddt W T T}
`{! Compat_Bindd_Binddt W T T}
`{! Compat_Bindt_Binddt W T T}.Context
`{Map_U_inst: Map U}
`{Mapd_U_inst: Mapd W U}
`{Traverse_U_inst: Traverse U}
`{Bind_U_inst: Bind T U}
`{Mapdt_U_inst: Mapdt W U}
`{Bindd_U_inst: Bindd W T U}
`{Bindt_U_inst: Bindt T U}
`{Binddt_U_inst: Binddt W T U}
`{! Compat_Map_Binddt W T U}
`{! Compat_Mapd_Binddt W T U}
`{! Compat_Traverse_Binddt W T U}
`{! Compat_Bind_Binddt W T U}
`{! Compat_Mapdt_Binddt W T U}
`{! Compat_Bindd_Binddt W T U}
`{! Compat_Bindt_Binddt W T U}.Context
`{ToSubset_T_inst: ToSubset T}
`{ToSubset_U_inst: ToSubset U}
`{! Compat_ToSubset_Traverse T}
`{! Compat_ToSubset_Traverse U}.Context
`{ToCtxset_T_inst: ToCtxset W T}
`{ToCtxset_U_inst: ToCtxset W U}
`{! Compat_ToCtxset_Mapdt W T}
`{! Compat_ToCtxset_Mapdt W U}.Context
`{ToCtxlist_T_inst: ToCtxlist W T}
`{ToCtxlist_U_inst: ToCtxlist W U}
`{! Compat_ToCtxlist_Mapdt W T}
`{! Compat_ToCtxlist_Mapdt W U}.Context
`{Monad_inst: ! DecoratedTraversableMonad W T}
`{Module_inst: ! DecoratedTraversableRightPreModule W T U}.(** ** Composition in the Applicative Functor *)(********************************************************************)(** *** Composition with a Monoid *)(********************************************************************)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (G : Type -> Type) (M : Type)
(op0 : Monoid_op M) (unit0 : Monoid_unit M),
Monoid M ->
forall (AB : Type) (Map_G : Map G) (Pure_G : Pure G)
(Mult_G : Mult G),
Applicative G ->
forallf : W * A -> G M, binddt f = binddt f
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (G : Type -> Type) (M : Type)
(op0 : Monoid_op M) (unit0 : Monoid_unit M),
Monoid M ->
forall (AB : Type) (Map_G : Map G) (Pure_G : Pure G)
(Mult_G : Mult G),
Applicative G ->
forallf : W * A -> G M, binddt f = binddt f
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M A, B: Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H0: Applicative G f: W * A -> G M
binddt f = binddt f
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M A, B: Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H0: Applicative G f: W * A -> G M
Map_compose G (const M) = Map_const
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M A, B: Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H0: Applicative G f: W * A -> G M
Mult_compose G (const M) = Mult_const
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M A, B: Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H0: Applicative G f: W * A -> G M
Map_compose G (const M) = Map_const
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M A, B: Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H0: Applicative G f: W * A -> G M X, Y: Type h: X -> Y x: (G ∘ const M) X
Map_compose G (const M) X Y h x = Map_const X Y h x
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M A, B: Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H0: Applicative G f: W * A -> G M X, Y: Type h: X -> Y x: (G ∘ const M) X
map (funt : const M X => t) x = x
nowrewrite (fun_map_id (Functor := app_functor)).
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M A, B: Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H0: Applicative G f: W * A -> G M
Mult_compose G (const M) = Mult_const
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M A, B: Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H0: Applicative G f: W * A -> G M X, Y: Type x: (G ∘ const M) X y: (G ∘ const M) Y
Mult_compose G (const M) X Y (x, y) =
Mult_const X Y (x, y)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M A, B: Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H0: Applicative G f: W * A -> G M X, Y: Type x: (G ∘ const M) X y: (G ∘ const M) Y
map (fun '(x, y) => x ● y)
(mult (fst (x, y), snd (x, y))) = x ● y
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M A, B: Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H0: Applicative G f: W * A -> G M X, Y: Type x: (G ∘ const M) X y: (G ∘ const M) Y
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M A, B: Type f: W * A -> const M (T B)
binddt f = binddt f
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M A, B: Type f: W * A -> const M (T B)
binddt f = binddt f
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M A, B: Type f: W * A -> const M (T B)
binddt f = map (map exfalso) ∘ binddt f
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M A, B: Type f: W * A -> const M (T B)
binddt f = binddt (map (map exfalso) ∘ f)
reflexivity.Qed.
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M fake1, fake2, A, B: Type f: W * A -> const M (T B)
binddt f = binddt f
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M fake1, fake2, A, B: Type f: W * A -> const M (T B)
binddt f = binddt f
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M fake1, fake2, A, B: Type f: W * A -> const M (T B)
binddt f = binddt f
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M fake1, fake2, A, B: Type f: W * A -> const M (T B)
binddt f = binddt f
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M fake1, fake2, A, B: Type f: W * A -> const M (T B)
binddt f = binddt f
reflexivity.Qed.Endconstant_applicative.(** ** Properties of <<mapdReduce>> *)(********************************************************************)(** *** Composition with monad operations *)(********************************************************************)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M
forall (A : Type) (f : W * A -> M),
mapdReduce f ∘ ret = f ∘ ret
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M
forall (A : Type) (f : W * A -> M),
mapdReduce f ∘ ret = f ∘ ret
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M A: Type f: W * A -> M
mapdReduce f ∘ ret = f ∘ ret
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M A: Type f: W * A -> M
mapdt f ∘ ret = f ∘ ret
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M A: Type f: W * A -> M
binddt (map ret ∘ f) ∘ ret = f ∘ ret
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M A: Type f: W * A -> M
map ret ∘ f ∘ ret = f ∘ ret
reflexivity.Qed.
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G M: Type op0: Monoid_op M unit0: Monoid_unit M H0: Monoid M
forall (B : Type) (g : W * B -> M) (A : Type)
(f : W * A -> G (T B)),
map (mapdReduce g) ∘ binddt f =
mapdReduce
(fun '(w, a) => map (mapdReduce (g ⦿ w)) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G M: Type op0: Monoid_op M unit0: Monoid_unit M H0: Monoid M
forall (B : Type) (g : W * B -> M) (A : Type)
(f : W * A -> G (T B)),
map (mapdReduce g) ∘ binddt f =
mapdReduce
(fun '(w, a) => map (mapdReduce (g ⦿ w)) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G M: Type op0: Monoid_op M unit0: Monoid_unit M H0: Monoid M B: Type g: W * B -> M A: Type f: W * A -> G (T B)
map (mapdReduce g) ∘ binddt f =
mapdReduce
(fun '(w, a) => map (mapdReduce (g ⦿ w)) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G M: Type op0: Monoid_op M unit0: Monoid_unit M H0: Monoid M B: Type g: W * B -> M A: Type f: W * A -> G (T B)
map (mapdt g) ∘ binddt f =
mapdReduce
(fun '(w, a) => map (mapdReduce (g ⦿ w)) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G M: Type op0: Monoid_op M unit0: Monoid_unit M H0: Monoid M B: Type g: W * B -> M A: Type f: W * A -> G (T B)
map (binddt (map ret ∘ g)) ∘ binddt f =
mapdReduce
(fun '(w, a) => map (mapdReduce (g ⦿ w)) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G M: Type op0: Monoid_op M unit0: Monoid_unit M H0: Monoid M B: Type g: W * B -> M A: Type f: W * A -> G (T B)
binddt (kc7 G (const M) (map ret ∘ g) f) =
mapdReduce
(fun '(w, a) => map (mapdReduce (g ⦿ w)) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G M: Type op0: Monoid_op M unit0: Monoid_unit M H0: Monoid M B: Type g: W * B -> M A: Type f: W * A -> G (T B)
binddt (kc7 G (const M) (map ret ∘ g) f) =
mapdt
(fun '(w, a) => map (mapdReduce (g ⦿ w)) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G M: Type op0: Monoid_op M unit0: Monoid_unit M H0: Monoid M B: Type g: W * B -> M A: Type f: W * A -> G (T B)
binddt (kc7 G (const M) (map ret ∘ g) f) =
binddt
(map ret
∘ (fun '(w, a) =>
map (mapdReduce (g ⦿ w)) (f (w, a))))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G M: Type op0: Monoid_op M unit0: Monoid_unit M H0: Monoid M B: Type g: W * B -> M A: Type f: W * A -> G (T B)
binddt (kc7 G (const M) (map ret ∘ g) f) =
binddt
(map ret
∘ (fun '(w, a) =>
map (mapdReduce (g ⦿ w)) (f (w, a))))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G M: Type op0: Monoid_op M unit0: Monoid_unit M H0: Monoid M B: Type g: W * B -> M A: Type f: W * A -> G (T B)
binddt (kc7 G (const M) (map ret ∘ g) f) =
binddt
(map ret
∘ (fun '(w, a) => map (mapdt (g ⦿ w)) (f (w, a))))
(* TODO Make mapdt_to_binddt work immediately here *)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G M: Type op0: Monoid_op M unit0: Monoid_unit M H0: Monoid M B: Type g: W * B -> M A: Type f: W * A -> G (T B)
kc7 G (const M) (map ret ∘ g) f =
map ret
∘ (fun '(w, a) => map (mapdt (g ⦿ w)) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G M: Type op0: Monoid_op M unit0: Monoid_unit M H0: Monoid M B: Type g: W * B -> M A: Type f: W * A -> G (T B) w: W a: A
kc7 G (const M) (map ret ∘ g) f (w, a) =
(map ret
∘ (fun '(w, a) => map (mapdt (g ⦿ w)) (f (w, a))))
(w, a)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G M: Type op0: Monoid_op M unit0: Monoid_unit M H0: Monoid M B: Type g: W * B -> M A: Type f: W * A -> G (T B) w: W a: A
kc7 G (const M) (map ret ○ g) f (w, a) =
map ret (map (mapdt (g ⦿ w)) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G M: Type op0: Monoid_op M unit0: Monoid_unit M H0: Monoid M B: Type g: W * B -> M A: Type f: W * A -> G (T B) w: W a: A
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G M: Type op0: Monoid_op M unit0: Monoid_unit M H0: Monoid M B: Type g: W * B -> M A: Type f: W * A -> G (T B) w: W a: A
map (binddt ((map ret ○ g) ⦿ w)) (f (w, a)) =
map ret (map (binddt (map ret ∘ g ⦿ w)) (f (w, a)))
reflexivity.Qed.
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M
forall (B : Type) (g : W * B -> M) (A : Type)
(f : W * A -> T B),
mapdReduce g ∘ binddt f =
mapdReduce
(fun '(w, a) => mapdReduce (g ⦿ w) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M
forall (B : Type) (g : W * B -> M) (A : Type)
(f : W * A -> T B),
mapdReduce g ∘ binddt f =
mapdReduce
(fun '(w, a) => mapdReduce (g ⦿ w) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M B: Type g: W * B -> M A: Type f: W * A -> T B
mapdReduce g ∘ binddt f =
mapdReduce
(fun '(w, a) => mapdReduce (g ⦿ w) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M B: Type g: W * B -> M A: Type f: W * A -> T B
map (mapdReduce g) ∘ binddt f =
mapdReduce
(fun '(w, a) => mapdReduce (g ⦿ w) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M B: Type g: W * B -> M A: Type f: W * A -> T B
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M
forall (B : Type) (g : W * B -> M) (A : Type)
(f : W * A -> T B),
mapdReduce g ∘ bindd f =
mapdReduce
(fun '(w, a) => mapdReduce (g ⦿ w) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M
forall (B : Type) (g : W * B -> M) (A : Type)
(f : W * A -> T B),
mapdReduce g ∘ bindd f =
mapdReduce
(fun '(w, a) => mapdReduce (g ⦿ w) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M B: Type g: W * B -> M A: Type f: W * A -> T B
mapdReduce g ∘ bindd f =
mapdReduce
(fun '(w, a) => mapdReduce (g ⦿ w) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M B: Type g: W * B -> M A: Type f: W * A -> T B
mapdReduce g ∘ binddt f =
mapdReduce
(fun '(w, a) => mapdReduce (g ⦿ w) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M B: Type g: W * B -> M A: Type f: W * A -> T B
reflexivity.Qed.(** ** Properties of <<mapReduce>> *)(********************************************************************)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G M: Type op0: Monoid_op M unit0: Monoid_unit M H0: Monoid M
forall (B : Type) (g : B -> M) (A : Type)
(f : W * A -> G (T B)),
map (mapReduce g) ∘ binddt f =
mapdReduce
(fun '(w, a) => map (mapReduce g) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G M: Type op0: Monoid_op M unit0: Monoid_unit M H0: Monoid M
forall (B : Type) (g : B -> M) (A : Type)
(f : W * A -> G (T B)),
map (mapReduce g) ∘ binddt f =
mapdReduce
(fun '(w, a) => map (mapReduce g) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G M: Type op0: Monoid_op M unit0: Monoid_unit M H0: Monoid M B: Type g: B -> M A: Type f: W * A -> G (T B)
map (mapReduce g) ∘ binddt f =
mapdReduce
(fun '(w, a) => map (mapReduce g) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G M: Type op0: Monoid_op M unit0: Monoid_unit M H0: Monoid M B: Type g: B -> M A: Type f: W * A -> G (T B)
map (mapdReduce (g ∘ extract)) ∘ binddt f =
mapdReduce
(fun '(w, a) => map (mapReduce g) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G M: Type op0: Monoid_op M unit0: Monoid_unit M H0: Monoid M B: Type g: B -> M A: Type f: W * A -> G (T B)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G M: Type op0: Monoid_op M unit0: Monoid_unit M H0: Monoid M B: Type g: B -> M A: Type f: W * A -> G (T B)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G M: Type op0: Monoid_op M unit0: Monoid_unit M H0: Monoid M B: Type g: B -> M A: Type f: W * A -> G (T B) w: W a: A
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G M: Type op0: Monoid_op M unit0: Monoid_unit M H0: Monoid M B: Type g: B -> M A: Type f: W * A -> G (T B) w: W a: A
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M
forall (B : Type) (g : B -> M) (A : Type)
(f : W * A -> T B),
mapReduce g ∘ bindd f =
mapdReduce (fun '(w, a) => mapReduce g (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M
forall (B : Type) (g : B -> M) (A : Type)
(f : W * A -> T B),
mapReduce g ∘ bindd f =
mapdReduce (fun '(w, a) => mapReduce g (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M B: Type g: B -> M A: Type f: W * A -> T B
mapReduce g ∘ bindd f =
mapdReduce (fun '(w, a) => mapReduce g (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M B: Type g: B -> M A: Type f: W * A -> T B
mapReduce g ∘ binddt f =
mapdReduce (fun '(w, a) => mapReduce g (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M B: Type g: B -> M A: Type f: W * A -> T B
mapdReduce (g ∘ extract) ∘ binddt f =
mapdReduce (fun '(w, a) => mapReduce g (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M B: Type g: B -> M A: Type f: W * A -> T B
mapdReduce
(fun '(w, a) =>
mapdReduce ((g ∘ extract) ⦿ w) (f (w, a))) =
mapdReduce (fun '(w, a) => mapReduce g (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M B: Type g: B -> M A: Type f: W * A -> T B w: W a: A
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M B: Type g: B -> M A: Type f: W * A -> T B w: W a: A
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U M: Type op0: Monoid_op M unit0: Monoid_unit M H: Monoid M B: Type g: B -> M A: Type f: W * A -> T B w: W a: A
reflexivity.Qed.(** ** Properties of <<tolistd>> *)(********************************************************************)(** *** Composition with <<binddt>> / <<ret>> *)(********************************************************************)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (A : Type) (a : A),
toctxlist (ret a) = [(Ƶ, a)]
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (A : Type) (a : A),
toctxlist (ret a) = [(Ƶ, a)]
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type a: A
toctxlist (ret a) = [(Ƶ, a)]
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type a: A
mapdReduce ret (ret a) = [(Ƶ, a)]
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type a: A
(mapdReduce ret ∘ ret) a = [(Ƶ, a)]
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type a: A
(ret ∘ ret) a = [(Ƶ, a)]
reflexivity.Qed.
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (G : Type -> Type) (Map_G : Map G)
(Pure_G : Pure G) (Mult_G : Mult G),
Applicative G ->
forall (AB : Type) (f : W * A -> G (T B)),
map toctxlist ∘ binddt f =
mapdReduce
(fun '(w, a) =>
map (mapdReduce (ret ⦿ w)) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (G : Type -> Type) (Map_G : Map G)
(Pure_G : Pure G) (Mult_G : Mult G),
Applicative G ->
forall (AB : Type) (f : W * A -> G (T B)),
map toctxlist ∘ binddt f =
mapdReduce
(fun '(w, a) =>
map (mapdReduce (ret ⦿ w)) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G A, B: Type f: W * A -> G (T B)
map toctxlist ∘ binddt f =
mapdReduce
(fun '(w, a) =>
map (mapdReduce (ret ⦿ w)) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G A, B: Type f: W * A -> G (T B)
map (mapdReduce ret) ∘ binddt f =
mapdReduce
(fun '(w, a) =>
map (mapdReduce (ret ⦿ w)) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G A, B: Type f: W * A -> G (T B)
reflexivity.Qed.(** *** Composition with <<bindd>> *)(********************************************************************)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (AB : Type) (f : W * A -> T B),
toctxlist ∘ bindd f =
mapdReduce
(fun '(w, a) => mapdReduce (ret ⦿ w) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (AB : Type) (f : W * A -> T B),
toctxlist ∘ bindd f =
mapdReduce
(fun '(w, a) => mapdReduce (ret ⦿ w) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B
toctxlist ∘ bindd f =
mapdReduce
(fun '(w, a) => mapdReduce (ret ⦿ w) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B
mapdReduce ret ∘ bindd f =
mapdReduce
(fun '(w, a) => mapdReduce (ret ⦿ w) (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B
reflexivity.Qed.(** ** Properties of <<tolist>> *)(********************************************************************)(** *** Composition with <<binddt>> *)(********************************************************************)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (G : Type -> Type) (Map_G : Map G)
(Pure_G : Pure G) (Mult_G : Mult G),
Applicative G ->
forall (AB : Type) (f : W * A -> G (T B)),
map tolist ∘ binddt f = mapdReduce (map tolist ∘ f)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (G : Type -> Type) (Map_G : Map G)
(Pure_G : Pure G) (Mult_G : Mult G),
Applicative G ->
forall (AB : Type) (f : W * A -> G (T B)),
map tolist ∘ binddt f = mapdReduce (map tolist ∘ f)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G A, B: Type f: W * A -> G (T B)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G A, B: Type f: W * A -> G (T B)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G A, B: Type f: W * A -> G (T B)
(* todo why isn't reflexivity enough... b.c. destructing the pair? *)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G A, B: Type f: W * A -> G (T B)
(fun '(w, a) => map (mapReduce ret) (f (w, a))) =
map tolist ∘ f
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U G: Type -> Type Map_G: Map G Pure_G: Pure G Mult_G: Mult G H: Applicative G A, B: Type f: W * A -> G (T B) w: W a: A
reflexivity.Qed.(** *** Composition with <<bindd>> *)(********************************************************************)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (AB : Type) (f : W * A -> T B),
tolist ∘ bindd f =
mapdReduce (fun '(w, a) => mapReduce ret (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (AB : Type) (f : W * A -> T B),
tolist ∘ bindd f =
mapdReduce (fun '(w, a) => mapReduce ret (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B
tolist ∘ bindd f =
mapdReduce (fun '(w, a) => mapReduce ret (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B
mapReduce ret ∘ bindd f =
mapdReduce (fun '(w, a) => mapReduce ret (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B
mapdReduce (fun '(w, a) => mapReduce ret (f (w, a))) =
mapdReduce (fun '(w, a) => mapReduce ret (f (w, a)))
reflexivity.Qed.
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forallA : Type, tolist = binddt (ret ∘ extract)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forallA : Type, tolist = binddt (ret ∘ extract)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type
tolist = binddt (ret ∘ extract)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type
traverse ret = binddt (ret ∘ extract)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type
binddt (map ret ∘ ret ∘ extract) =
binddt (ret ∘ extract)
reflexivity.Qed.(** ** Properties of <<toctxset>> *)(********************************************************************)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (A : Type) (a : A),
toctxset (ret a) = {{(Ƶ, a)}}
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (A : Type) (a : A),
toctxset (ret a) = {{(Ƶ, a)}}
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type a: A
toctxset (ret a) = {{(Ƶ, a)}}
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type a: A
mapdReduce ret (ret a) = {{(Ƶ, a)}}
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type a: A
(mapdReduce ret ∘ ret) a = {{(Ƶ, a)}}
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type a: A
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (AB : Type) (f : W * A -> T B),
toctxset ∘ bindd f = bindd (toctxset ∘ f) ∘ toctxset
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (AB : Type) (f : W * A -> T B),
toctxset ∘ bindd f = bindd (toctxset ∘ f) ∘ toctxset
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B
mapdReduce ret ∘ bindd f =
bindd (toctxset ∘ f) ∘ toctxset
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B
mapdReduce
(fun '(w, a) => mapdReduce (ret ⦿ w) (f (w, a))) =
bindd (mapdReduce ret ∘ f) ∘ toctxset
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B
mapdReduce
(fun '(w, a) => mapdReduce (ret ⦿ w) (f (w, a))) =
bindd (mapdReduce ret ∘ f) ∘ mapdReduce ret
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B
(fun '(w, a) => mapdReduce (ret ⦿ w) (f (w, a))) =
bindd (mapdReduce ret ∘ f) ∘ ret
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B w: W a: A
mapdReduce (ret ⦿ w) (f (w, a)) =
(bindd (mapdReduce ret ∘ f) ∘ ret) (w, a)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B w: W a: A
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B w: W a: A
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B w: W a: A
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B w: W a: A
mapdReduce (ret ⦿ w) (f (w, a)) =
map (map_fst (funm : W => w ● m))
(mapdReduce ret (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B w: W a: A
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B w: W a: A
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B w: W a: A
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forallA : Type, toctxset = binddt ret
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forallA : Type, toctxset = binddt ret
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type
toctxset = binddt ret
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type
mapdReduce ret = binddt ret
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type
mapdt ret = binddt ret
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type
binddt (map ret ∘ ret) = binddt ret
reflexivity.Qed.(** ** Properties of <<tosubset>> *)(********************************************************************)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (AB : Type) (f : W * A -> T B),
tosubset ∘ bindd f =
mapdReduce (fun '(w, a) => mapReduce ret (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (AB : Type) (f : W * A -> T B),
tosubset ∘ bindd f =
mapdReduce (fun '(w, a) => mapReduce ret (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B
tosubset ∘ bindd f =
mapdReduce (fun '(w, a) => mapReduce ret (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B
mapReduce ret ∘ bindd f =
mapdReduce (fun '(w, a) => mapReduce ret (f (w, a)))
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B
mapdReduce (fun '(w, a) => mapReduce ret (f (w, a))) =
mapdReduce (fun '(w, a) => mapReduce ret (f (w, a)))
reflexivity.Qed.
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forallA : Type, tosubset = binddt (ret ∘ extract)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forallA : Type, tosubset = binddt (ret ∘ extract)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type
tosubset = binddt (ret ∘ extract)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type
mapReduce ret = binddt (ret ∘ extract)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type
traverse ret = binddt (ret ∘ extract)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type
binddt (map ret ∘ ret ∘ extract) =
binddt (ret ∘ extract)
reflexivity.Qed.(** ** Properties of <<∈d>> *)(********************************************************************)Sectionproperties_element_ctx_of.
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (A : Type) (w : W) (a1a2 : A),
(w, a1) ∈d ret a2 <-> w = Ƶ /\ a1 = a2
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (A : Type) (w : W) (a1a2 : A),
(w, a1) ∈d ret a2 <-> w = Ƶ /\ a1 = a2
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type w: W a1, a2: A
(w, a1) ∈d ret a2 <-> w = Ƶ /\ a1 = a2
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type w: W a1, a2: A
toctxset (ret a2) (w, a1) <-> w = Ƶ /\ a1 = a2
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type w: W a1, a2: A
{{(Ƶ, a2)}} (w, a1) <-> w = Ƶ /\ a1 = a2
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type w: W a1, a2: A
(Ƶ, a2) = (w, a1) <-> w = Ƶ /\ a1 = a2
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type w: W a1, a2: A
Ƶ = w /\ a2 = a1 <-> w = Ƶ /\ a1 = a2
easy.Qed.
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (A : Type) (t : U A) (w : W) (a : A),
(w, a) ∈d t = binddt (eq (w, a)) t
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (A : Type) (t : U A) (w : W) (a : A),
(w, a) ∈d t = binddt (eq (w, a)) t
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type t: U A w: W a: A
(w, a) ∈d t = binddt (eq (w, a)) t
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type t: U A w: W a: A
mapdReduce {{(w, a)}} t = binddt (eq (w, a)) t
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type t: U A w: W a: A
mapdt {{(w, a)}} t = binddt (eq (w, a)) t
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type t: U A w: W a: A
binddt (map ret ∘ {{(w, a)}}) t = binddt (eq (w, a)) t
reflexivity.Qed.Endproperties_element_ctx_of.(** ** Properties of <<∈>> *)(********************************************************************)Import TraversableMonad.DerivedInstances.
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (A : Type) (t : U A) (a : A),
a ∈ t = binddt (eq a ∘ extract) t
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (A : Type) (t : U A) (a : A),
a ∈ t = binddt (eq a ∘ extract) t
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type t: U A a: A
a ∈ t = binddt (eq a ∘ extract) t
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type t: U A a: A
mapReduce {{a}} t = binddt (eq a ∘ extract) t
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type t: U A a: A
traverse {{a}} t = binddt (eq a ∘ extract) t
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type t: U A a: A
binddt (map ret ∘ {{a}} ∘ extract) t =
binddt (eq a ∘ extract) t
reflexivity.Qed.Endcomposition.(** * Monad Homomorphism Instances *)(**********************************************************************)Sectioninstances.Context
`{op: Monoid_op W}
`{unit: Monoid_unit W}
`{Monoid_inst: ! Monoid W}.Context
`{ret_inst: Return T}
`{Map_T_inst: Map T}
`{Mapd_T_inst: Mapd W T}
`{Traverse_T_inst: Traverse T}
`{Bind_T_inst: Bind T T}
`{Mapdt_T_inst: Mapdt W T}
`{Bindd_T_inst: Bindd W T T}
`{Bindt_T_inst: Bindt T T}
`{Binddt_T_inst: Binddt W T T}
`{! Compat_Map_Binddt W T T}
`{! Compat_Mapd_Binddt W T T}
`{! Compat_Traverse_Binddt W T T}
`{! Compat_Bind_Binddt W T T}
`{! Compat_Mapdt_Binddt W T T}
`{! Compat_Bindd_Binddt W T T}
`{! Compat_Bindt_Binddt W T T}.Context
`{Map_U_inst: Map U}
`{Mapd_U_inst: Mapd W U}
`{Traverse_U_inst: Traverse U}
`{Bind_U_inst: Bind T U}
`{Mapdt_U_inst: Mapdt W U}
`{Bindd_U_inst: Bindd W T U}
`{Bindt_U_inst: Bindt T U}
`{Binddt_U_inst: Binddt W T U}
`{! Compat_Map_Binddt W T U}
`{! Compat_Mapd_Binddt W T U}
`{! Compat_Traverse_Binddt W T U}
`{! Compat_Bind_Binddt W T U}
`{! Compat_Mapdt_Binddt W T U}
`{! Compat_Bindd_Binddt W T U}
`{! Compat_Bindt_Binddt W T U}.Context
`{ToSubset_T_inst: ToSubset T}
`{ToSubset_U_inst: ToSubset U}
`{! Compat_ToSubset_Traverse T}
`{! Compat_ToSubset_Traverse U}.Context
`{ToCtxset_T_inst: ToCtxset W T}
`{ToCtxset_U_inst: ToCtxset W U}
`{! Compat_ToCtxset_Mapdt W T}
`{! Compat_ToCtxset_Mapdt W U}.Context
`{ToCtxlist_T_inst: ToCtxlist W T}
`{ToCtxlist_U_inst: ToCtxlist W U}
`{! Compat_ToCtxlist_Mapdt W T}
`{! Compat_ToCtxlist_Mapdt W U}.Context
`{Monad_inst: ! DecoratedTraversableMonad W T}
`{Module_inst: ! DecoratedTraversableRightPreModule W T U}.
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
DecoratedMonadHom W T (ctxset W)
(@toctxset W T ToCtxset_T_inst)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
DecoratedMonadHom W T (ctxset W)
(@toctxset W T ToCtxset_T_inst)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (AB : Type) (f : W * A -> T B),
toctxset ∘ bindd f = bindd (toctxset ∘ f) ∘ toctxset
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forallA : Type, toctxset ∘ ret = ret
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (AB : Type) (f : W * A -> T B),
toctxset ∘ bindd f = bindd (toctxset ∘ f) ∘ toctxset
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forallA : Type, toctxset ∘ ret = ret
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type
toctxset ∘ ret = ret
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type a: A w: W a': A
(toctxset ∘ ret) a (w, a') = ret a (w, a')
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type a: A w: W a': A
toctxset (ret a) (w, a') = ret a (w, a')
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type a: A w: W a': A
{{(Ƶ, a)}} (w, a') = ret a (w, a')
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type a: A w: W a': A
((unit, a) = (w, a')) = (a = a' /\ w = unit)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type a: A w: W a': A
(unit, a) = (w, a') <-> a = a' /\ w = unit
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type a: A w: W a': A
unit = w /\ a = a' <-> a = a' /\ w = unit
easy.Qed.
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
DecoratedMonadHom W T (ctxset W)
(@toctxset W T ToCtxset_T_inst)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
DecoratedMonadHom W T (ctxset W)
(@toctxset W T ToCtxset_T_inst)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (AB : Type) (f : W * A -> T B),
toctxset ∘ bindd f = bindd (toctxset ∘ f) ∘ toctxset
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forallA : Type, toctxset ∘ ret = ret
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (AB : Type) (f : W * A -> T B),
toctxset ∘ bindd f = bindd (toctxset ∘ f) ∘ toctxset
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forallA : Type, toctxset ∘ ret = ret
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type
toctxset ∘ ret = ret
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type a: A w: W a': A
(toctxset ∘ ret) a (w, a') = ret a (w, a')
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type a: A w: W a': A
toctxset (ret a) (w, a') = ret a (w, a')
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type a: A w: W a': A
{{(Ƶ, a)}} (w, a') = ret a (w, a')
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type a: A w: W a': A
((unit, a) = (w, a')) = (a = a' /\ w = unit)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type a: A w: W a': A
(unit, a) = (w, a') <-> a = a' /\ w = unit
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A: Type a: A w: W a': A
unit = w /\ a = a' <-> a = a' /\ w = unit
easy.Qed.
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
ParallelDecoratedRightModuleHom T (ctxset W) U
(ctxset W) (@toctxset W T ToCtxset_T_inst)
(@toctxset W U ToCtxset_U_inst)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
ParallelDecoratedRightModuleHom T (ctxset W) U
(ctxset W) (@toctxset W T ToCtxset_T_inst)
(@toctxset W U ToCtxset_U_inst)
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U
forall (AB : Type) (f : W * A -> T B),
toctxset ∘ bindd f = bindd (toctxset ∘ f) ∘ toctxset
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B
W: Type op: Monoid_op W unit: Monoid_unit W Monoid_inst: Monoid W T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd W T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt W T Bindd_T_inst: Bindd W T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt W T T Compat_Map_Binddt0: Compat_Map_Binddt W T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt W T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt W T T Compat_Bind_Binddt0: Compat_Bind_Binddt W T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt W T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt W T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt W T T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd W U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt W U Bindd_U_inst: Bindd W T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt W T U Compat_Map_Binddt1: Compat_Map_Binddt W T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt W T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt W T U Compat_Bind_Binddt1: Compat_Bind_Binddt W T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt W T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt W T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt W T U ToSubset_T_inst: ToSubset T ToSubset_U_inst: ToSubset U Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T Compat_ToSubset_Traverse1: Compat_ToSubset_Traverse U ToCtxset_T_inst: ToCtxset W T ToCtxset_U_inst: ToCtxset W U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt W T Compat_ToCtxset_Mapdt1: Compat_ToCtxset_Mapdt W U ToCtxlist_T_inst: ToCtxlist W T ToCtxlist_U_inst: ToCtxlist W U Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt W T Compat_ToCtxlist_Mapdt1: Compat_ToCtxlist_Mapdt W U Monad_inst: DecoratedTraversableMonad W T Module_inst: DecoratedTraversableRightPreModule W T U A, B: Type f: W * A -> T B