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.Multisorted.DecoratedTraversableMonad
Functors.Multisorted.Batch.Import Product.Notations.Import TypeFamily.Notations.Import Multisorted.Batch.Notations.#[local] Generalizable VariablesA B C F G W U T K.(** * Iterating over a DTM *)(******************************************************************************)Sectionbatchm_operation.Context
`{Index}
(U : Type -> Type)
`{MultiDecoratedTraversablePreModule W T U}
`{! MultiDecoratedTraversableMonad W T}.Definitionbatchm {A : Type} (B : Type) : forall (k : K), W * A -> @BatchM _ T W A B (T k B) :=
funk '(w, a) => Go (@id (T k B)) ⧆ (w, a).DefinitiontoBatchM {A : Type} (B : Type) : U A -> @BatchM _ T W A B (U B) :=
mbinddt U (@BatchM _ T W A B) (batchm B).Endbatchm_operation.(** ** Representing <<mbinddt>> with <<runBatch>> *)(******************************************************************************)SectiontoBatchM.Context
`{MultiDecoratedTraversablePreModule W T U}
`{! MultiDecoratedTraversableMonad W T}.
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T
forall (F : Type -> Type) (Map_G : Map F)
(Pure_G : Pure F) (Mult_G : Mult F),
Applicative F ->
forall (AB : Type) (t : U A)
(f : forallk : K, W * A -> F (T k B)),
mbinddt U F f t = runBatchM f (toBatchM U B t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T
forall (F : Type -> Type) (Map_G : Map F)
(Pure_G : Pure F) (Mult_G : Mult F),
Applicative F ->
forall (AB : Type) (t : U A)
(f : forallk : K, W * A -> F (T k B)),
mbinddt U F f t = runBatchM f (toBatchM U B t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T F: Type -> Type Map_G: Map F Pure_G: Pure F Mult_G: Mult F H1: Applicative F A, B: Type t: U A f: forallk : K, W * A -> F (T k B)
mbinddt U F f t = runBatchM f (toBatchM U B t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T F: Type -> Type Map_G: Map F Pure_G: Pure F Mult_G: Mult F H1: Applicative F A, B: Type t: U A f: forallk : K, W * A -> F (T k B)
mbinddt U F f t =
runBatchM f (mbinddt U BatchM (batchm B) t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T F: Type -> Type Map_G: Map F Pure_G: Pure F Mult_G: Mult F H1: Applicative F A, B: Type t: U A f: forallk : K, W * A -> F (T k B)
mbinddt U F f t =
(runBatchM f ∘ mbinddt U BatchM (batchm B)) t
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T F: Type -> Type Map_G: Map F Pure_G: Pure F Mult_G: Mult F H1: Applicative F A, B: Type t: U A f: forallk : K, W * A -> F (T k B)
mbinddt U F f t =
mbinddt U F ((funk : K => runBatchM f) ◻ batchm B) t
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T F: Type -> Type Map_G: Map F Pure_G: Pure F Mult_G: Mult F H1: Applicative F A, B: Type t: U A f: forallk : K, W * A -> F (T k B)
f = (funk : K => runBatchM f) ◻ batchm B
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T F: Type -> Type Map_G: Map F Pure_G: Pure F Mult_G: Mult F H1: Applicative F A, B: Type t: U A f: forallk : K, W * A -> F (T k B) k: K w: W a: A
f k (w, a) =
((funk : K => runBatchM f) ◻ batchm B) k (w, a)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T F: Type -> Type Map_G: Map F Pure_G: Pure F Mult_G: Mult F H1: Applicative F A, B: Type t: U A f: forallk : K, W * A -> F (T k B) k: K w: W a: A
f k (w, a) = ap F (pure id) (f k (w, a))
nowrewrite ap1.Qed.
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T
forall (AB : Type) (t : U A) (f : W * A ~k~> T B),
mbindd U f t = runBatchM f (toBatchM U B t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T
forall (AB : Type) (t : U A) (f : W * A ~k~> T B),
mbindd U f t = runBatchM f (toBatchM U B t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T A, B: Type t: U A f: W * A ~k~> T B
mbindd U f t = runBatchM f (toBatchM U B t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T A, B: Type t: U A f: W * A ~k~> T B
mbinddt U (funA : Type => A) f t =
runBatchM f (toBatchM U B t)
nowrewrite mbinddt_to_runBatchM.Qed.
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T
forall (F : Type -> Type) (Map_G : Map F)
(Pure_G : Pure F) (Mult_G : Mult F),
Applicative F ->
forall (AB : Type) (t : U A)
(f : forallk : K, A -> F (T k B)),
mbindt U F f t =
runBatchM (f ◻ allK extract) (toBatchM U B t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T
forall (F : Type -> Type) (Map_G : Map F)
(Pure_G : Pure F) (Mult_G : Mult F),
Applicative F ->
forall (AB : Type) (t : U A)
(f : forallk : K, A -> F (T k B)),
mbindt U F f t =
runBatchM (f ◻ allK extract) (toBatchM U B t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T F: Type -> Type Map_G: Map F Pure_G: Pure F Mult_G: Mult F H1: Applicative F A, B: Type t: U A f: forallk : K, A -> F (T k B)
mbindt U F f t =
runBatchM (f ◻ allK extract) (toBatchM U B t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T F: Type -> Type Map_G: Map F Pure_G: Pure F Mult_G: Mult F H1: Applicative F A, B: Type t: U A f: forallk : K, A -> F (T k B)
mbinddt U F (f ◻ allK extract) t =
runBatchM (f ◻ allK extract) (toBatchM U B t)
nowrewrite mbinddt_to_runBatchM.Qed.
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T
forall (F : Type -> Type) (Map_G : Map F)
(Pure_G : Pure F) (Mult_G : Mult F),
Applicative F ->
forall (AB : Type) (t : U A) (f : K -> W * A -> F B),
mmapdt U F f t =
runBatchM (funk : K => map (mret T k) ∘ f k)
(toBatchM U B t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T
forall (F : Type -> Type) (Map_G : Map F)
(Pure_G : Pure F) (Mult_G : Mult F),
Applicative F ->
forall (AB : Type) (t : U A) (f : K -> W * A -> F B),
mmapdt U F f t =
runBatchM (funk : K => map (mret T k) ∘ f k)
(toBatchM U B t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T F: Type -> Type Map_G: Map F Pure_G: Pure F Mult_G: Mult F H1: Applicative F A, B: Type t: U A f: K -> W * A -> F B
mmapdt U F f t =
runBatchM (funk : K => map (mret T k) ∘ f k)
(toBatchM U B t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T F: Type -> Type Map_G: Map F Pure_G: Pure F Mult_G: Mult F H1: Applicative F A, B: Type t: U A f: K -> W * A -> F B
mbinddt U F (mapMret ◻ f) t =
runBatchM (funk : K => map (mret T k) ∘ f k)
(toBatchM U B t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T F: Type -> Type Map_G: Map F Pure_G: Pure F Mult_G: Mult F H1: Applicative F A, B: Type t: U A f: K -> W * A -> F B
runBatchM (mapMret ◻ f) (toBatchM U B t) =
runBatchM (funk : K => map (mret T k) ∘ f k)
(toBatchM U B t)
reflexivity.Qed.
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T
forall (AB : Type) (t : U A) (f : A ~k~> T B),
mbind U f t =
runBatchM (f ◻ allK extract) (toBatchM U B t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T
forall (AB : Type) (t : U A) (f : A ~k~> T B),
mbind U f t =
runBatchM (f ◻ allK extract) (toBatchM U B t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T A, B: Type t: U A f: A ~k~> T B
mbind U f t =
runBatchM (f ◻ allK extract) (toBatchM U B t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T A, B: Type t: U A f: A ~k~> T B
mbinddt U (funA : Type => A) (f ◻ allK extract) t =
runBatchM (f ◻ allK extract) (toBatchM U B t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T A, B: Type t: U A f: A ~k~> T B
runBatchM (f ◻ allK extract) (toBatchM U B t) =
runBatchM (f ◻ allK extract) (toBatchM U B t)
reflexivity.Qed.
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T A, B: Type f: K -> W * A -> B t: U A
mmapd U f t = runBatchM (mret T ◻ f) (toBatchM U B t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T A, B: Type f: K -> W * A -> B t: U A
mmapd U f t = runBatchM (mret T ◻ f) (toBatchM U B t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T A, B: Type f: K -> W * A -> B t: U A
mbinddt U (funA : Type => A) (mret T ◻ f) t =
runBatchM (mret T ◻ f) (toBatchM U B t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T A, B: Type f: K -> W * A -> B t: U A
runBatchM (mret T ◻ f) (toBatchM U B t) =
runBatchM (mret T ◻ f) (toBatchM U B t)
reflexivity.Qed.
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T F: Type -> Type Map_G: Map F Pure_G: Pure F Mult_G: Mult F H1: Applicative F A, B: Type f: K -> A -> F B t: U A
mmapt U F f t =
runBatchM
(funk : K => map (mret T k) ∘ f k ∘ extract)
(toBatchM U B t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T F: Type -> Type Map_G: Map F Pure_G: Pure F Mult_G: Mult F H1: Applicative F A, B: Type f: K -> A -> F B t: U A
mmapt U F f t =
runBatchM
(funk : K => map (mret T k) ∘ f k ∘ extract)
(toBatchM U B t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T F: Type -> Type Map_G: Map F Pure_G: Pure F Mult_G: Mult F H1: Applicative F A, B: Type f: K -> A -> F B t: U A
mbinddt U F ((mapMret ◻ f) ◻ allK extract) t =
runBatchM
(funk : K => map (mret T k) ∘ f k ∘ extract)
(toBatchM U B t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T F: Type -> Type Map_G: Map F Pure_G: Pure F Mult_G: Mult F H1: Applicative F A, B: Type f: K -> A -> F B t: U A
runBatchM ((mapMret ◻ f) ◻ allK extract)
(toBatchM U B t) =
runBatchM
(funk : K => map (mret T k) ∘ f k ∘ extract)
(toBatchM U B t)
reflexivity.Qed.
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T A, B: Type f: K -> A -> B t: U A
mmap U f t =
runBatchM ((mret T ◻ f) ◻ allK extract)
(toBatchM U B t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T A, B: Type f: K -> A -> B t: U A
mmap U f t =
runBatchM ((mret T ◻ f) ◻ allK extract)
(toBatchM U B t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T A, B: Type f: K -> A -> B t: U A
mbinddt U (funA : Type => A)
((mret T ◻ f) ◻ allK extract) t =
runBatchM ((mret T ◻ f) ◻ allK extract)
(toBatchM U B t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T A, B: Type f: K -> A -> B t: U A
runBatchM ((mret T ◻ f) ◻ allK extract)
(toBatchM U B t) =
runBatchM ((mret T ◻ f) ◻ allK extract)
(toBatchM U B t)
reflexivity.Qed.
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T A: Type t: U A
t = runBatchM (mret T ◻ allK extract) (toBatchM U A t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T A: Type t: U A
t = runBatchM (mret T ◻ allK extract) (toBatchM U A t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T A: Type t: U A
id t =
runBatchM (mret T ◻ allK extract) (toBatchM U A t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T A: Type t: U A
mbinddt U (funa : Type => a) (mret T ◻ allK extract)
t =
runBatchM (mret T ◻ allK extract) (toBatchM U A t)
ix: Index W: Type T: K -> Type -> Type U: Type -> Type MReturn0: MReturn T MBind0: MBind W T U H: forallk : K, MBind W T (T k) mn_op: Monoid_op W mn_unit: Monoid_unit W H0: MultiDecoratedTraversablePreModule W T U MultiDecoratedTraversableMonad0: MultiDecoratedTraversableMonad
W T A: Type t: U A
runBatchM (mret T ◻ allK extract) (toBatchM U A t) =
runBatchM (mret T ◻ allK extract) (toBatchM U A t)