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 Import
  Adapters.KleisliToCategorical.TraversableFunctor
  Adapters.KleisliToCoalgebraic.TraversableFunctor
  Adapters.KleisliToCategorical.DecoratedTraversableFunctor
  Adapters.KleisliToCoalgebraic.DecoratedTraversableFunctor
  Classes.Coalgebraic.TraversableFunctor
  Classes.Coalgebraic.DecoratedTraversableFunctor.

From Tealeaves Require Export
  Functors.Batch
  Functors.Environment
  Functors.Option
  Theory.TraversableFunctor
  Kleisli.Theory.DecoratedTraversableFunctor.

Import Product.Notations.
Import Monoid.Notations.
Import Batch.Notations.
Import List.ListNotations.
Import Subset.Notations.
Import ContainerFunctor.Notations.
Import DecoratedContainerFunctor.Notations.
Import VectorRefinement.Notations.

#[local] Generalizable Variables F M E T G A B C ϕ.

(** * Properties of <<toBatch3>> *)
(**********************************************************************)
Section theory.

  Context
    `{Mapdt_inst: Mapdt E T}
    `{Traverse_inst: Traverse T}
    `{Mapd_inst: Mapd E T}
    `{Map_inst: Map T}
    `{ToBatch_inst: ToBatch T}
    `{ToBatch3_inst: ToBatch3 E T}
    `{ToCtxset_inst: ToCtxset E T}
    `{ToCtxlist_inst: ToCtxlist E T}
    `{! Compat_Traverse_Mapdt E T}
    `{! Compat_Mapd_Mapdt E T}
    `{! Compat_Map_Mapdt E T}
    `{! Compat_ToBatch_Traverse T}
    `{! Compat_ToBatch3_Mapdt E T}
    `{! Compat_ToCtxset_Mapdt E T}
    `{! Compat_ToCtxlist_Mapdt E T}
    `{! Kleisli.DecoratedTraversableFunctor.DecoratedTraversableFunctor E T}.

  (** ** Relating <<toBatch3>> with <<toBatch>> *)
  (********************************************************************)
  
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type

toBatch = mapfst_Batch extract ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type

toBatch = mapfst_Batch extract ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type

toBatch = mapfst_Batch extract ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type

traverse (batch A B) = mapfst_Batch extract ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type

mapdt (batch A B ∘ extract) = mapfst_Batch extract ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type

mapdt (batch A B ∘ extract) = mapfst_Batch extract ∘ mapdt (batch (E * A) B)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type

mapdt (batch A B ∘ extract) = mapdt (mapfst_Batch extract ∘ batch (E * A) B)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type

mapdt (batch A B ∘ extract) = mapdt (batch A B ∘ extract)
reflexivity. Qed. (** ** Factoring <<mapdt>> via <<toBatch3>> *) (********************************************************************)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
f: E * A -> G B

mapdt f = runBatch f ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
f: E * A -> G B

mapdt f = runBatch f ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
f: E * A -> G B

mapdt f = runBatch f ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
f: E * A -> G B

mapdt f = runBatch f ∘ mapdt (batch (E * A) B)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
f: E * A -> G B

mapdt f = mapdt (runBatch f ∘ batch (E * A) B)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
f: E * A -> G B

mapdt f = mapdt f
reflexivity. Qed. (** ** Naturality of <<toBatch3>> *) (********************************************************************)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, A', B: Type
f: E * A -> G A'

map toBatch3 ∘ mapdt f = traverse (strength ∘ cobind f) ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, A', B: Type
f: E * A -> G A'

map toBatch3 ∘ mapdt f = traverse (strength ∘ cobind f) ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, A', B: Type
f: E * A -> G A'

map (mapdt (batch (E * A') B)) ∘ mapdt f = traverse (strength ∘ cobind f) ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, A', B: Type
f: E * A -> G A'

mapdt (kc3 (batch (E * A') B) f) = traverse (strength ∘ cobind f) ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, A', B: Type
f: E * A -> G A'

mapdt (kc3 (batch (E * A') B) f) = runBatch (map (batch (E * A') B) ∘ (strength ∘ cobind f)) ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, A', B: Type
f: E * A -> G A'

mapdt (kc3 (batch (E * A') B) f) = mapdt (map (batch (E * A') B) ∘ (strength ∘ cobind f))
reflexivity. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, A', B: Type
f: E * A -> A'

toBatch3 ∘ mapd f = mapfst_Batch (cobind f) ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, A', B: Type
f: E * A -> A'

toBatch3 ∘ mapd f = mapfst_Batch (cobind f) ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, A', B: Type
f: E * A -> A'

mapdt (batch (E * A') B) ∘ mapd f = mapfst_Batch (cobind f) ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, A', B: Type
f: E * A -> A'

mapdt (kc1 (batch (E * A') B) f) = mapfst_Batch (cobind f) ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, A', B: Type
f: E * A -> A'

mapdt (kc1 (batch (E * A') B) f) = mapfst_Batch (cobind f) ∘ mapdt (batch (E * A) B)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, A', B: Type
f: E * A -> A'

mapdt (kc1 (batch (E * A') B) f) = mapdt (mapfst_Batch (cobind f) ∘ batch (E * A) B)
reflexivity. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, A', B: Type
f: A -> A'
C: Type

toBatch3 ∘ map f = mapfst_Batch (map f) ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, A', B: Type
f: A -> A'
C: Type

toBatch3 ∘ map f = mapfst_Batch (map f) ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, A', B: Type
f: A -> A'
C: Type

mapdt (batch (E * A') B) ∘ map f = mapfst_Batch (map f) ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, A', B: Type
f: A -> A'
C: Type

mapdt (batch (E * A') B ∘ map f) = mapfst_Batch (map f) ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, A', B: Type
f: A -> A'
C: Type

mapdt (batch (E * A') B ∘ map f) = mapfst_Batch (map f) ∘ mapdt (batch (E * A) B)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, A', B: Type
f: A -> A'
C: Type

mapdt (batch (E * A') B ∘ map f) = mapdt (mapfst_Batch (map f) ∘ batch (E * A) B)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, A', B: Type
f: A -> A'
C: Type

mapdt (batch (E * A') B ∘ map f) = mapdt (batch (E * A') B ∘ map f)
reflexivity. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, A', B: Type
f: E * A -> A'

toBatch ∘ mapd f = mapfst_Batch f ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, A', B: Type
f: E * A -> A'

toBatch ∘ mapd f = mapfst_Batch f ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, A', B: Type
f: E * A -> A'

mapfst_Batch extract ∘ toBatch3 ∘ mapd f = mapfst_Batch f ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, A', B: Type
f: E * A -> A'

mapfst_Batch extract ∘ (toBatch3 ∘ mapd f) = mapfst_Batch f ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, A', B: Type
f: E * A -> A'

mapfst_Batch extract ∘ (mapfst_Batch (cobind f) ∘ toBatch3) = mapfst_Batch f ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, A', B: Type
f: E * A -> A'

mapfst_Batch extract ∘ mapfst_Batch (cobind f) ∘ toBatch3 = mapfst_Batch f ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, A', B: Type
f: E * A -> A'

mapfst_Batch (extract ∘ cobind f) ∘ toBatch3 = mapfst_Batch f ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, A', B: Type
f: E * A -> A'

mapfst_Batch f ∘ toBatch3 = mapfst_Batch f ∘ toBatch3
reflexivity. Qed. (** * Factoring Operations Through <<toBatch3>> *) (********************************************************************) Section runBatch. (** ** Core Operations *) (******************************************************************)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
f: E * A -> G B

mapdt f = runBatch f ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
f: E * A -> G B

mapdt f = runBatch f ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
f: E * A -> G B

mapdt f = runBatch f ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
f: E * A -> G B

mapdt f = runBatch f ∘ mapdt (batch (E * A) B)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
f: E * A -> G B

mapdt f = mapdt (runBatch f ∘ batch (E * A) B)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
f: E * A -> G B

mapdt f = mapdt f
reflexivity. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
f: A -> G B

traverse f = runBatch (f ∘ extract) ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
f: A -> G B

traverse f = runBatch (f ∘ extract) ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
f: A -> G B

mapdt (f ∘ extract) = runBatch (f ∘ extract) ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
f: A -> G B

runBatch (f ∘ extract) ∘ toBatch3 = runBatch (f ∘ extract) ∘ toBatch3
reflexivity. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B

mapd f = runBatch f ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B

mapd f = runBatch f ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B

mapd f = runBatch f ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B

mapdt f = runBatch f ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B

runBatch f ∘ toBatch3 = runBatch f ∘ toBatch3
reflexivity. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> B

map f = runBatch (f ∘ extract) ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> B

map f = runBatch (f ∘ extract) ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> B

map f = runBatch (f ∘ extract) ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> B

mapdt (f ∘ extract) = runBatch (f ∘ extract) ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> B

runBatch (f ∘ extract) ∘ toBatch3 = runBatch (f ∘ extract) ∘ toBatch3
reflexivity. Qed. (** ** <<mapdReduce>> Through <<toBatch3>> *) (******************************************************************)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, M: Type
op: Monoid_op M
unit0: Monoid_unit M
H0: Monoid M

forall f : E * A -> M, mapdReduce f = runBatch f ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, M: Type
op: Monoid_op M
unit0: Monoid_unit M
H0: Monoid M

forall f : E * A -> M, mapdReduce f = runBatch f ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, M: Type
op: Monoid_op M
unit0: Monoid_unit M
H0: Monoid M
f: E * A -> M

mapdReduce f = runBatch f ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, M: Type
op: Monoid_op M
unit0: Monoid_unit M
H0: Monoid M
f: E * A -> M

mapdt f = runBatch f ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, M: Type
op: Monoid_op M
unit0: Monoid_unit M
H0: Monoid M
f: E * A -> M

runBatch f ∘ toBatch3 = runBatch f ∘ toBatch3
reflexivity. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
M: Type
op: Monoid_op M
unit0: Monoid_unit M
H0: Monoid M

forall (A fake : Type) (f : E * A -> M), mapdReduce f = runBatch f ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
M: Type
op: Monoid_op M
unit0: Monoid_unit M
H0: Monoid M

forall (A fake : Type) (f : E * A -> M), mapdReduce f = runBatch f ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
M: Type
op: Monoid_op M
unit0: Monoid_unit M
H0: Monoid M
A, fake: Type
f: E * A -> M

mapdReduce f = runBatch f ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
M: Type
op: Monoid_op M
unit0: Monoid_unit M
H0: Monoid M
A, fake: Type
f: E * A -> M

mapdt f = runBatch f ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
M: Type
op: Monoid_op M
unit0: Monoid_unit M
H0: Monoid M
A, fake: Type
f: E * A -> M

mapdt f = runBatch f ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
M: Type
op: Monoid_op M
unit0: Monoid_unit M
H0: Monoid M
A, fake: Type
f: E * A -> M

runBatch f ∘ toBatch3 = runBatch f ∘ toBatch3
reflexivity. Qed. (** ** <<toctxlist>> Through <<toBatch3>> *) (******************************************************************)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, tag: Type

toctxlist = runBatch ret ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, tag: Type

toctxlist = runBatch ret ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, tag: Type

mapdt ret = runBatch ret ∘ toBatch3
now rewrite mapdt_through_runBatch. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type

toctxset = runBatch ret ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type

toctxset = runBatch ret ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type

mapdt ret = runBatch ret ∘ toBatch3
now rewrite (mapdt_through_runBatch). Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, tag: Type

toctxset = runBatch ret ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, tag: Type

toctxset = runBatch ret ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, tag: Type

mapdt ret = runBatch ret ∘ toBatch3
now rewrite (mapdt_through_runBatch). Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
H0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A: Type
p: E * A

element_ctx_of p = runBatch {{p}} ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
H0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A: Type
p: E * A

element_ctx_of p = runBatch {{p}} ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
H0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A: Type
p: E * A

mapdReduce {{p}} = runBatch {{p}} ∘ toBatch3
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
H0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A: Type
p: E * A

runBatch {{p}} ∘ toBatch3 = runBatch {{p}} ∘ toBatch3
reflexivity. Qed. End runBatch. (** * Respectfulness Properties *) (********************************************************************) Section decorated_traversable_functor_theory. (** ** Purity *) (******************************************************************)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (G : Type -> Type) (Map_G : Map G) (Pure_G : Pure G) (Mult_G : Mult G), Applicative G -> forall A : Type, mapdt (pure ∘ extract) = pure
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (G : Type -> Type) (Map_G : Map G) (Pure_G : Pure G) (Mult_G : Mult G), Applicative G -> forall A : Type, mapdt (pure ∘ extract) = pure
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A: Type

mapdt (pure ∘ extract) = pure
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A: Type

pure ∘ mapdt extract = pure
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A: Type

pure ∘ id = pure
reflexivity. Qed. (** ** Characterizing <<∈d>> and <<mapd>> *) (******************************************************************)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (G : Type -> Type) (Map_G : Map G) (Pure_G : Pure G) (Mult_G : Mult G), Applicative G -> forall (t : T A) (f g : E * A -> G B), (forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = g (e, a)) -> mapdt f t = mapdt g t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (G : Type -> Type) (Map_G : Map G) (Pure_G : Pure G) (Mult_G : Mult G), Applicative G -> forall (t : T A) (f g : E * A -> G B), (forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = g (e, a)) -> mapdt f t = mapdt g t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
Happl: Applicative G
t: T A
f, g: E * A -> G B
hyp: forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = g (e, a)

mapdt f t = mapdt g t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
Happl: Applicative G
t: T A
f, g: E * A -> G B
hyp: forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = g (e, a)

(runBatch f ∘ toBatch3) t = (runBatch g ∘ toBatch3) t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
Happl: Applicative G
t: T A
f, g: E * A -> G B
hyp: forall (e : E) (a : A), toctxset t (e, a) -> f (e, a) = g (e, a)

(runBatch f ∘ toBatch3) t = (runBatch g ∘ toBatch3) t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
Happl: Applicative G
t: T A
f, g: E * A -> G B
hyp: forall (e : E) (a : A), (runBatch ret ∘ toBatch3) t (e, a) -> f (e, a) = g (e, a)

(runBatch f ∘ toBatch3) t = (runBatch g ∘ toBatch3) t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
Happl: Applicative G
t: T A
f, g: E * A -> G B
hyp: forall (e : E) (a : A), runBatch ret (toBatch3 t) (e, a) -> f (e, a) = g (e, a)

runBatch f (toBatch3 t) = runBatch g (toBatch3 t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
Happl: Applicative G
t: T A
f, g: E * A -> G B
C: Type
c: C
hyp: forall (e : E) (a : A), runBatch ret (Done c) (e, a) -> f (e, a) = g (e, a)

runBatch f (Done c) = runBatch g (Done c)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
Happl: Applicative G
t: T A
f, g: E * A -> G B
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
hyp: forall (e : E) (a0 : A), runBatch ret (b ⧆ a) (e, a0) -> f (e, a0) = g (e, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b
runBatch f (b ⧆ a) = runBatch g (b ⧆ a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
Happl: Applicative G
t: T A
f, g: E * A -> G B
C: Type
c: C
hyp: forall (e : E) (a : A), runBatch ret (Done c) (e, a) -> f (e, a) = g (e, a)

runBatch f (Done c) = runBatch g (Done c)
reflexivity.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
Happl: Applicative G
t: T A
f, g: E * A -> G B
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
hyp: forall (e : E) (a0 : A), runBatch ret (b ⧆ a) (e, a0) -> f (e, a0) = g (e, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b

runBatch f (b ⧆ a) = runBatch g (b ⧆ a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
Happl: Applicative G
t: T A
f, g: E * A -> G B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b

runBatch f (b ⧆ (e, a)) = runBatch g (b ⧆ (e, a))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
Happl: Applicative G
t: T A
f, g: E * A -> G B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b

ap G (runBatch f b) (f (e, a)) = ap G (runBatch g b) (g (e, a))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
Happl: Applicative G
t: T A
f, g: E * A -> G B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b

ap G (runBatch g b) (f (e, a)) = ap G (runBatch g b) (g (e, a))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
Happl: Applicative G
t: T A
f, g: E * A -> G B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b
forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
Happl: Applicative G
t: T A
f, g: E * A -> G B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b

ap G (runBatch g b) (g (e, a)) = ap G (runBatch g b) (g (e, a))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
Happl: Applicative G
t: T A
f, g: E * A -> G B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b
runBatch ret (b ⧆ (e, a)) (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
Happl: Applicative G
t: T A
f, g: E * A -> G B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b
forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
Happl: Applicative G
t: T A
f, g: E * A -> G B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b

runBatch ret (b ⧆ (e, a)) (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
Happl: Applicative G
t: T A
f, g: E * A -> G B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b
forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
Happl: Applicative G
t: T A
f, g: E * A -> G B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b

runBatch ret (b ⧆ (e, a)) (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
Happl: Applicative G
t: T A
f, g: E * A -> G B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b

(runBatch ret b ● ret (e, a)) (e, a)
now right.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
Happl: Applicative G
t: T A
f, g: E * A -> G B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b

forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
Happl: Applicative G
t: T A
f, g: E * A -> G B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b
e0: E
a0: A
hyp2: runBatch ret b (e0, a0)

f (e0, a0) = g (e0, a0)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
Happl: Applicative G
t: T A
f, g: E * A -> G B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b
e0: E
a0: A
hyp2: runBatch ret b (e0, a0)

runBatch ret (b ⧆ (e, a)) (e0, a0)
now left. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A : Type) (G : Type -> Type) (Map_G : Map G) (Pure_G : Pure G) (Mult_G : Mult G), Applicative G -> forall (t : T A) (f : E * A -> G A), (forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = pure a) -> mapdt f t = pure t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A : Type) (G : Type -> Type) (Map_G : Map G) (Pure_G : Pure G) (Mult_G : Mult G), Applicative G -> forall (t : T A) (f : E * A -> G A), (forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = pure a) -> mapdt f t = pure t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
t: T A
f: E * A -> G A
H1: forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = pure a

mapdt f t = pure t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
t: T A
f: E * A -> G A
H1: forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = pure a

mapdt f t = mapdt (pure ∘ extract) t
now apply mapdt_respectful. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A : Type) (t : T A) (f : E * A -> A), (forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = a) -> mapdt f t = t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A : Type) (t : T A) (f : E * A -> A), (forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = a) -> mapdt f t = t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A
f: E * A -> A
H0: forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = a

mapdt f t = t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A
f: E * A -> A
H0: forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = a

mapdt f t = id t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A
f: E * A -> A
H0: forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = a

mapdt f t = mapdt extract t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A
f: E * A -> A
H0: forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = a

forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = extract (e, a)
assumption. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (t : T A) (f g : E * A -> B), (forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = g (e, a)) -> mapd f t = mapd g t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (t : T A) (f g : E * A -> B), (forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = g (e, a)) -> mapd f t = mapd g t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
hyp: forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = g (e, a)

mapd f t = mapd g t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
hyp: forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = g (e, a)

(runBatch f ∘ toBatch3) t = mapd g t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
hyp: forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = g (e, a)

(runBatch f ∘ toBatch3) t = (runBatch g ∘ toBatch3) t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
hyp: forall (e : E) (a : A), toctxset t (e, a) -> f (e, a) = g (e, a)

(runBatch f ∘ toBatch3) t = (runBatch g ∘ toBatch3) t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
hyp: forall (e : E) (a : A), (runBatch ret ∘ toBatch3) t (e, a) -> f (e, a) = g (e, a)

(runBatch f ∘ toBatch3) t = (runBatch g ∘ toBatch3) t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
hyp: forall (e : E) (a : A), runBatch ret (toBatch3 t) (e, a) -> f (e, a) = g (e, a)

runBatch f (toBatch3 t) = runBatch g (toBatch3 t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
C: Type
c: C
hyp: forall (e : E) (a : A), runBatch ret (Done c) (e, a) -> f (e, a) = g (e, a)

runBatch f (Done c) = runBatch g (Done c)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
hyp: forall (e : E) (a0 : A), runBatch ret (b ⧆ a) (e, a0) -> f (e, a0) = g (e, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b
runBatch f (b ⧆ a) = runBatch g (b ⧆ a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
C: Type
c: C
hyp: forall (e : E) (a : A), runBatch ret (Done c) (e, a) -> f (e, a) = g (e, a)

runBatch f (Done c) = runBatch g (Done c)
reflexivity.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
hyp: forall (e : E) (a0 : A), runBatch ret (b ⧆ a) (e, a0) -> f (e, a0) = g (e, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b

runBatch f (b ⧆ a) = runBatch g (b ⧆ a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b

runBatch f (b ⧆ (e, a)) = runBatch g (b ⧆ (e, a))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b

runBatch f b (f (e, a)) = runBatch g b (g (e, a))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b

runBatch g b (f (e, a)) = runBatch g b (g (e, a))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b
forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b

runBatch g b (g (e, a)) = runBatch g b (g (e, a))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b
runBatch ret (b ⧆ (e, a)) (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b
forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b

runBatch ret (b ⧆ (e, a)) (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b
forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b

runBatch ret (b ⧆ (e, a)) (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b

(runBatch ret b ● ret (e, a)) (e, a)
now right.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b

forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b
e0: E
a0: A
hyp2: runBatch ret b (e0, a0)

f (e0, a0) = g (e0, a0)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
hyp: forall (e0 : E) (a0 : A), runBatch ret (b ⧆ (e, a)) (e0, a0) -> f (e0, a0) = g (e0, a0)
IHb: (forall (e : E) (a : A), runBatch ret b (e, a) -> f (e, a) = g (e, a)) -> runBatch f b = runBatch g b
e0: E
a0: A
hyp2: runBatch ret b (e0, a0)

runBatch ret (b ⧆ (e, a)) (e0, a0)
now left. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (t : T A) (f g : E * A -> B), mapd f t = mapd g t -> mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (t : T A) (f g : E * A -> B), mapd f t = mapd g t -> mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t

mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t

mapfst_Batch (cobind f) (toBatch3 t) = mapfst_Batch (cobind g) (toBatch3 t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t
cut: mapfst_Batch (cobind f) (toBatch3 t) = mapfst_Batch (cobind g) (toBatch3 t)
mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t

mapfst_Batch (cobind f) (toBatch3 t) = mapfst_Batch (cobind g) (toBatch3 t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t

(mapfst_Batch (cobind f) ∘ toBatch3) t = (mapfst_Batch (cobind g) ∘ toBatch3) t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t

(toBatch3 ∘ mapd f) t = (mapfst_Batch (cobind g) ∘ toBatch3) t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t

(toBatch3 ∘ mapd f) t = (toBatch3 ∘ mapd g) t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t

toBatch3 (mapd f t) = toBatch3 (mapd g t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t

toBatch3 (mapd g t) = toBatch3 (mapd g t)
reflexivity.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t
cut: mapfst_Batch (cobind f) (toBatch3 t) = mapfst_Batch (cobind g) (toBatch3 t)

mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t
C: Type
c: C
cut: mapfst_Batch (cobind f) (Done c) = mapfst_Batch (cobind g) (Done c)

mapfst_Batch f (Done c) = mapfst_Batch g (Done c)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
cut: mapfst_Batch (cobind f) (b ⧆ a) = mapfst_Batch (cobind g) (b ⧆ a)
IHb: mapd f t = mapd g t -> mapfst_Batch (cobind f) b = mapfst_Batch (cobind g) b -> mapfst_Batch f b = mapfst_Batch g b
mapfst_Batch f (b ⧆ a) = mapfst_Batch g (b ⧆ a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t
C: Type
c: C
cut: mapfst_Batch (cobind f) (Done c) = mapfst_Batch (cobind g) (Done c)

mapfst_Batch f (Done c) = mapfst_Batch g (Done c)
reflexivity.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
cut: mapfst_Batch (cobind f) (b ⧆ a) = mapfst_Batch (cobind g) (b ⧆ a)
IHb: mapd f t = mapd g t -> mapfst_Batch (cobind f) b = mapfst_Batch (cobind g) b -> mapfst_Batch f b = mapfst_Batch g b

mapfst_Batch f (b ⧆ a) = mapfst_Batch g (b ⧆ a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
cut: mapfst_Batch (cobind f) (b ⧆ a) = mapfst_Batch (cobind g) (b ⧆ a)
IHb: mapd f t = mapd g t -> mapfst_Batch (cobind f) b = mapfst_Batch (cobind g) b -> mapfst_Batch f b = mapfst_Batch g b

mapfst_Batch f b ⧆ f a = mapfst_Batch g b ⧆ g a
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
cut: mapfst_Batch (cobind f) (b ⧆ a) = mapfst_Batch (cobind g) (b ⧆ a)
IHb: mapd f t = mapd g t -> mapfst_Batch (cobind f) b = mapfst_Batch (cobind g) b -> mapfst_Batch f b = mapfst_Batch g b

mapfst_Batch f b = mapfst_Batch g b
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
cut: mapfst_Batch (cobind f) (b ⧆ a) = mapfst_Batch (cobind g) (b ⧆ a)
IHb: mapd f t = mapd g t -> mapfst_Batch (cobind f) b = mapfst_Batch (cobind g) b -> mapfst_Batch f b = mapfst_Batch g b
f a = g a
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
cut: mapfst_Batch (cobind f) (b ⧆ a) = mapfst_Batch (cobind g) (b ⧆ a)
IHb: mapd f t = mapd g t -> mapfst_Batch (cobind f) b = mapfst_Batch (cobind g) b -> mapfst_Batch f b = mapfst_Batch g b

mapfst_Batch f b = mapfst_Batch g b
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
cut: mapfst_Batch (cobind f) (b ⧆ a) = mapfst_Batch (cobind g) (b ⧆ a)
IHb: mapd f t = mapd g t -> mapfst_Batch (cobind f) b = mapfst_Batch (cobind g) b -> mapfst_Batch f b = mapfst_Batch g b

mapd f t = mapd g t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
cut: mapfst_Batch (cobind f) (b ⧆ a) = mapfst_Batch (cobind g) (b ⧆ a)
IHb: mapd f t = mapd g t -> mapfst_Batch (cobind f) b = mapfst_Batch (cobind g) b -> mapfst_Batch f b = mapfst_Batch g b
mapfst_Batch (cobind f) b = mapfst_Batch (cobind g) b
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
cut: mapfst_Batch (cobind f) (b ⧆ a) = mapfst_Batch (cobind g) (b ⧆ a)
IHb: mapd f t = mapd g t -> mapfst_Batch (cobind f) b = mapfst_Batch (cobind g) b -> mapfst_Batch f b = mapfst_Batch g b

mapfst_Batch (cobind f) b = mapfst_Batch (cobind g) b
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
cut: mapfst_Batch (cobind f) (b ⧆ a) = mapfst_Batch (cobind g) (b ⧆ a)
IHb: mapd f t = mapd g t -> mapfst_Batch (cobind f) b = mapfst_Batch (cobind g) b -> mapfst_Batch f b = mapfst_Batch g b
H2: mapfst_Batch (cobind f) b = mapfst_Batch (cobind g) b
H3: cobind f a = cobind g a

mapfst_Batch (cobind f) b = mapfst_Batch (cobind f) b
eauto.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
cut: mapfst_Batch (cobind f) (b ⧆ a) = mapfst_Batch (cobind g) (b ⧆ a)
IHb: mapd f t = mapd g t -> mapfst_Batch (cobind f) b = mapfst_Batch (cobind g) b -> mapfst_Batch f b = mapfst_Batch g b

f a = g a
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
cut: mapfst_Batch (cobind f) (b ⧆ a) = mapfst_Batch (cobind g) (b ⧆ a)
IHb: mapd f t = mapd g t -> mapfst_Batch (cobind f) b = mapfst_Batch (cobind g) b -> mapfst_Batch f b = mapfst_Batch g b

f a = g a
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
cut: mapfst_Batch (cobind f) (b ⧆ a) = mapfst_Batch (cobind g) (b ⧆ a)
IHb: mapd f t = mapd g t -> mapfst_Batch (cobind f) b = mapfst_Batch (cobind g) b -> mapfst_Batch f b = mapfst_Batch g b
H2: mapfst_Batch (cobind f) b = mapfst_Batch (cobind g) b
H3: cobind f a = cobind g a

f a = g a
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
cut: mapfst_Batch (cobind f) (b ⧆ (e, a)) = mapfst_Batch (cobind g) (b ⧆ (e, a))
IHb: mapd f t = mapd g t -> mapfst_Batch (cobind f) b = mapfst_Batch (cobind g) b -> mapfst_Batch f b = mapfst_Batch g b
H2: mapfst_Batch (cobind f) b = mapfst_Batch (cobind g) b
H3: cobind f (e, a) = cobind g (e, a)

f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: mapd f t = mapd g t
C: Type
b: Batch (E * A) B (B -> C)
e: E
a: A
cut: mapfst_Batch (cobind f) (b ⧆ (e, a)) = mapfst_Batch (cobind g) (b ⧆ (e, a))
IHb: mapd f t = mapd g t -> mapfst_Batch (cobind f) b = mapfst_Batch (cobind g) b -> mapfst_Batch f b = mapfst_Batch g b
H2: mapfst_Batch (cobind f) b = mapfst_Batch (cobind g) b
H3: (e, f (e, a)) = (e, g (e, a))

f (e, a) = g (e, a)
inversion H3; auto. } Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T

forall (A B : Type) (t : T A) (f g : E * A -> B), (forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = g (e, a)) <-> mapd f t = mapd g t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T

forall (A B : Type) (t : T A) (f g : E * A -> B), (forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = g (e, a)) <-> mapd f t = mapd g t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B

(forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = g (e, a)) -> mapd f t = mapd g t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
mapd f t = mapd g t -> forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B

(forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = g (e, a)) -> mapd f t = mapd g t
apply mapd_respectful.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B

mapd f t = mapd g t -> forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapd f t = mapd g t
e: E
a: A
Hf: (e, a) ∈d t

f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: (e, a) ∈d t

f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: mapdReduce {{(e, a)}} t

f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: (runBatch {{(e, a)}} ∘ toBatch3) t

f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)

f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b

f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b

forall (C : Type) (c : C), mapfst_Batch f (Done c) = mapfst_Batch g (Done c) -> runBatch {{(e, a)}} (Done c) -> f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b
forall (C : Type) (b : Batch (E * A) B (B -> C)), (mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) -> forall a0 : E * A, mapfst_Batch f (b ⧆ a0) = mapfst_Batch g (b ⧆ a0) -> runBatch {{(e, a)}} (b ⧆ a0) -> f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b
mapfst_Batch f ?b = mapfst_Batch g ?b
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b
runBatch {{(e, a)}} ?b
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b

forall (C : Type) (c : C), mapfst_Batch f (Done c) = mapfst_Batch g (Done c) -> runBatch {{(e, a)}} (Done c) -> f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b
C: Type
c: C
X: mapfst_Batch f (Done c) = mapfst_Batch g (Done c)
Y: runBatch {{(e, a)}} (Done c)

f (e, a) = g (e, a)
inversion Y.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b

forall (C : Type) (b : Batch (E * A) B (B -> C)), (mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) -> forall a0 : E * A, mapfst_Batch f (b ⧆ a0) = mapfst_Batch g (b ⧆ a0) -> runBatch {{(e, a)}} (b ⧆ a0) -> f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b
C: Type
b: Batch (E * A) B (B -> C)
Hb: mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)
e': E
a': A

mapfst_Batch f (b ⧆ (e', a')) = mapfst_Batch g (b ⧆ (e', a')) -> runBatch {{(e, a)}} (b ⧆ (e', a')) -> f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b
C: Type
b: Batch (E * A) B (B -> C)
Hb: mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)
e': E
a': A

mapfst_Batch f b ⧆ f (e', a') = mapfst_Batch g (b ⧆ (e', a')) -> runBatch {{(e, a)}} (b ⧆ (e', a')) -> f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b
C: Type
b: Batch (E * A) B (B -> C)
Hb: mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)
e': E
a': A

mapfst_Batch f b ⧆ f (e', a') = mapfst_Batch g b ⧆ g (e', a') -> runBatch {{(e, a)}} (b ⧆ (e', a')) -> f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b
C: Type
b: Batch (E * A) B (B -> C)
Hb: mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)
e': E
a': A

mapfst_Batch f b ⧆ f (e', a') = mapfst_Batch g b ⧆ g (e', a') -> ap (const Prop) (runBatch {{(e, a)}} b) ({{(e, a)}} (e', a')) -> f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b
C: Type
b: Batch (E * A) B (B -> C)
Hb: mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)
e': E
a': A

mapfst_Batch f b ⧆ f (e', a') = mapfst_Batch g b ⧆ g (e', a') -> map (fun '(f, a) => f a) (mult (runBatch {{(e, a)}} b, {{(e, a)}} (e', a'))) -> f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b
C: Type
b: Batch (E * A) B (B -> C)
Hb: mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)
e': E
a': A

mapfst_Batch f b ⧆ f (e', a') = mapfst_Batch g b ⧆ g (e', a') -> mult (runBatch {{(e, a)}} b, {{(e, a)}} (e', a')) -> f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b
C: Type
b: Batch (E * A) B (B -> C)
Hb: mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)
e': E
a': A

mapfst_Batch f b ⧆ f (e', a') = mapfst_Batch g b ⧆ g (e', a') -> runBatch {{(e, a)}} b ● {{(e, a)}} (e', a') -> f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b
C: Type
b: Batch (E * A) B (B -> C)
Hb: mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)
e': E
a': A

mapfst_Batch f b ⧆ f (e', a') = mapfst_Batch g b ⧆ g (e', a') -> runBatch {{(e, a)}} b \/ {{(e, a)}} (e', a') -> f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b
C: Type
b: Batch (E * A) B (B -> C)
Hb: mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)
e': E
a': A
X: mapfst_Batch f b ⧆ f (e', a') = mapfst_Batch g b ⧆ g (e', a')
Case1: runBatch {{(e, a)}} b

f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b
C: Type
b: Batch (E * A) B (B -> C)
Hb: mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)
e': E
a': A
X: mapfst_Batch f b ⧆ f (e', a') = mapfst_Batch g b ⧆ g (e', a')
Case2: {{(e, a)}} (e', a')
f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b
C: Type
b: Batch (E * A) B (B -> C)
Hb: mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)
e': E
a': A
X: mapfst_Batch f b ⧆ f (e', a') = mapfst_Batch g b ⧆ g (e', a')
Case1: runBatch {{(e, a)}} b

f (e, a) = g (e, a)
apply Hb; inversion X; auto.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b
C: Type
b: Batch (E * A) B (B -> C)
Hb: mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)
e': E
a': A
X: mapfst_Batch f b ⧆ f (e', a') = mapfst_Batch g b ⧆ g (e', a')
Case2: {{(e, a)}} (e', a')

f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b
C: Type
b: Batch (E * A) B (B -> C)
Hb: mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)
e': E
a': A
X: mapfst_Batch f b ⧆ f (e', a') = mapfst_Batch g b ⧆ g (e', a')
Case2: {{(e, a)}} (e', a')

f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b
C: Type
b: Batch (E * A) B (B -> C)
Hb: mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)
e': E
a': A
X: mapfst_Batch f b ⧆ f (e', a') = mapfst_Batch g b ⧆ g (e', a')
Case2: {{(e, a)}} (e', a')
H1: mapfst_Batch f b = mapfst_Batch g b
H2: f (e', a') = g (e', a')

f (e, a) = g (e, a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e': E
a': A
Hf: runBatch {{(e', a')}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e', a')}} b -> f (e', a') = g (e', a')): (forall (C : Type) (c : C), mapfst_Batch f (Done c) = mapfst_Batch g (Done c) -> runBatch {{(e', a')}} (Done c) -> f (e', a') = g (e', a')) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e', a')}} b -> f (e', a') = g (e', a')) -> forall a : E * A, mapfst_Batch f (b ⧆ a) = mapfst_Batch g (b ⧆ a) -> runBatch {{(e', a')}} (b ⧆ a) -> f (e', a') = g (e', a')) -> forall (C : Type) (b : Batch (E * A) B C), mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e', a')}} b -> f (e', a') = g (e', a')
C: Type
b: Batch (E * A) B (B -> C)
Hb: mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e', a')}} b -> f (e', a') = g (e', a')
X: mapfst_Batch f b ⧆ f (e', a') = mapfst_Batch g b ⧆ g (e', a')
Case2: {{(e', a')}} (e', a')
H1: mapfst_Batch f b = mapfst_Batch g b
H2: f (e', a') = g (e', a')

f (e', a') = g (e', a')
assumption. }
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b

Type
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b
Batch (E * A) B ?C
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b

Batch (E * A) B (T B)
exact (toBatch3 t).
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b

mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
assumption.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
ToSubset0: ToSubset T
Compat_ToSubset_Traverse0: Compat_ToSubset_Traverse T
A, B: Type
t: T A
f, g: E * A -> B
Heq: mapfst_Batch f (toBatch3 t) = mapfst_Batch g (toBatch3 t)
e: E
a: A
Hf: runBatch {{(e, a)}} (toBatch3 t)
e0:= Batch_ind (E * A) B (fun (C : Type) (b : Batch (E * A) B C) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)): (forall (C : Type) (c : C), (fun (C0 : Type) (b : Batch (E * A) B C0) => mapfst_Batch f b = mapfst_Batch g b -> runBatch {{(e, a)}} b -> f (e, a) = g (e, a)) C (Done c)) -> (forall (C : Type) (b : Batch (E * A) B (B -> C)), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) (B -> C) b -> forall a0 : E * A, (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C (b ⧆ a0)) -> forall (C : Type) (b : Batch (E * A) B C), (fun (C0 : Type) (b0 : Batch (E * A) B C0) => mapfst_Batch f b0 = mapfst_Batch g b0 -> runBatch {{(e, a)}} b0 -> f (e, a) = g (e, a)) C b

runBatch {{(e, a)}} (toBatch3 t)
assumption. Qed. Import Kleisli.DecoratedTraversableFunctor.DerivedInstances.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

DecoratedContainerFunctor E T
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

DecoratedContainerFunctor E T
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

DecoratedFunctor E T
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
DecoratedHom E T (ctxset E) (@toctxset E T ToCtxset_inst)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
forall (A B : Type) (t : T A) (f g : E * A -> B), (forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = g (e, a)) -> mapd f t = mapd g t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

DecoratedFunctor E T
typeclasses eauto.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

DecoratedHom E T (ctxset E) (@toctxset E T ToCtxset_inst)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (f : E * A -> B), mapd f ∘ toctxset = toctxset ∘ mapd f
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B

mapd f ∘ toctxset = toctxset ∘ mapd f
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B

mapd f ∘ toctxset = mapd f ∘ toctxset
reflexivity.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (t : T A) (f g : E * A -> B), (forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = g (e, a)) -> mapd f t = mapd g t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = g (e, a)

mapd f t = mapd g t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f, g: E * A -> B
H0: forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = g (e, a)

forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = g (e, a)
assumption. Qed. End decorated_traversable_functor_theory. (** * Shapeliness *) (********************************************************************) Section shapeliness. Import Kleisli.DecoratedTraversableFunctor.DerivedInstances.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type

forall (f : E * A -> B) (t : T A), shape (mapd f t) = shape t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type

forall (f : E * A -> B) (t : T A), shape (mapd f t) = shape t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t: T A

shape (mapd f t) = shape t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t: T A

map (const tt) (mapd f t) = map (const tt) t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t: T A

(map (const tt) ∘ mapd f) t = map (const tt) t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t: T A

mapd (const tt ∘ f) t = map (const tt) t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t: T A

mapd (const tt ∘ f) t = mapd (const tt ∘ extract) t
reflexivity. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type

forall (f : E * A -> B) (t1 t2 : T A), (forall p q : E * A, f p = f q -> p = q) -> mapd f (toctxlist t1) = mapd f (toctxlist t2) -> tolist t1 = tolist t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type

forall (f : E * A -> B) (t1 t2 : T A), (forall p q : E * A, f p = f q -> p = q) -> mapd f (toctxlist t1) = mapd f (toctxlist t2) -> tolist t1 = tolist t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q

mapd f (toctxlist t1) = mapd f (toctxlist t2) -> tolist t1 = tolist t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q

mapd f (toctxlist t1) = mapd f (toctxlist t2) -> (map extract ∘ toctxlist) t1 = (map extract ∘ toctxlist) t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q

mapd f (toctxlist t1) = mapd f (toctxlist t2) -> map extract (toctxlist t1) = map extract (toctxlist t2)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q

forall e : env E A, mapd f (toctxlist t1) = mapd f e -> map extract (toctxlist t1) = map extract e
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
toctxlist_t2: env E A
premise: mapd f [] = mapd f toctxlist_t2

map extract [] = map extract toctxlist_t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
premise: mapd f ((e, a) :: rest) = mapd f toctxlist_t2
map extract ((e, a) :: rest) = map extract toctxlist_t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
toctxlist_t2: env E A
premise: mapd f [] = mapd f toctxlist_t2

map extract [] = map extract toctxlist_t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
toctxlist_t2: env E A
premise: mapd f [] = mapd f []

map extract [] = map extract []
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
premise: mapd f [] = mapd f ((e', a') :: rest')
map extract [] = map extract ((e', a') :: rest')
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
toctxlist_t2: env E A
premise: mapd f [] = mapd f []

map extract [] = map extract []
reflexivity.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
premise: mapd f [] = mapd f ((e', a') :: rest')

map extract [] = map extract ((e', a') :: rest')
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
premise: mapd f [] = mapd f ((e', a') :: rest')

False
inversion premise.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
premise: mapd f ((e, a) :: rest) = mapd f toctxlist_t2

map extract ((e, a) :: rest) = map extract toctxlist_t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
premise: mapd f ((e, a) :: rest) = mapd f []

map extract ((e, a) :: rest) = map extract []
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
premise: mapd f ((e, a) :: rest) = mapd f ((e', a') :: rest')
map extract ((e, a) :: rest) = map extract ((e', a') :: rest')
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
premise: mapd f ((e, a) :: rest) = mapd f []

map extract ((e, a) :: rest) = map extract []
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
premise: mapd f ((e, a) :: rest) = mapd f []

False
inversion premise.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
premise: mapd f ((e, a) :: rest) = mapd f ((e', a') :: rest')

map extract ((e, a) :: rest) = map extract ((e', a') :: rest')
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'

a :: map extract rest = a' :: map extract rest'
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'

a = a'
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'
map extract rest = map extract rest'
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'

a = a'
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'
Heq: f (e, a) = f (e', a')

a = a'
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
e': E
a': A
Hinj: (e, a) = (e', a')
rest: list (E * A)
IHrest: forall e : env E A, mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
rest': list (E * A)
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'
Heq: f (e, a) = f (e', a')

a = a'
now inversion Hinj.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'

map extract rest = map extract rest'
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'

mapd f rest = mapd f rest'
now inversion premise. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type

forall (f : E * A -> B) (t1 t2 : T A), (forall p q : E * A, p ∈d toctxlist t1 -> q ∈d toctxlist t2 -> f p = f q -> p = q) -> mapd f (toctxlist t1) = mapd f (toctxlist t2) -> tolist t1 = tolist t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type

forall (f : E * A -> B) (t1 t2 : T A), (forall p q : E * A, p ∈d toctxlist t1 -> q ∈d toctxlist t2 -> f p = f q -> p = q) -> mapd f (toctxlist t1) = mapd f (toctxlist t2) -> tolist t1 = tolist t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, p ∈d toctxlist t1 -> q ∈d toctxlist t2 -> f p = f q -> p = q

mapd f (toctxlist t1) = mapd f (toctxlist t2) -> tolist t1 = tolist t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, p ∈d toctxlist t1 -> q ∈d toctxlist t2 -> f p = f q -> p = q

mapd f (toctxlist t1) = mapd f (toctxlist t2) -> (map extract ∘ toctxlist) t1 = (map extract ∘ toctxlist) t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, p ∈d toctxlist t1 -> q ∈d toctxlist t2 -> f p = f q -> p = q

mapd f (toctxlist t1) = mapd f (toctxlist t2) -> map extract (toctxlist t1) = map extract (toctxlist t2)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A

forall e : env E A, (forall p q : E * A, p ∈d toctxlist t1 -> q ∈d e -> f p = f q -> p = q) -> mapd f (toctxlist t1) = mapd f e -> map extract (toctxlist t1) = map extract e
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
toctxlist_t2: env E A
Hinj: forall p q : E * A, p ∈d [] -> q ∈d toctxlist_t2 -> f p = f q -> p = q
premise: mapd f [] = mapd f toctxlist_t2

map extract [] = map extract toctxlist_t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall p q : E * A, p ∈d rest -> q ∈d e -> f p = f q -> p = q) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
Hinj: forall p q : E * A, p ∈d ((e, a) :: rest) -> q ∈d toctxlist_t2 -> f p = f q -> p = q
premise: mapd f ((e, a) :: rest) = mapd f toctxlist_t2
map extract ((e, a) :: rest) = map extract toctxlist_t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
toctxlist_t2: env E A
Hinj: forall p q : E * A, p ∈d [] -> q ∈d toctxlist_t2 -> f p = f q -> p = q
premise: mapd f [] = mapd f toctxlist_t2

map extract [] = map extract toctxlist_t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
toctxlist_t2: env E A
Hinj: forall p q : E * A, p ∈d [] -> q ∈d [] -> f p = f q -> p = q
premise: mapd f [] = mapd f []

map extract [] = map extract []
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall p q : E * A, p ∈d [] -> q ∈d ((e', a') :: rest') -> f p = f q -> p = q
premise: mapd f [] = mapd f ((e', a') :: rest')
map extract [] = map extract ((e', a') :: rest')
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
toctxlist_t2: env E A
Hinj: forall p q : E * A, p ∈d [] -> q ∈d [] -> f p = f q -> p = q
premise: mapd f [] = mapd f []

map extract [] = map extract []
reflexivity.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall p q : E * A, p ∈d [] -> q ∈d ((e', a') :: rest') -> f p = f q -> p = q
premise: mapd f [] = mapd f ((e', a') :: rest')

map extract [] = map extract ((e', a') :: rest')
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall p q : E * A, p ∈d [] -> q ∈d ((e', a') :: rest') -> f p = f q -> p = q
premise: mapd f [] = mapd f ((e', a') :: rest')

False
inversion premise.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall p q : E * A, p ∈d rest -> q ∈d e -> f p = f q -> p = q) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
Hinj: forall p q : E * A, p ∈d ((e, a) :: rest) -> q ∈d toctxlist_t2 -> f p = f q -> p = q
premise: mapd f ((e, a) :: rest) = mapd f toctxlist_t2

map extract ((e, a) :: rest) = map extract toctxlist_t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall p q : E * A, p ∈d rest -> q ∈d e -> f p = f q -> p = q) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
Hinj: forall p q : E * A, p ∈d ((e, a) :: rest) -> q ∈d [] -> f p = f q -> p = q
premise: mapd f ((e, a) :: rest) = mapd f []

map extract ((e, a) :: rest) = map extract []
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall p q : E * A, p ∈d rest -> q ∈d e -> f p = f q -> p = q) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall p q : E * A, p ∈d ((e, a) :: rest) -> q ∈d ((e', a') :: rest') -> f p = f q -> p = q
premise: mapd f ((e, a) :: rest) = mapd f ((e', a') :: rest')
map extract ((e, a) :: rest) = map extract ((e', a') :: rest')
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall p q : E * A, p ∈d rest -> q ∈d e -> f p = f q -> p = q) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
Hinj: forall p q : E * A, p ∈d ((e, a) :: rest) -> q ∈d [] -> f p = f q -> p = q
premise: mapd f ((e, a) :: rest) = mapd f []

map extract ((e, a) :: rest) = map extract []
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall p q : E * A, p ∈d rest -> q ∈d e -> f p = f q -> p = q) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
Hinj: forall p q : E * A, p ∈d ((e, a) :: rest) -> q ∈d [] -> f p = f q -> p = q
premise: mapd f ((e, a) :: rest) = mapd f []

False
inversion premise.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall p q : E * A, p ∈d rest -> q ∈d e -> f p = f q -> p = q) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall p q : E * A, p ∈d ((e, a) :: rest) -> q ∈d ((e', a') :: rest') -> f p = f q -> p = q
premise: mapd f ((e, a) :: rest) = mapd f ((e', a') :: rest')

map extract ((e, a) :: rest) = map extract ((e', a') :: rest')
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall p q : E * A, p ∈d rest -> q ∈d e -> f p = f q -> p = q) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall p q : E * A, (e, a) = p \/ List.In p rest -> (e', a') = q \/ List.In q rest' -> f p = f q -> p = q
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'

a :: map extract rest = a' :: map extract rest'
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall p q : E * A, p ∈d rest -> q ∈d e -> f p = f q -> p = q) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall p q : E * A, (e, a) = p \/ List.In p rest -> (e', a') = q \/ List.In q rest' -> f p = f q -> p = q
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'

a = a'
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall p q : E * A, p ∈d rest -> q ∈d e -> f p = f q -> p = q) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall p q : E * A, (e, a) = p \/ List.In p rest -> (e', a') = q \/ List.In q rest' -> f p = f q -> p = q
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'
map extract rest = map extract rest'
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall p q : E * A, p ∈d rest -> q ∈d e -> f p = f q -> p = q) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall p q : E * A, (e, a) = p \/ List.In p rest -> (e', a') = q \/ List.In q rest' -> f p = f q -> p = q
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'

a = a'
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall p q : E * A, p ∈d rest -> q ∈d e -> f p = f q -> p = q) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall p q : E * A, (e, a) = p \/ List.In p rest -> (e', a') = q \/ List.In q rest' -> f p = f q -> p = q
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'
Heq: f (e, a) = f (e', a')

a = a'
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall p q : E * A, p ∈d rest -> q ∈d e -> f p = f q -> p = q) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall p q : E * A, (e, a) = p \/ List.In p rest -> (e', a') = q \/ List.In q rest' -> f p = f q -> p = q
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'
Heq: f (e, a) = f (e', a')

(e, a) = (e', a')
apply Hinj; auto.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall p q : E * A, p ∈d rest -> q ∈d e -> f p = f q -> p = q) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall p q : E * A, (e, a) = p \/ List.In p rest -> (e', a') = q \/ List.In q rest' -> f p = f q -> p = q
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'

map extract rest = map extract rest'
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall p q : E * A, p ∈d rest -> q ∈d e -> f p = f q -> p = q) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall p q : E * A, (e, a) = p \/ List.In p rest -> (e', a') = q \/ List.In q rest' -> f p = f q -> p = q
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'

forall p q : E * A, p ∈d rest -> q ∈d rest' -> f p = f q -> p = q
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall p q : E * A, p ∈d rest -> q ∈d e -> f p = f q -> p = q) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall p q : E * A, (e, a) = p \/ List.In p rest -> (e', a') = q \/ List.In q rest' -> f p = f q -> p = q
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'
mapd f rest = mapd f rest'
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall p q : E * A, p ∈d rest -> q ∈d e -> f p = f q -> p = q) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall p q : E * A, (e, a) = p \/ List.In p rest -> (e', a') = q \/ List.In q rest' -> f p = f q -> p = q
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'

forall p q : E * A, p ∈d rest -> q ∈d rest' -> f p = f q -> p = q
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall p q : E * A, p ∈d rest -> q ∈d e -> f p = f q -> p = q) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall p q : E * A, (e, a) = p \/ List.In p rest -> (e', a') = q \/ List.In q rest' -> f p = f q -> p = q
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'
p, q: E * A
Hinp: p ∈d rest
Hinq: q ∈d rest'
Heq: f p = f q

p = q
apply Hinj; eauto.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall p q : E * A, p ∈d rest -> q ∈d e -> f p = f q -> p = q) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall p q : E * A, (e, a) = p \/ List.In p rest -> (e', a') = q \/ List.In q rest' -> f p = f q -> p = q
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'

mapd f rest = mapd f rest'
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall p q : E * A, p ∈d rest -> q ∈d e -> f p = f q -> p = q) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall p q : E * A, (e, a) = p \/ List.In p rest -> (e', a') = q \/ List.In q rest' -> f p = f q -> p = q
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'

mapd f rest = mapd f rest'
now inversion premise. } Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type

forall (f : E * A -> B) (t1 t2 : T A), (forall (e : E) (a1 a2 : A), (e, a1) ∈d toctxlist t1 -> (e, a2) ∈d toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2) -> mapd f (toctxlist t1) = mapd f (toctxlist t2) -> tolist t1 = tolist t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type

forall (f : E * A -> B) (t1 t2 : T A), (forall (e : E) (a1 a2 : A), (e, a1) ∈d toctxlist t1 -> (e, a2) ∈d toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2) -> mapd f (toctxlist t1) = mapd f (toctxlist t2) -> tolist t1 = tolist t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈d toctxlist t1 -> (e, a2) ∈d toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2

mapd f (toctxlist t1) = mapd f (toctxlist t2) -> tolist t1 = tolist t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈d toctxlist t1 -> (e, a2) ∈d toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2

mapd f (toctxlist t1) = mapd f (toctxlist t2) -> (map extract ∘ toctxlist) t1 = (map extract ∘ toctxlist) t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈d toctxlist t1 -> (e, a2) ∈d toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2

mapd f (toctxlist t1) = mapd f (toctxlist t2) -> map extract (toctxlist t1) = map extract (toctxlist t2)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A

forall e : env E A, (forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d toctxlist t1 -> (e0, a2) ∈d e -> f (e0, a1) = f (e0, a2) -> a1 = a2) -> mapd f (toctxlist t1) = mapd f e -> map extract (toctxlist t1) = map extract e
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
toctxlist_t2: env E A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈d [] -> (e, a2) ∈d toctxlist_t2 -> f (e, a1) = f (e, a2) -> a1 = a2
premise: mapd f [] = mapd f toctxlist_t2

map extract [] = map extract toctxlist_t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d rest -> (e0, a2) ∈d e -> f (e0, a1) = f (e0, a2) -> a1 = a2) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
Hinj: forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d ((e, a) :: rest) -> (e0, a2) ∈d toctxlist_t2 -> f (e0, a1) = f (e0, a2) -> a1 = a2
premise: mapd f ((e, a) :: rest) = mapd f toctxlist_t2
map extract ((e, a) :: rest) = map extract toctxlist_t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
toctxlist_t2: env E A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈d [] -> (e, a2) ∈d toctxlist_t2 -> f (e, a1) = f (e, a2) -> a1 = a2
premise: mapd f [] = mapd f toctxlist_t2

map extract [] = map extract toctxlist_t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
toctxlist_t2: env E A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈d [] -> (e, a2) ∈d [] -> f (e, a1) = f (e, a2) -> a1 = a2
premise: mapd f [] = mapd f []

map extract [] = map extract []
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈d [] -> (e, a2) ∈d ((e', a') :: rest') -> f (e, a1) = f (e, a2) -> a1 = a2
premise: mapd f [] = mapd f ((e', a') :: rest')
map extract [] = map extract ((e', a') :: rest')
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
toctxlist_t2: env E A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈d [] -> (e, a2) ∈d [] -> f (e, a1) = f (e, a2) -> a1 = a2
premise: mapd f [] = mapd f []

map extract [] = map extract []
reflexivity.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈d [] -> (e, a2) ∈d ((e', a') :: rest') -> f (e, a1) = f (e, a2) -> a1 = a2
premise: mapd f [] = mapd f ((e', a') :: rest')

map extract [] = map extract ((e', a') :: rest')
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈d [] -> (e, a2) ∈d ((e', a') :: rest') -> f (e, a1) = f (e, a2) -> a1 = a2
premise: mapd f [] = mapd f ((e', a') :: rest')

False
inversion premise.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d rest -> (e0, a2) ∈d e -> f (e0, a1) = f (e0, a2) -> a1 = a2) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
Hinj: forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d ((e, a) :: rest) -> (e0, a2) ∈d toctxlist_t2 -> f (e0, a1) = f (e0, a2) -> a1 = a2
premise: mapd f ((e, a) :: rest) = mapd f toctxlist_t2

map extract ((e, a) :: rest) = map extract toctxlist_t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d rest -> (e0, a2) ∈d e -> f (e0, a1) = f (e0, a2) -> a1 = a2) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
Hinj: forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d ((e, a) :: rest) -> (e0, a2) ∈d [] -> f (e0, a1) = f (e0, a2) -> a1 = a2
premise: mapd f ((e, a) :: rest) = mapd f []

map extract ((e, a) :: rest) = map extract []
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d rest -> (e0, a2) ∈d e -> f (e0, a1) = f (e0, a2) -> a1 = a2) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d ((e, a) :: rest) -> (e0, a2) ∈d ((e', a') :: rest') -> f (e0, a1) = f (e0, a2) -> a1 = a2
premise: mapd f ((e, a) :: rest) = mapd f ((e', a') :: rest')
map extract ((e, a) :: rest) = map extract ((e', a') :: rest')
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d rest -> (e0, a2) ∈d e -> f (e0, a1) = f (e0, a2) -> a1 = a2) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
Hinj: forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d ((e, a) :: rest) -> (e0, a2) ∈d [] -> f (e0, a1) = f (e0, a2) -> a1 = a2
premise: mapd f ((e, a) :: rest) = mapd f []

map extract ((e, a) :: rest) = map extract []
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d rest -> (e0, a2) ∈d e -> f (e0, a1) = f (e0, a2) -> a1 = a2) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
Hinj: forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d ((e, a) :: rest) -> (e0, a2) ∈d [] -> f (e0, a1) = f (e0, a2) -> a1 = a2
premise: mapd f ((e, a) :: rest) = mapd f []

False
inversion premise.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d rest -> (e0, a2) ∈d e -> f (e0, a1) = f (e0, a2) -> a1 = a2) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d ((e, a) :: rest) -> (e0, a2) ∈d ((e', a') :: rest') -> f (e0, a1) = f (e0, a2) -> a1 = a2
premise: mapd f ((e, a) :: rest) = mapd f ((e', a') :: rest')

map extract ((e, a) :: rest) = map extract ((e', a') :: rest')
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d rest -> (e0, a2) ∈d e -> f (e0, a1) = f (e0, a2) -> a1 = a2) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall (e0 : E) (a1 a2 : A), (e, a) = (e0, a1) \/ List.In (e0, a1) rest -> (e', a') = (e0, a2) \/ List.In (e0, a2) rest' -> f (e0, a1) = f (e0, a2) -> a1 = a2
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'

a :: map extract rest = a' :: map extract rest'
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d rest -> (e0, a2) ∈d e -> f (e0, a1) = f (e0, a2) -> a1 = a2) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall (e0 : E) (a1 a2 : A), (e, a) = (e0, a1) \/ List.In (e0, a1) rest -> (e', a') = (e0, a2) \/ List.In (e0, a2) rest' -> f (e0, a1) = f (e0, a2) -> a1 = a2
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'

a = a'
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d rest -> (e0, a2) ∈d e -> f (e0, a1) = f (e0, a2) -> a1 = a2) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall (e0 : E) (a1 a2 : A), (e, a) = (e0, a1) \/ List.In (e0, a1) rest -> (e', a') = (e0, a2) \/ List.In (e0, a2) rest' -> f (e0, a1) = f (e0, a2) -> a1 = a2
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'
map extract rest = map extract rest'
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d rest -> (e0, a2) ∈d e -> f (e0, a1) = f (e0, a2) -> a1 = a2) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall (e0 : E) (a1 a2 : A), (e, a) = (e0, a1) \/ List.In (e0, a1) rest -> (e', a') = (e0, a2) \/ List.In (e0, a2) rest' -> f (e0, a1) = f (e0, a2) -> a1 = a2
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'

a = a'
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d rest -> (e0, a2) ∈d e -> f (e0, a1) = f (e0, a2) -> a1 = a2) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall (e0 : E) (a1 a2 : A), (e, a) = (e0, a1) \/ List.In (e0, a1) rest -> (e', a') = (e0, a2) \/ List.In (e0, a2) rest' -> f (e0, a1) = f (e0, a2) -> a1 = a2
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'
H0: e = e'

a = a'
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d rest -> (e0, a2) ∈d e -> f (e0, a1) = f (e0, a2) -> a1 = a2) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall (e0 : E) (a1 a2 : A), (e, a) = (e0, a1) \/ List.In (e0, a1) rest -> (e', a') = (e0, a2) \/ List.In (e0, a2) rest' -> f (e0, a1) = f (e0, a2) -> a1 = a2
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'
H0: e = e'
Heq: f (e, a) = f (e, a')

a = a'
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d rest -> (e0, a2) ∈d e -> f (e0, a1) = f (e0, a2) -> a1 = a2) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall (e0 : E) (a1 a2 : A), (e, a) = (e0, a1) \/ List.In (e0, a1) rest -> (e', a') = (e0, a2) \/ List.In (e0, a2) rest' -> f (e0, a1) = f (e0, a2) -> a1 = a2
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'
H0: e = e'
Heq: f (e, a) = f (e, a')

(e', a') = (e, a') \/ List.In (e, a') rest'
subst; now left.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d rest -> (e0, a2) ∈d e -> f (e0, a1) = f (e0, a2) -> a1 = a2) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall (e0 : E) (a1 a2 : A), (e, a) = (e0, a1) \/ List.In (e0, a1) rest -> (e', a') = (e0, a2) \/ List.In (e0, a2) rest' -> f (e0, a1) = f (e0, a2) -> a1 = a2
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'

map extract rest = map extract rest'
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d rest -> (e0, a2) ∈d e -> f (e0, a1) = f (e0, a2) -> a1 = a2) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall (e0 : E) (a1 a2 : A), (e, a) = (e0, a1) \/ List.In (e0, a1) rest -> (e', a') = (e0, a2) \/ List.In (e0, a2) rest' -> f (e0, a1) = f (e0, a2) -> a1 = a2
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'

forall (e : E) (a1 a2 : A), (e, a1) ∈d rest -> (e, a2) ∈d rest' -> f (e, a1) = f (e, a2) -> a1 = a2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d rest -> (e0, a2) ∈d e -> f (e0, a1) = f (e0, a2) -> a1 = a2) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall (e0 : E) (a1 a2 : A), (e, a) = (e0, a1) \/ List.In (e0, a1) rest -> (e', a') = (e0, a2) \/ List.In (e0, a2) rest' -> f (e0, a1) = f (e0, a2) -> a1 = a2
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'
mapd f rest = mapd f rest'
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d rest -> (e0, a2) ∈d e -> f (e0, a1) = f (e0, a2) -> a1 = a2) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall (e0 : E) (a1 a2 : A), (e, a) = (e0, a1) \/ List.In (e0, a1) rest -> (e', a') = (e0, a2) \/ List.In (e0, a2) rest' -> f (e0, a1) = f (e0, a2) -> a1 = a2
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'

forall (e : E) (a1 a2 : A), (e, a1) ∈d rest -> (e, a2) ∈d rest' -> f (e, a1) = f (e, a2) -> a1 = a2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d rest -> (e0, a2) ∈d e -> f (e0, a1) = f (e0, a2) -> a1 = a2) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall (e0 : E) (a1 a2 : A), (e, a) = (e0, a1) \/ List.In (e0, a1) rest -> (e', a') = (e0, a2) \/ List.In (e0, a2) rest' -> f (e0, a1) = f (e0, a2) -> a1 = a2
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'
e'': E
a1, a2: A
Hinp: (e'', a1) ∈d rest
Hinq: (e'', a2) ∈d rest'
Heq: f (e'', a1) = f (e'', a2)

a1 = a2
eapply Hinj; eauto.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d rest -> (e0, a2) ∈d e -> f (e0, a1) = f (e0, a2) -> a1 = a2) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall (e0 : E) (a1 a2 : A), (e, a) = (e0, a1) \/ List.In (e0, a1) rest -> (e', a') = (e0, a2) \/ List.In (e0, a2) rest' -> f (e0, a1) = f (e0, a2) -> a1 = a2
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'

mapd f rest = mapd f rest'
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
e: E
a: A
rest: list (E * A)
IHrest: forall e : env E A, (forall (e0 : E) (a1 a2 : A), (e0, a1) ∈d rest -> (e0, a2) ∈d e -> f (e0, a1) = f (e0, a2) -> a1 = a2) -> mapd f rest = mapd f e -> map extract rest = map extract e
toctxlist_t2: env E A
e': E
a': A
rest': list (E * A)
Hinj: forall (e0 : E) (a1 a2 : A), (e, a) = (e0, a1) \/ List.In (e0, a1) rest -> (e', a') = (e0, a2) \/ List.In (e0, a2) rest' -> f (e0, a1) = f (e0, a2) -> a1 = a2
premise: (e, f (e, a)) :: mapd f rest = (e', f (e', a')) :: mapd f rest'

mapd f rest = mapd f rest'
now inversion premise. } Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type

forall (f : E * A -> B) (t1 t2 : T A), (forall p q : E * A, f p = f q -> p = q) -> mapd f t1 = mapd f t2 -> t1 = t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type

forall (f : E * A -> B) (t1 t2 : T A), (forall p q : E * A, f p = f q -> p = q) -> mapd f t1 = mapd f t2 -> t1 = t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
Heq: mapd f t1 = mapd f t2

t1 = t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
Heq: mapd f t1 = mapd f t2

(toctxlist ∘ mapd f) t1 = (toctxlist ∘ mapd f) t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
Heq: mapd f t1 = mapd f t2
cut: (toctxlist ∘ mapd f) t1 = (toctxlist ∘ mapd f) t2
t1 = t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
Heq: mapd f t1 = mapd f t2

(toctxlist ∘ mapd f) t1 = (toctxlist ∘ mapd f) t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
Heq: mapd f t1 = mapd f t2

toctxlist (mapd f t1) = toctxlist (mapd f t2)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
Heq: mapd f t1 = mapd f t2

mapd f t1 = mapd f t2
auto.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
Heq: mapd f t1 = mapd f t2
cut: (toctxlist ∘ mapd f) t1 = (toctxlist ∘ mapd f) t2

t1 = t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
Heq: mapd f t1 = mapd f t2
cut: (mapd f ∘ toctxlist) t1 = (mapd f ∘ toctxlist) t2

t1 = t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
Heq: mapd f t1 = mapd f t2
cut: mapd f (toctxlist t1) = mapd f (toctxlist t2)

t1 = t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
Heq: mapd f t1 = mapd f t2
cut: mapd f (toctxlist t1) = mapd f (toctxlist t2)

shape t1 = shape t2 /\ tolist t1 = tolist t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
Heq: mapd f t1 = mapd f t2
cut: mapd f (toctxlist t1) = mapd f (toctxlist t2)

shape t1 = shape t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
Heq: mapd f t1 = mapd f t2
cut: mapd f (toctxlist t1) = mapd f (toctxlist t2)
tolist t1 = tolist t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
Heq: mapd f t1 = mapd f t2
cut: mapd f (toctxlist t1) = mapd f (toctxlist t2)

shape t1 = shape t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
Heq: mapd f t1 = mapd f t2
cut: mapd f (toctxlist t1) = mapd f (toctxlist t2)
cut2: shape (mapd f t1) = shape (mapd f t2)

shape t1 = shape t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
Heq: mapd f t1 = mapd f t2
cut: mapd f (toctxlist t1) = mapd f (toctxlist t2)
shape (mapd f t1) = shape (mapd f t2)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
Heq: mapd f t1 = mapd f t2
cut: mapd f (toctxlist t1) = mapd f (toctxlist t2)

shape (mapd f t1) = shape (mapd f t2)
now rewrite Heq.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall p q : E * A, f p = f q -> p = q
Heq: mapd f t1 = mapd f t2
cut: mapd f (toctxlist t1) = mapd f (toctxlist t2)

tolist t1 = tolist t2
eapply mapd_ctxlist_injective; eassumption. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type

forall (f : E * A -> B) (t1 t2 : T A), (forall (e : E) (a1 a2 : A), (e, a1) ∈d t1 -> (e, a2) ∈d t2 -> f (e, a1) = f (e, a2) -> a1 = a2) -> mapd f t1 = mapd f t2 -> t1 = t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type

forall (f : E * A -> B) (t1 t2 : T A), (forall (e : E) (a1 a2 : A), (e, a1) ∈d t1 -> (e, a2) ∈d t2 -> f (e, a1) = f (e, a2) -> a1 = a2) -> mapd f t1 = mapd f t2 -> t1 = t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈d t1 -> (e, a2) ∈d t2 -> f (e, a1) = f (e, a2) -> a1 = a2
Heq: mapd f t1 = mapd f t2

t1 = t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈ toctxlist t1 -> (e, a2) ∈ toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2
Heq: mapd f t1 = mapd f t2

t1 = t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈ toctxlist t1 -> (e, a2) ∈ toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2
Heq: mapd f t1 = mapd f t2

(toctxlist ∘ mapd f) t1 = (toctxlist ∘ mapd f) t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈ toctxlist t1 -> (e, a2) ∈ toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2
Heq: mapd f t1 = mapd f t2
Heq2: (toctxlist ∘ mapd f) t1 = (toctxlist ∘ mapd f) t2
t1 = t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈ toctxlist t1 -> (e, a2) ∈ toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2
Heq: mapd f t1 = mapd f t2

(toctxlist ∘ mapd f) t1 = (toctxlist ∘ mapd f) t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈ toctxlist t1 -> (e, a2) ∈ toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2
Heq: mapd f t1 = mapd f t2

toctxlist (mapd f t1) = toctxlist (mapd f t2)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈ toctxlist t1 -> (e, a2) ∈ toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2
Heq: mapd f t1 = mapd f t2

mapd f t1 = mapd f t2
auto.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈ toctxlist t1 -> (e, a2) ∈ toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2
Heq: mapd f t1 = mapd f t2
Heq2: (toctxlist ∘ mapd f) t1 = (toctxlist ∘ mapd f) t2

t1 = t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈ toctxlist t1 -> (e, a2) ∈ toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2
Heq: mapd f t1 = mapd f t2
Heq2: (mapd f ∘ toctxlist) t1 = (mapd f ∘ toctxlist) t2

t1 = t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈ toctxlist t1 -> (e, a2) ∈ toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2
Heq: mapd f t1 = mapd f t2
Heq2: mapd f (toctxlist t1) = mapd f (toctxlist t2)

t1 = t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈ toctxlist t1 -> (e, a2) ∈ toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2
Heq: mapd f t1 = mapd f t2
Heq2: mapd f (toctxlist t1) = mapd f (toctxlist t2)

shape t1 = shape t2 /\ tolist t1 = tolist t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈ toctxlist t1 -> (e, a2) ∈ toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2
Heq: mapd f t1 = mapd f t2
Heq2: mapd f (toctxlist t1) = mapd f (toctxlist t2)

shape t1 = shape t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈ toctxlist t1 -> (e, a2) ∈ toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2
Heq: mapd f t1 = mapd f t2
Heq2: mapd f (toctxlist t1) = mapd f (toctxlist t2)
tolist t1 = tolist t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈ toctxlist t1 -> (e, a2) ∈ toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2
Heq: mapd f t1 = mapd f t2
Heq2: mapd f (toctxlist t1) = mapd f (toctxlist t2)

shape t1 = shape t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈ toctxlist t1 -> (e, a2) ∈ toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2
Heq: mapd f t1 = mapd f t2
Heq2: mapd f (toctxlist t1) = mapd f (toctxlist t2)
cut2: shape (mapd f t1) = shape (mapd f t2)

shape t1 = shape t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈ toctxlist t1 -> (e, a2) ∈ toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2
Heq: mapd f t1 = mapd f t2
Heq2: mapd f (toctxlist t1) = mapd f (toctxlist t2)
shape (mapd f t1) = shape (mapd f t2)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈ toctxlist t1 -> (e, a2) ∈ toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2
Heq: mapd f t1 = mapd f t2
Heq2: mapd f (toctxlist t1) = mapd f (toctxlist t2)

shape (mapd f t1) = shape (mapd f t2)
now rewrite Heq.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈ toctxlist t1 -> (e, a2) ∈ toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2
Heq: mapd f t1 = mapd f t2
Heq2: mapd f (toctxlist t1) = mapd f (toctxlist t2)

tolist t1 = tolist t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈ toctxlist t1 -> (e, a2) ∈ toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2
Heq: mapd f t1 = mapd f t2
Heq2: mapd f (toctxlist t1) = mapd f (toctxlist t2)

forall (e : E) (a1 a2 : A), (e, a1) ∈d toctxlist t1 -> (e, a2) ∈d toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈ toctxlist t1 -> (e, a2) ∈ toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2
Heq: mapd f t1 = mapd f t2
Heq2: mapd f (toctxlist t1) = mapd f (toctxlist t2)
e: E
a1, a2: A
H0: (e, a1) ∈d toctxlist t1
H1: (e, a2) ∈d toctxlist t2
H2: f (e, a1) = f (e, a2)

a1 = a2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈ toctxlist t1 -> (e, a2) ∈ toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2
Heq: mapd f t1 = mapd f t2
Heq2: mapd f (toctxlist t1) = mapd f (toctxlist t2)
e: E
a1, a2: A
H0: (e, a1) ∈d toctxlist t1
H1: (e, a2) ∈d toctxlist t2
H2: f (e, a1) = f (e, a2)

(e, a1) ∈ toctxlist t1
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈ toctxlist t1 -> (e, a2) ∈ toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2
Heq: mapd f t1 = mapd f t2
Heq2: mapd f (toctxlist t1) = mapd f (toctxlist t2)
e: E
a1, a2: A
H0: (e, a1) ∈d toctxlist t1
H1: (e, a2) ∈d toctxlist t2
H2: f (e, a1) = f (e, a2)
(e, a2) ∈ toctxlist t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈ toctxlist t1 -> (e, a2) ∈ toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2
Heq: mapd f t1 = mapd f t2
Heq2: mapd f (toctxlist t1) = mapd f (toctxlist t2)
e: E
a1, a2: A
H0: (e, a1) ∈d toctxlist t1
H1: (e, a2) ∈d toctxlist t2
H2: f (e, a1) = f (e, a2)

(e, a1) ∈ toctxlist t1
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈ mapdReduce ret t1 -> (e, a2) ∈ mapdReduce ret t2 -> f (e, a1) = f (e, a2) -> a1 = a2
Heq: mapd f t1 = mapd f t2
Heq2: mapd f (mapdReduce ret t1) = mapd f (mapdReduce ret t2)
e: E
a1, a2: A
H0: (e, a1) ∈d mapdReduce ret t1
H1: (e, a2) ∈d mapdReduce ret t2
H2: f (e, a1) = f (e, a2)

(e, a1) ∈ mapdReduce ret t1
assumption.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈ toctxlist t1 -> (e, a2) ∈ toctxlist t2 -> f (e, a1) = f (e, a2) -> a1 = a2
Heq: mapd f t1 = mapd f t2
Heq2: mapd f (toctxlist t1) = mapd f (toctxlist t2)
e: E
a1, a2: A
H0: (e, a1) ∈d toctxlist t1
H1: (e, a2) ∈d toctxlist t2
H2: f (e, a1) = f (e, a2)

(e, a2) ∈ toctxlist t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> B
t1, t2: T A
Hinj: forall (e : E) (a1 a2 : A), (e, a1) ∈ mapdReduce ret t1 -> (e, a2) ∈ mapdReduce ret t2 -> f (e, a1) = f (e, a2) -> a1 = a2
Heq: mapd f t1 = mapd f t2
Heq2: mapd f (mapdReduce ret t1) = mapd f (mapdReduce ret t2)
e: E
a1, a2: A
H0: (e, a1) ∈d mapdReduce ret t1
H1: (e, a2) ∈d mapdReduce ret t2
H2: f (e, a1) = f (e, a2)

(e, a2) ∈ mapdReduce ret t2
assumption. Qed. End shapeliness. (** * Deconstructing with refinement-type vectors *) (********************************************************************) Section deconstruction. Import Kleisli.DecoratedTraversableFunctor.DerivedInstances. #[local] Generalizable Variables v. (** ** Relating <<plength>> and <<toBatch3>> *) (******************************************************************)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (t : T A), plength t = length_Batch (toBatch3 t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (t : T A), plength t = length_Batch (toBatch3 t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A

plength t = length_Batch (toBatch3 t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A

mapReduce (fun _ : A => 1) t = length_Batch (toBatch3 t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A

(runBatch (fun _ : A => 1) ∘ toBatch) t = length_Batch (toBatch3 t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A

(runBatch (fun _ : A => 1) ∘ (mapfst_Batch extract ∘ toBatch3)) t = length_Batch (toBatch3 t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A

runBatch (fun _ : A => 1) (mapfst_Batch extract (toBatch3 t)) = length_Batch (toBatch3 t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
c: C

runBatch (fun _ : A => 1) (mapfst_Batch extract (Done c)) = length_Batch (Done c)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
IHb: runBatch (fun _ : A => 1) (mapfst_Batch extract b) = length_Batch b
runBatch (fun _ : A => 1) (mapfst_Batch extract (b ⧆ a)) = length_Batch (b ⧆ a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
c: C

runBatch (fun _ : A => 1) (mapfst_Batch extract (Done c)) = length_Batch (Done c)
reflexivity.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
IHb: runBatch (fun _ : A => 1) (mapfst_Batch extract b) = length_Batch b

runBatch (fun _ : A => 1) (mapfst_Batch extract (b ⧆ a)) = length_Batch (b ⧆ a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
IHb: runBatch (fun _ : A => 1) (mapfst_Batch extract b) = length_Batch b

runBatch (fun _ : A => 1) (mapfst_Batch extract b) ● 1 = S (length_Batch b)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
IHb: runBatch (fun _ : A => 1) (mapfst_Batch extract b) = length_Batch b

length_Batch b ● 1 = S (length_Batch b)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
IHb: runBatch (fun _ : A => 1) (mapfst_Batch extract b) = length_Batch b

(length_Batch b + 1)%nat = S (length_Batch b)
lia. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (t : T A), length_Batch (toBatch3 t) = length_Batch (toBatch t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (t : T A), length_Batch (toBatch3 t) = length_Batch (toBatch t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A

length_Batch (toBatch3 t) = length_Batch (toBatch t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A

length_Batch (toBatch3 t) = length_Batch ((mapfst_Batch extract ∘ toBatch3) t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A

length_Batch (toBatch3 t) = length_Batch (mapfst_Batch extract (toBatch3 t))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
c: C

length_Batch (Done c) = length_Batch (mapfst_Batch extract (Done c))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
IHb: length_Batch b = length_Batch (mapfst_Batch extract b)
length_Batch (b ⧆ a) = length_Batch (mapfst_Batch extract (b ⧆ a))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
c: C

length_Batch (Done c) = length_Batch (mapfst_Batch extract (Done c))
reflexivity.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
IHb: length_Batch b = length_Batch (mapfst_Batch extract b)

length_Batch (b ⧆ a) = length_Batch (mapfst_Batch extract (b ⧆ a))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
IHb: length_Batch b = length_Batch (mapfst_Batch extract b)

S (length_Batch b) = S (length_Batch (mapfst_Batch extract b))
now rewrite IHb. Qed. (** ** <<mapdt_contents>> and <<mapdt_make>> *) (******************************************************************) Definition mapdt_contents {A} (t: T A): Vector (plength t) (E * A) := let v: Vector (length_Batch (toBatch3 (B := False) (A := A) t)) (E * A) := Batch_contents (toBatch3 t) in coerce_Vector_length (eq_sym (plength_toBatch3 t)) v. Definition mapdt_make {A B} (t: T A): Vector (plength t) B -> T B := trav_make t. (** ** Relation <<toctxlist>> and <<mapdt_contents>> *) (******************************************************************)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (t : T A), Vector_to_list (E * A) (Batch_contents (toBatch3 t)) = List.rev (toctxlist t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (t : T A), Vector_to_list (E * A) (Batch_contents (toBatch3 t)) = List.rev (toctxlist t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A

Vector_to_list (E * A) (Batch_contents (toBatch3 t)) = List.rev (toctxlist t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A

Vector_to_list (E * A) (Batch_contents (toBatch3 t)) = List.rev (mapdReduce ret t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A

Vector_to_list (E * A) (Batch_contents (toBatch3 t)) = List.rev ((runBatch ret ∘ toBatch3) t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A

Vector_to_list (E * A) (Batch_contents (toBatch3 t)) = List.rev (runBatch ret (toBatch3 t))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
c: C

Vector_to_list (E * A) (Batch_contents (Done c)) = List.rev (runBatch ret (Done c))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
IHb: Vector_to_list (E * A) (Batch_contents b) = List.rev (runBatch ret b)
Vector_to_list (E * A) (Batch_contents (b ⧆ a)) = List.rev (runBatch ret (b ⧆ a))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
c: C

Vector_to_list (E * A) (Batch_contents (Done c)) = List.rev (runBatch ret (Done c))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
c: C

[] = []
reflexivity.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
IHb: Vector_to_list (E * A) (Batch_contents b) = List.rev (runBatch ret b)

Vector_to_list (E * A) (Batch_contents (b ⧆ a)) = List.rev (runBatch ret (b ⧆ a))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
IHb: Vector_to_list (E * A) (Batch_contents b) = List.rev (runBatch ret b)

Vector_to_list (E * A) (vcons (length_Batch b) a (Batch_contents b)) = List.rev (runBatch ret b ● ret a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
IHb: Vector_to_list (E * A) (Batch_contents b) = List.rev (runBatch ret b)

a :: Vector_to_list (E * A) (Batch_contents b) = List.rev (runBatch ret b ● ret a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
IHb: Vector_to_list (E * A) (Batch_contents b) = List.rev (runBatch ret b)

a :: List.rev (runBatch ret b) = List.rev (runBatch ret b ● ret a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
IHb: Vector_to_list (E * A) (Batch_contents b) = List.rev (runBatch ret b)

a :: List.rev (runBatch (fun a : E * A => [a]) b) = List.rev (runBatch (fun a : E * A => [a]) b ++ [a])
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
IHb: Vector_to_list (E * A) (Batch_contents b) = List.rev (runBatch ret b)

a :: List.rev (runBatch (fun a : E * A => [a]) b) = a :: List.rev (runBatch (fun a : E * A => [a]) b)
reflexivity. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A : Type) (t : T A), Vector_to_list (E * A) (mapdt_contents t) = List.rev (toctxlist t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A : Type) (t : T A), Vector_to_list (E * A) (mapdt_contents t) = List.rev (toctxlist t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A

Vector_to_list (E * A) (mapdt_contents t) = List.rev (toctxlist t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A

Vector_to_list (E * A) (coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t)) = List.rev (toctxlist t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A

proj1_sig (coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t)) = List.rev (toctxlist t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A

proj1_sig (Batch_contents (toBatch3 t)) = List.rev (toctxlist t)
apply Batch3_contents_toctxlist. Qed. (** ** <<_sim>> Properties *) (******************************************************************)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B B' : Type) (t : T A), Batch_contents (toBatch3 t) ~~ Batch_contents (toBatch3 t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B B' : Type) (t : T A), Batch_contents (toBatch3 t) ~~ Batch_contents (toBatch3 t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B, B': Type
t: T A

Batch_contents (toBatch3 t) ~~ Batch_contents (toBatch3 t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B, B': Type
t: T A

proj1_sig (Batch_contents (toBatch3 t)) = proj1_sig (Batch_contents (toBatch3 t))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B, B': Type
t: T A

Vector_to_list (E * A) (Batch_contents (toBatch3 t)) = Vector_to_list (E * A) (Batch_contents (toBatch3 t))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B, B': Type
t: T A

List.rev (toctxlist t) = Vector_to_list (E * A) (Batch_contents (toBatch3 t))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B, B': Type
t: T A

List.rev (toctxlist t) = List.rev (toctxlist t)
reflexivity. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A

Batch_make (toBatch3 t) = Batch_make (toBatch t) ○ coerce_Vector_length (length_toBatch3_toBatch t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A

Batch_make (toBatch3 t) = Batch_make (toBatch t) ○ coerce_Vector_length (length_toBatch3_toBatch t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
v: Vector (length_Batch (toBatch3 t)) B

Batch_make (toBatch3 t) v = Batch_make (toBatch t) (coerce length_toBatch3_toBatch t in v)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
v: Vector (length_Batch (toBatch3 t)) B

forall e : length_Batch (toBatch3 t) = length_Batch (toBatch t), Batch_make (toBatch3 t) v = Batch_make (toBatch t) (coerce e in v)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
v: Vector (length_Batch (toBatch3 t)) B
e: length_Batch (toBatch3 t) = length_Batch (toBatch t)

Batch_make (toBatch3 t) v = Batch_make (toBatch t) (coerce e in v)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
v: Vector (length_Batch (toBatch3 t)) B
e: length_Batch (toBatch3 t) = length_Batch (toBatch t)

shape (toBatch3 t) = shape (toBatch t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
v: Vector (length_Batch (toBatch3 t)) B
e: length_Batch (toBatch3 t) = length_Batch (toBatch t)
v ~~ coerce e in v
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
v: Vector (length_Batch (toBatch3 t)) B
e: length_Batch (toBatch3 t) = length_Batch (toBatch t)

v ~~ coerce e in v
vector_sim.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
v: Vector (length_Batch (toBatch3 t)) B
e: length_Batch (toBatch3 t) = length_Batch (toBatch t)

shape (toBatch3 t) = shape (toBatch t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
v: Vector (length_Batch (toBatch3 t)) B
e: length_Batch (toBatch3 t) = length_Batch (toBatch t)

shape (toBatch3 t) = shape (toBatch t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
v: Vector (length_Batch (toBatch3 t)) B
e: length_Batch (toBatch3 t) = length_Batch (toBatch t)

shape (toBatch3 t) = shape ((mapfst_Batch extract ∘ toBatch3) t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
v: Vector (length_Batch (toBatch3 t)) B
e: length_Batch (toBatch3 t) = length_Batch (toBatch t)

shape (toBatch3 t) = shape (mapfst_Batch extract (toBatch3 t))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A

shape (toBatch3 t) = shape (mapfst_Batch extract (toBatch3 t))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
c: C

shape (Done c) = shape (mapfst_Batch extract (Done c))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
IHb: shape b = shape (mapfst_Batch extract b)
shape (b ⧆ a) = shape (mapfst_Batch extract (b ⧆ a))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
c: C

shape (Done c) = shape (mapfst_Batch extract (Done c))
reflexivity.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
IHb: shape b = shape (mapfst_Batch extract b)

shape (b ⧆ a) = shape (mapfst_Batch extract (b ⧆ a))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
IHb: map (const tt) b = map (const tt) (mapfst_Batch extract b)

map (const tt) (b ⧆ a) = map (const tt) (mapfst_Batch extract (b ⧆ a))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
IHb: map (const tt) b = map (const tt) (mapfst_Batch extract b)

mapfst_Batch (const tt) b ⧆ const tt a = mapfst_Batch (const tt) (mapfst_Batch extract b) ⧆ const tt (extract a)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
C: Type
b: Batch (E * A) B (B -> C)
a: E * A
IHb: map (const tt) b = map (const tt) (mapfst_Batch extract b)

mapfst_Batch (const tt) b = mapfst_Batch (const tt) (mapfst_Batch extract b)
apply IHb. } Qed. (** * Miscellaneous *) (******************************************************************)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, A', B: Type
t: T A
v: Vector (plength t) B

toBatch (mapdt_make t v) = Batch_replace_contents (toBatch t) (coerce eq_sym (plength_eq_length t) in v)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, A', B: Type
t: T A
v: Vector (plength t) B

toBatch (mapdt_make t v) = Batch_replace_contents (toBatch t) (coerce eq_sym (plength_eq_length t) in v)
apply toBatch_trav_make_to_replace_contents. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t1: T A
A': Type
t2: T A'

shape t1 = shape t2 -> forall B : Type, mapdt_make t1 ~!~ mapdt_make t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t1: T A
A': Type
t2: T A'

shape t1 = shape t2 -> forall B : Type, mapdt_make t1 ~!~ mapdt_make t2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t1: T A
A': Type
t2: T A'
H0: shape t1 = shape t2
B: Type

mapdt_make t1 ~!~ mapdt_make t2
now apply trav_same_shape. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A : Type) (t : T A) (B : Type) (v : Vector (plength t) B), plength (mapdt_make t v) = plength t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A : Type) (t : T A) (B : Type) (v : Vector (plength t) B), plength (mapdt_make t v) = plength t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A
B: Type
v: Vector (plength t) B

plength (mapdt_make t v) = plength t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A
B: Type
v: Vector (plength t) B

plength (trav_make t v) = plength t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A
B: Type
v: Vector (plength t) B

plength t = plength (trav_make t v)
apply plength_trav_make. Qed. (** * Lens Laws *) (******************************************************************) Section lens_laws. Import KleisliToCoalgebraic.DecoratedTraversableFunctor.DerivedInstances. Import KleisliToCoalgebraic.TraversableFunctor.DerivedInstances. (** ** get-put *) (****************************************************************)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A

mapdt_make t (map extract (mapdt_contents t)) = t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A

mapdt_make t (map extract (mapdt_contents t)) = t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A

Batch_make (toBatch t) (coerce eq_sym (plength_eq_length t) in map extract (coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t))) = t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A

Batch_make (toBatch t) (coerce eq_sym (plength_eq_length t) in map extract (coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t))) = id t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A

Batch_make (toBatch t) (coerce eq_sym (plength_eq_length t) in map extract (coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t))) = (extract_Batch ∘ toBatch) t
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A

Batch_make (toBatch t) (coerce eq_sym (plength_eq_length t) in map extract (coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t))) = extract_Batch (toBatch t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A

Batch_make (toBatch t) (coerce eq_sym (plength_eq_length t) in map extract (coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t))) = Batch_make (toBatch t) (Batch_contents (toBatch t))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A

coerce eq_sym (plength_eq_length t) in map extract (coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t)) ~~ Batch_contents (toBatch t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A

map extract (Batch_contents (toBatch3 t)) ~~ Batch_contents (toBatch t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A

proj1_sig (map extract (Batch_contents (toBatch3 t))) = proj1_sig (Batch_contents (toBatch t))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A

proj1_sig (Batch_contents (mapfst_Batch extract (toBatch3 t))) = proj1_sig (Batch_contents (toBatch t))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A

proj1_sig (Batch_contents ((mapfst_Batch extract ∘ toBatch3) t)) = proj1_sig (Batch_contents (toBatch t))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A

proj1_sig (Batch_contents (toBatch t)) = proj1_sig (Batch_contents (toBatch t))
apply Batch_contents_toBatch_sim. Qed. (** ** put-get *) (****************************************************************) (* Ill-typed, needs clarification of statement *) (* Lemma mapdt_contents_make {A} {t: T A} {v: Vector (plength t) A}: mapdt_contents (trav_make t v) ~~ v. Proof. unfold trav_contents. vector_sim. rewrite toBatch_trav_make. rewrite Batch_put_get. vector_sim. Qed. *) (** ** put-put *) (****************************************************************)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A
B: Type
v: Vector (plength t) B
B': Type
v1: Vector (plength (mapdt_make t v)) B'
v2: Vector (plength t) B'
pf: v1 ~~ v2

mapdt_make (mapdt_make t v) v1 = mapdt_make t v2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A
B: Type
v: Vector (plength t) B
B': Type
v1: Vector (plength (mapdt_make t v)) B'
v2: Vector (plength t) B'
pf: v1 ~~ v2

mapdt_make (mapdt_make t v) v1 = mapdt_make t v2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A
B: Type
v: Vector (plength t) B
B': Type
v1: Vector (plength (mapdt_make t v)) B'
v2: Vector (plength t) B'
pf: v1 ~~ v2

trav_make (trav_make t v) v1 = trav_make t v2
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
t: T A
B: Type
v: Vector (plength t) B
B': Type
v1: Vector (plength (mapdt_make t v)) B'
v2: Vector (plength t) B'
pf: v1 ~~ v2

v1 ~~ v2
assumption. Qed. End lens_laws. (** * Representation theorems *) (******************************************************************)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (G : Type -> Type) (Map_G : Map G) (Pure_G : Pure G) (Mult_G : Mult G), Applicative G -> forall (A B : Type) (t : T A) (f : E * A -> G B), mapdt f t = map (mapdt_make t) (forwards (traverse (mkBackwards ∘ f) (mapdt_contents t)))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (G : Type -> Type) (Map_G : Map G) (Pure_G : Pure G) (Mult_G : Mult G), Applicative G -> forall (A B : Type) (t : T A) (f : E * A -> G B), mapdt f t = map (mapdt_make t) (forwards (traverse (mkBackwards ∘ f) (mapdt_contents t)))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
t: T A
f: E * A -> G B

mapdt f t = map (mapdt_make t) (forwards (traverse (mkBackwards ∘ f) (mapdt_contents t)))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
t: T A
f: E * A -> G B

mapdt f t = map (trav_make t) (forwards (traverse (mkBackwards ∘ f) (mapdt_contents t)))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
t: T A
f: E * A -> G B

mapdt f t = map (trav_make t) (forwards (traverse (mkBackwards ∘ f) (coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t))))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
t: T A
f: E * A -> G B

mapdt f t = map (Batch_make (toBatch t) ○ coerce_Vector_length (eq_sym (plength_eq_length t))) (forwards (traverse (mkBackwards ∘ f) (coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t))))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
t: T A
f: E * A -> G B

mapdt f t = map (Batch_make (toBatch t) ∘ coerce_Vector_length (eq_sym (plength_eq_length t))) (forwards (traverse (mkBackwards ∘ f) (coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t))))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
t: T A
f: E * A -> G B

mapdt f t = (map (Batch_make (toBatch t)) ∘ map (coerce_Vector_length (eq_sym (plength_eq_length t)))) (forwards (traverse (mkBackwards ∘ f) (coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t))))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
t: T A
f: E * A -> G B

mapdt f t = map (Batch_make (toBatch t)) (map (coerce_Vector_length (eq_sym (plength_eq_length t))) (forwards (traverse (mkBackwards ∘ f) (coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t)))))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
t: T A
f: E * A -> G B

mapdt f t = forwards (map (Batch_make (toBatch t)) (map (coerce_Vector_length (eq_sym (plength_eq_length t))) (traverse (mkBackwards ∘ f) (coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t)))))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
t: T A
f: E * A -> G B

mapdt f t = forwards (map (Batch_make (toBatch t)) (traverse (mkBackwards ∘ f) (coerce eq_sym (plength_eq_length t) in coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t))))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
t: T A
f: E * A -> G B

(runBatch f ∘ toBatch3) t = forwards (map (Batch_make (toBatch t)) (traverse (mkBackwards ∘ f) (coerce eq_sym (plength_eq_length t) in coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t))))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
t: T A
f: E * A -> G B

runBatch f (toBatch3 t) = forwards (map (Batch_make (toBatch t)) (traverse (mkBackwards ∘ f) (coerce eq_sym (plength_eq_length t) in coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t))))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
t: T A
f: E * A -> G B

map (Batch_make (toBatch3 t)) (forwards (traverse (mkBackwards ∘ f) (Batch_contents (toBatch3 t)))) = forwards (map (Batch_make (toBatch t)) (traverse (mkBackwards ∘ f) (coerce eq_sym (plength_eq_length t) in coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t))))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
t: T A
f: E * A -> G B

forwards (map (Batch_make (toBatch3 t)) (traverse (mkBackwards ∘ f) (Batch_contents (toBatch3 t)))) = forwards (map (Batch_make (toBatch t)) (traverse (mkBackwards ∘ f) (coerce eq_sym (plength_eq_length t) in coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t))))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
t: T A
f: E * A -> G B

map (Batch_make (toBatch3 t)) (traverse (mkBackwards ∘ f) (Batch_contents (toBatch3 t))) = map (Batch_make (toBatch t)) (traverse (mkBackwards ∘ f) (coerce eq_sym (plength_eq_length t) in coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t)))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
t: T A
f: E * A -> G B

map (Batch_make (toBatch t) ○ coerce_Vector_length (length_toBatch3_toBatch t)) (traverse (mkBackwards ∘ f) (Batch_contents (toBatch3 t))) = map (Batch_make (toBatch t)) (traverse (mkBackwards ∘ f) (coerce eq_sym (plength_eq_length t) in coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t)))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
t: T A
f: E * A -> G B

map (Batch_make (toBatch t) ∘ coerce_Vector_length (length_toBatch3_toBatch t)) (traverse (mkBackwards ∘ f) (Batch_contents (toBatch3 t))) = map (Batch_make (toBatch t)) (traverse (mkBackwards ∘ f) (coerce eq_sym (plength_eq_length t) in coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t)))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
t: T A
f: E * A -> G B

(map (Batch_make (toBatch t)) ∘ map (coerce_Vector_length (length_toBatch3_toBatch t))) (traverse (mkBackwards ∘ f) (Batch_contents (toBatch3 t))) = map (Batch_make (toBatch t)) (traverse (mkBackwards ∘ f) (coerce eq_sym (plength_eq_length t) in coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t)))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
t: T A
f: E * A -> G B

map (Batch_make (toBatch t)) (map (coerce_Vector_length (length_toBatch3_toBatch t)) (traverse (mkBackwards ∘ f) (Batch_contents (toBatch3 t)))) = map (Batch_make (toBatch t)) (traverse (mkBackwards ∘ f) (coerce eq_sym (plength_eq_length t) in coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t)))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
t: T A
f: E * A -> G B

map (Batch_make (toBatch t)) (traverse (mkBackwards ∘ f) (coerce length_toBatch3_toBatch t in Batch_contents (toBatch3 t))) = map (Batch_make (toBatch t)) (traverse (mkBackwards ∘ f) (coerce eq_sym (plength_eq_length t) in coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t)))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
t: T A
f: E * A -> G B

traverse (mkBackwards ∘ f) (coerce length_toBatch3_toBatch t in Batch_contents (toBatch3 t)) = traverse (mkBackwards ∘ f) (coerce eq_sym (plength_eq_length t) in coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t))
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
t: T A
f: E * A -> G B

coerce length_toBatch3_toBatch t in Batch_contents (toBatch3 t) = coerce eq_sym (plength_eq_length t) in coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
t: T A
f: E * A -> G B

coerce length_toBatch3_toBatch t in Batch_contents (toBatch3 t) ~~ coerce eq_sym (plength_eq_length t) in coerce eq_sym (plength_toBatch3 t) in Batch_contents (toBatch3 t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
G: Type -> Type
Map_G: Map G
Pure_G: Pure G
Mult_G: Mult G
H0: Applicative G
A, B: Type
t: T A
f: E * A -> G B

Batch_contents (toBatch3 t) ~~ Batch_contents (toBatch3 t)
apply Batch_contents_toBatch3_sim. Qed. End deconstruction. (** ** Specialized to option *) (**********************************************************************)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (f : A -> B) (o : option A), map f o = None <-> o = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (f : A -> B) (o : option A), map f o = None <-> o = None
intros; destruct o; easy. Qed. Import Applicative.Notations.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (o : option A), (None : option (A -> B)) <⋆> o = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (o : option A), (None : option (A -> B)) <⋆> o = None
now destruct o. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (f : option (A -> B)) (a : A), f <⋆> Some a = None <-> f = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (f : option (A -> B)) (a : A), f <⋆> Some a = None <-> f = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: option (A -> B)
a: A

f <⋆> Some a = None <-> f = None
now destruct f. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (f : option (A -> B)), f <⋆> None = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (f : option (A -> B)), f <⋆> None = None
now destruct f. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (f : A -> B) (o : option A), Some f <⋆> o = None <-> o = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (f : A -> B) (o : option A), Some f <⋆> o = None <-> o = None
now destruct o. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A : Type) (a : A) (l : list A), List.rev (a :: l) = List.rev l ++ [a]
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A : Type) (a : A) (l : list A), List.rev (a :: l) = List.rev l ++ [a]
reflexivity. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A : Type) (l : list A) (a : A), a ∈ l <-> a ∈ List.rev l
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A : Type) (l : list A) (a : A), a ∈ l <-> a ∈ List.rev l
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type

forall a : A, a ∈ [] <-> a ∈ List.rev []
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
a: A
l: list A
IHl: forall a : A, a ∈ l <-> a ∈ List.rev l
forall a0 : A, a0 ∈ (a :: l) <-> a0 ∈ List.rev (a :: l)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type

forall a : A, a ∈ [] <-> a ∈ List.rev []
reflexivity.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
a: A
l: list A
IHl: forall a : A, a ∈ l <-> a ∈ List.rev l

forall a0 : A, a0 ∈ (a :: l) <-> a0 ∈ List.rev (a :: l)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
a: A
l: list A
IHl: forall a : A, a ∈ l <-> a ∈ List.rev l

forall a0 : A, a0 = a \/ a0 ∈ l <-> a0 ∈ List.rev (a :: l)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
a: A
l: list A
IHl: forall a : A, a ∈ l <-> a ∈ List.rev l

forall a0 : A, a0 = a \/ a0 ∈ List.rev l <-> a0 ∈ List.rev (a :: l)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
a: A
l: list A
IHl: forall a : A, a ∈ l <-> a ∈ List.rev l

forall a0 : A, a0 = a \/ a0 ∈ List.rev l <-> a0 ∈ (List.rev l ++ [a])
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
a: A
l: list A
IHl: forall a : A, a ∈ l <-> a ∈ List.rev l

forall a0 : A, a0 = a \/ a0 ∈ List.rev l <-> a0 ∈ List.rev l \/ a0 ∈ [a]
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A: Type
a: A
l: list A
IHl: forall a : A, a ∈ l <-> a ∈ List.rev l

forall a0 : A, a0 = a \/ a0 ∈ List.rev l <-> a0 ∈ List.rev l \/ a0 = a
tauto. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (f : A -> option B) (l : list A), traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (f : A -> option B) (l : list A), traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B

traverse f [] = None <-> (exists a : A, a ∈ [] /\ f a = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
traverse f (a :: l) = None <-> (exists a0 : A, a0 ∈ (a :: l) /\ f a0 = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B

traverse f [] = None <-> (exists a : A, a ∈ [] /\ f a = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B

pure [] = None <-> (exists a : A, False /\ f a = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
Hyp: pure [] = None

exists a : A, False /\ f a = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
Hyp: exists a : A, False /\ f a = None
pure [] = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
Hyp: pure [] = None

exists a : A, False /\ f a = None
false.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
Hyp: exists a : A, False /\ f a = None

pure [] = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
contra: False

pure [] = None
false.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)

traverse f (a :: l) = None <-> (exists a0 : A, a0 ∈ (a :: l) /\ f a0 = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)

pure cons <⋆> f a <⋆> traverse f l = None <-> (exists a0 : A, a0 ∈ (a :: l) /\ f a0 = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
Fa: option B
HeqFa: Fa = f a

pure cons <⋆> Fa <⋆> traverse f l = None <-> (exists a0 : A, a0 ∈ (a :: l) /\ f a0 = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
b: B
HeqFa: Some b = f a

pure cons <⋆> Some b <⋆> traverse f l = None <-> (exists a0 : A, a0 ∈ (a :: l) /\ f a0 = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
HeqFa: None = f a
pure cons <⋆> None <⋆> traverse f l = None <-> (exists a0 : A, a0 ∈ (a :: l) /\ f a0 = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
b: B
HeqFa: Some b = f a

pure cons <⋆> Some b <⋆> traverse f l = None <-> (exists a0 : A, a0 ∈ (a :: l) /\ f a0 = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
b: B
HeqFa: Some b = f a

Some (cons b) <⋆> traverse f l = None <-> (exists a0 : A, (a = a0 \/ List.In a0 l) /\ f a0 = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
b: B
HeqFa: Some b = f a
Hyp: Some (cons b) <⋆> traverse f l = None

exists a0 : A, (a = a0 \/ List.In a0 l) /\ f a0 = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
b: B
HeqFa: Some b = f a
Hyp: exists a0 : A, (a = a0 \/ List.In a0 l) /\ f a0 = None
Some (cons b) <⋆> traverse f l = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
b: B
HeqFa: Some b = f a
Hyp: Some (cons b) <⋆> traverse f l = None

exists a0 : A, (a = a0 \/ List.In a0 l) /\ f a0 = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
b: B
HeqFa: Some b = f a
Hyp: traverse f l = None

exists a0 : A, (a = a0 \/ List.In a0 l) /\ f a0 = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
b: B
HeqFa: Some b = f a
Hyp: exists a : A, a ∈ l /\ f a = None

exists a0 : A, (a = a0 \/ List.In a0 l) /\ f a0 = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
b: B
HeqFa: Some b = f a
a': A
Hain: a' ∈ l
Hfa: f a' = None

exists a0 : A, (a = a0 \/ List.In a0 l) /\ f a0 = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
b: B
HeqFa: Some b = f a
a': A
Hain: a' ∈ l
Hfa: f a' = None

exists a0 : A, (a = a0 \/ List.In a0 l) /\ f a0 = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
b: B
HeqFa: Some b = f a
a': A
Hain: a' ∈ l
Hfa: f a' = None

(a = a' \/ List.In a' l) /\ f a' = None
split; auto.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
b: B
HeqFa: Some b = f a
Hyp: exists a0 : A, (a = a0 \/ List.In a0 l) /\ f a0 = None

Some (cons b) <⋆> traverse f l = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
b: B
HeqFa: Some b = f a
Hyp: exists a0 : A, (a = a0 \/ List.In a0 l) /\ f a0 = None

Some (cons b) <⋆> traverse f l = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
b: B
HeqFa: Some b = f a
Hyp: exists a0 : A, (a = a0 \/ List.In a0 l) /\ f a0 = None

traverse f l = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
b: B
HeqFa: Some b = f a
Hyp: exists a0 : A, (a = a0 \/ List.In a0 l) /\ f a0 = None

exists a : A, a ∈ l /\ f a = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
b: B
HeqFa: Some b = f a
a': A
Hain: a = a' \/ List.In a' l
Hfa: f a' = None

exists a : A, a ∈ l /\ f a = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
b: B
HeqFa: Some b = f a
a': A
Case1: a = a'
Hfa: f a' = None

exists a : A, a ∈ l /\ f a = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
b: B
HeqFa: Some b = f a
a': A
Case2: List.In a' l
Hfa: f a' = None
exists a : A, a ∈ l /\ f a = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
b: B
HeqFa: Some b = f a
a': A
Case1: a = a'
Hfa: f a' = None

exists a : A, a ∈ l /\ f a = None
false.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
b: B
HeqFa: Some b = f a
a': A
Case2: List.In a' l
Hfa: f a' = None

exists a : A, a ∈ l /\ f a = None
exists a'; auto. }
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
HeqFa: None = f a

pure cons <⋆> None <⋆> traverse f l = None <-> (exists a0 : A, a0 ∈ (a :: l) /\ f a0 = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
HeqFa: None = f a
Hyp: pure cons <⋆> None <⋆> traverse f l = None

exists a0 : A, a0 ∈ (a :: l) /\ f a0 = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
HeqFa: None = f a
Hyp: exists a0 : A, a0 ∈ (a :: l) /\ f a0 = None
pure cons <⋆> None <⋆> traverse f l = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
HeqFa: None = f a
Hyp: pure cons <⋆> None <⋆> traverse f l = None

exists a0 : A, a0 ∈ (a :: l) /\ f a0 = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
HeqFa: None = f a
Hyp: pure cons <⋆> None <⋆> traverse f l = None

a ∈ (a :: l) /\ f a = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
HeqFa: None = f a
Hyp: pure cons <⋆> None <⋆> traverse f l = None

f a = None
now rewrite HeqFa.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
HeqFa: None = f a
Hyp: exists a0 : A, a0 ∈ (a :: l) /\ f a0 = None

pure cons <⋆> None <⋆> traverse f l = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: A -> option B
a: A
l: list A
IHl: traverse f l = None <-> (exists a : A, a ∈ l /\ f a = None)
HeqFa: None = f a
Hyp: exists a0 : A, a0 ∈ (a :: l) /\ f a0 = None

pure cons <⋆> None <⋆> traverse f l = None
apply ap_None_eq_None1. } Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
n: nat
f: E * A -> option B

forall (l : list (E * A)) (e : length l = n), forwards (traverse_Vector_core (mkBackwards ∘ f) l e) = None -> traverse f l = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
n: nat
f: E * A -> option B

forall (l : list (E * A)) (e : length l = n), forwards (traverse_Vector_core (mkBackwards ∘ f) l e) = None -> traverse f l = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
n: nat
f: E * A -> option B
l: list (E * A)
e: length l = n
HeqNone: forwards (traverse_Vector_core (mkBackwards ∘ f) l e) = None

traverse f l = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
l: list (E * A)
HeqNone: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

traverse f l = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
HeqNone: forwards (traverse_Vector_core (mkBackwards ∘ f) [] eq_refl) = None

traverse f [] = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: forwards (traverse_Vector_core (mkBackwards ∘ f) (a :: l) eq_refl) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None
traverse f (a :: l) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
HeqNone: forwards (traverse_Vector_core (mkBackwards ∘ f) [] eq_refl) = None

traverse f [] = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
HeqNone: pure (exist (fun l : list B => length l = 0) [] eq_refl) = None

traverse f [] = None
false.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: forwards (traverse_Vector_core (mkBackwards ∘ f) (a :: l) eq_refl) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None

traverse f (a :: l) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: forwards (traverse_Vector_core (mkBackwards ∘ f) (a :: l) eq_refl) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None

f a = None \/ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: forwards (traverse_Vector_core (mkBackwards ∘ f) (a :: l) eq_refl) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None
cut: f a = None \/ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
traverse f (a :: l) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: forwards (traverse_Vector_core (mkBackwards ∘ f) (a :: l) eq_refl) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None

f a = None \/ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: map (fun '(f, a) => f a) (map swap (match forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S ... = n0 -> Backwards option (...)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (...) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl) with | Some a => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (map (fun '(f, a) => f a) (map swap (match f a with | Some a => fun o : option (B -> Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (B -> Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (pure (vcons (length l)))))))) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None

f a = None \/ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: map swap (match forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl) with | Some a => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (map (fun '(f, a) => f a) (map swap (match f a with | Some a => fun o : option (B -> Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (B -> Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (pure (vcons (length l))))))) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None

f a = None \/ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: match forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl) with | Some a => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (map (fun '(f, a) => f a) (map swap (match f a with | Some a => fun o : option (B -> Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (B -> Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (pure (vcons (length l)))))) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None

f a = None \/ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
b: B
HeqNone: match forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl) with | Some a => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (map (fun '(f, a) => f a) (map swap match pure (vcons (length l)) with | Some a => Some (b, a) | None => None end)) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None

Some b = None \/ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: match forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl) with | Some a => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (map (fun '(f, a) => f a) (map swap match pure (vcons (length l)) with | Some _ | _ => None end)) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None
None = None \/ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
b: B
HeqNone: match forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl) with | Some a => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (map (fun '(f, a) => f a) (map swap match pure (vcons (length l)) with | Some a => Some (b, a) | None => None end)) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None

forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: match forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl) with | Some a => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (map (fun '(f, a) => f a) (map swap match pure (vcons (length l)) with | Some _ | _ => None end)) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None
None = None \/ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
b: B
HeqNone: match forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl) with | Some a => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (Some (vcons (length l) b)) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None

forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: match forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl) with | Some a => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (map (fun '(f, a) => f a) (map swap match pure (vcons (length l)) with | Some _ | _ => None end)) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None
None = None \/ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
b: B
X: option (Vector (length l) B)
HeqX: X = forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl)
HeqNone: match X with | Some a => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (Some (vcons (length l) b)) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None

forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: match forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl) with | Some a => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (map (fun '(f, a) => f a) (map swap match pure (vcons (length l)) with | Some _ | _ => None end)) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None
None = None \/ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
b: B
v: Vector (length l) B
HeqX: Some v = forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl)
HeqNone: Some (v, vcons (length l) b) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None

forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
b: B
HeqX: None = forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl)
HeqNone: None = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None
forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: match forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl) with | Some a => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (map (fun '(f, a) => f a) (map swap match pure (vcons (length l)) with | Some _ | _ => None end)) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None
None = None \/ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
b: B
v: Vector (length l) B
HeqX: Some v = forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl)
HeqNone: Some (v, vcons (length l) b) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None

forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
false.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
b: B
HeqX: None = forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl)
HeqNone: None = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None

forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
b: B
HeqX: forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl) = None
HeqNone: None = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None

forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
exact HeqX.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: match forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl) with | Some a => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (map (fun '(f, a) => f a) (map swap match pure (vcons (length l)) with | Some _ | _ => None end)) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None

None = None \/ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
now left.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: forwards (traverse_Vector_core (mkBackwards ∘ f) (a :: l) eq_refl) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None
cut: f a = None \/ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

traverse f (a :: l) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: forwards (traverse_Vector_core (mkBackwards ∘ f) (a :: l) eq_refl) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None
cut: f a = None \/ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

pure cons <⋆> f a <⋆> traverse f l = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: forwards (traverse_Vector_core (mkBackwards ∘ f) (a :: l) eq_refl) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None
Case1: f a = None

pure cons <⋆> f a <⋆> traverse f l = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: forwards (traverse_Vector_core (mkBackwards ∘ f) (a :: l) eq_refl) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None
Case2: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
pure cons <⋆> f a <⋆> traverse f l = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: forwards (traverse_Vector_core (mkBackwards ∘ f) (a :: l) eq_refl) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None
Case1: f a = None

pure cons <⋆> f a <⋆> traverse f l = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: forwards (traverse_Vector_core (mkBackwards ∘ f) (a :: l) eq_refl) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None
Case1: f a = None

pure cons <⋆> None <⋆> traverse f l = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: forwards (traverse_Vector_core (mkBackwards ∘ f) (a :: l) eq_refl) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None
Case1: f a = None

None <⋆> traverse f l = None
now rewrite ap_None_eq_None1.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: forwards (traverse_Vector_core (mkBackwards ∘ f) (a :: l) eq_refl) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None
Case2: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

pure cons <⋆> f a <⋆> traverse f l = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: forwards (traverse_Vector_core (mkBackwards ∘ f) (a :: l) eq_refl) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None
Case2: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

pure cons <⋆> f a <⋆> None = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: forwards (traverse_Vector_core (mkBackwards ∘ f) (a :: l) eq_refl) = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None -> traverse f l = None
Case2: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

None = None
reflexivity. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
n: nat
f: E * A -> option B

forall (l : list (E * A)) (e : length l = n), traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l e) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
n: nat
f: E * A -> option B

forall (l : list (E * A)) (e : length l = n), traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l e) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
n: nat
f: E * A -> option B
l: list (E * A)
e: length l = n
HeqNone: traverse f l = None

forwards (traverse_Vector_core (mkBackwards ∘ f) l e) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
l: list (E * A)
HeqNone: traverse f l = None

forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
HeqNone: traverse f [] = None

forwards (traverse_Vector_core (mkBackwards ∘ f) [] eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
forwards (traverse_Vector_core (mkBackwards ∘ f) (a :: l) eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
HeqNone: traverse f [] = None

forwards (traverse_Vector_core (mkBackwards ∘ f) [] eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
HeqNone: pure [] = None

forwards (traverse_Vector_core (mkBackwards ∘ f) [] eq_refl) = None
false.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

forwards (traverse_Vector_core (mkBackwards ∘ f) (a :: l) eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

f a = None \/ (exists b : B, f a = Some b /\ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
cut: f a = None \/ (exists b : B, f a = Some b /\ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None)
forwards (traverse_Vector_core (mkBackwards ∘ f) (a :: l) eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

f a = None \/ (exists b : B, f a = Some b /\ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: pure cons <⋆> f a <⋆> traverse f l = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

f a = None \/ (exists b : B, f a = Some b /\ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
b: B
HeqNone: pure cons <⋆> Some b <⋆> traverse f l = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

Some b = None \/ (exists b0 : B, Some b = Some b0 /\ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: pure cons <⋆> None <⋆> traverse f l = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
None = None \/ (exists b : B, None = Some b /\ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
b: B
HeqNone: pure cons <⋆> Some b <⋆> traverse f l = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

exists b0 : B, Some b = Some b0 /\ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: pure cons <⋆> None <⋆> traverse f l = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
None = None \/ (exists b : B, None = Some b /\ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
b: B
HeqNone: Some (cons b) <⋆> traverse f l = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

exists b0 : B, Some b = Some b0 /\ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: pure cons <⋆> None <⋆> traverse f l = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
None = None \/ (exists b : B, None = Some b /\ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
b: B
l0: list B
HeqNone: Some (cons b) <⋆> Some l0 = None
IHl: Some l0 = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

exists b0 : B, Some b = Some b0 /\ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
b: B
HeqNone: Some (cons b) <⋆> None = None
IHl: None = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
exists b0 : B, Some b = Some b0 /\ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: pure cons <⋆> None <⋆> traverse f l = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
None = None \/ (exists b : B, None = Some b /\ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
b: B
l0: list B
HeqNone: Some (cons b) <⋆> Some l0 = None
IHl: Some l0 = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

exists b0 : B, Some b = Some b0 /\ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
b: B
l0: list B
HeqNone: Some (b :: l0) = None
IHl: Some l0 = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

exists b0 : B, Some b = Some b0 /\ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
false.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
b: B
HeqNone: Some (cons b) <⋆> None = None
IHl: None = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

exists b0 : B, Some b = Some b0 /\ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
b: B
HeqNone: None = None
IHl: None = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

exists b0 : B, Some b = Some b0 /\ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
b: B
HeqNone: None = None
IHl: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

exists b0 : B, Some b = Some b0 /\ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
exists b; split; auto.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: pure cons <⋆> None <⋆> traverse f l = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

None = None \/ (exists b : B, None = Some b /\ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None)
now left.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
cut: f a = None \/ (exists b : B, f a = Some b /\ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None)

forwards (traverse_Vector_core (mkBackwards ∘ f) (a :: l) eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
Case1: f a = None

forwards (traverse_Vector_core (mkBackwards ∘ f) (a :: l) eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
Case2: exists b : B, f a = Some b /\ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
forwards (traverse_Vector_core (mkBackwards ∘ f) (a :: l) eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
Case1: f a = None

forwards (traverse_Vector_core (mkBackwards ∘ f) (a :: l) eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
Case1: f a = None

map (fun '(f, a) => f a) (map swap (match forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S ... = n0 -> Backwards option (...)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (...) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl) with | Some a => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (map (fun '(f, a) => f a) (map swap (match f a with | Some a => fun o : option (B -> Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (B -> Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (pure (vcons (length l)))))))) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
Case1: f a = None

map (fun '(f, a) => f a) (map swap (match forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S ... = n0 -> Backwards option (...)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (...) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl) with | Some a => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (map (fun '(f, a) => f a) (map swap match pure (vcons (length l)) with | Some _ | _ => None end)))) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
Case1: f a = None

map (fun '(f, a) => f a) (map swap (match forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S ... = n0 -> Backwards option (...)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (...) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl) with | Some a => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end None)) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
Case1: f a = None

map swap (match forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl) with | Some a => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end None) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
Case1: f a = None

match forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl) with | Some a => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end None = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
Case1: f a = None
X: option (Vector (length l) B)
HeqX: X = forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl)

match X with | Some a => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end None = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
Case1: f a = None
v: Vector (length l) B
HeqX: Some v = forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl)

None = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
Case1: f a = None
HeqX: None = forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl)
None = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
Case1: f a = None
v: Vector (length l) B
HeqX: Some v = forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl)

None = None
reflexivity.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
Case1: f a = None
HeqX: None = forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl)

None = None
reflexivity.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
Case2: exists b : B, f a = Some b /\ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

forwards (traverse_Vector_core (mkBackwards ∘ f) (a :: l) eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
Case2: exists b : B, f a = Some b /\ forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

forwards (traverse_Vector_core (mkBackwards ∘ f) (a :: l) eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
b: B
Hfa: f a = Some b
rest: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

forwards (traverse_Vector_core (mkBackwards ∘ f) (a :: l) eq_refl) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
b: B
Hfa: f a = Some b
rest: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

map (fun '(f, a) => f a) (map swap (match forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S ... = n0 -> Backwards option (...)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (...) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl) with | Some a => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (map (fun '(f, a) => f a) (map swap (match f a with | Some a => fun o : option (B -> Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (B -> Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (pure (vcons (length l)))))))) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
b: B
Hfa: f a = Some b
rest: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

map swap (match forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl) with | Some a => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (map (fun '(f, a) => f a) (map swap (match f a with | Some a => fun o : option (B -> Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (B -> Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (pure (vcons (length l))))))) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
b: B
Hfa: f a = Some b
rest: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

match forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl) with | Some a => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (map (fun '(f, a) => f a) (map swap (match f a with | Some a => fun o : option (B -> Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (B -> Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (pure (vcons (length l)))))) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
b: B
Hfa: f a = Some b
rest: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

match forwards ((fix go (vl : list (E * A)) (n : nat) {struct vl} : length vl = n -> Backwards option (Vector n B) := match vl as vl0 return (length vl0 = n -> Backwards option (Vector n B)) with | [] => pure ○ exist (fun l : list B => length l = n) [] | a :: rest => fun vlen : S (length rest) = n => match n as n0 return (S (length rest) = n0 -> Backwards option (Vector n0 B)) with | 0 => zero_not_S ○ eq_sym (y:=0) | S m => fun vlen' : S (length rest) = S m => pure (vcons m) <⋆> (mkBackwards ∘ f) a <⋆> go rest m (S_uncons vlen') end vlen end) l (length l) eq_refl) with | Some a => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (map (fun '(f, a) => f a) (map swap (match f a with | Some a => fun o : option (B -> Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (B -> Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (pure (vcons (length l)))))) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
b: B
Hfa: f a = Some b
rest: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

match map (fun '(f, a) => f a) (map swap (match f a with | Some a => fun o : option (B -> Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (B -> Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (pure (vcons (length l))))) with | Some _ | _ => None end = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
b: B
Hfa: f a = Some b
rest: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

match map (fun '(f, a) => f a) (map swap (match f a with | Some a => fun o : option (B -> Vector (length l) B -> Vector (S (length l)) B) => match o with | Some a0 => Some (a, a0) | None => None end | None => fun o : option (B -> Vector (length l) B -> Vector (S (length l)) B) => match o with | Some _ | _ => None end end (pure (vcons (length l))))) with | Some _ | _ => None end = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
b: B
Hfa: f a = Some b
rest: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

match map (fun '(f, a) => f a) (map swap match pure (vcons (length l)) with | Some a => Some (b, a) | None => None end) with | Some _ | _ => None end = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
f: E * A -> option B
a: E * A
l: list (E * A)
HeqNone: traverse f (a :: l) = None
IHl: traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None
b: B
Hfa: f a = Some b
rest: forwards (traverse_Vector_core (mkBackwards ∘ f) l eq_refl) = None

None = None
reflexivity. } Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
n: nat
f: E * A -> option B

forall (l : list (E * A)) (e : length l = n), forwards (traverse_Vector_core (mkBackwards ∘ f) l e) = None <-> traverse f l = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
n: nat
f: E * A -> option B

forall (l : list (E * A)) (e : length l = n), forwards (traverse_Vector_core (mkBackwards ∘ f) l e) = None <-> traverse f l = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
n: nat
f: E * A -> option B
l: list (E * A)
e: length l = n

forwards (traverse_Vector_core (mkBackwards ∘ f) l e) = None <-> traverse f l = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
n: nat
f: E * A -> option B
l: list (E * A)
e: length l = n

forwards (traverse_Vector_core (mkBackwards ∘ f) l e) = None -> traverse f l = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
n: nat
f: E * A -> option B
l: list (E * A)
e: length l = n
traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l e) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
n: nat
f: E * A -> option B
l: list (E * A)
e: length l = n

traverse f l = None -> forwards (traverse_Vector_core (mkBackwards ∘ f) l e) = None
apply traverse_Vector_None_spec2. Qed.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (t : T A) (f : E * A -> option B), mapdt f t = None <-> (exists (e : E) (a : A), (e, a) ∈d t /\ f (e, a) = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T

forall (A B : Type) (t : T A) (f : E * A -> option B), mapdt f t = None <-> (exists (e : E) (a : A), (e, a) ∈d t /\ f (e, a) = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B

mapdt f t = None <-> (exists (e : E) (a : A), (e, a) ∈d t /\ f (e, a) = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B

map (mapdt_make t) (forwards (traverse (mkBackwards ∘ f) (mapdt_contents t))) = None <-> (exists (e : E) (a : A), (e, a) ∈d t /\ f (e, a) = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B

map (mapdt_make t) (forwards (traverse (mkBackwards ∘ f) (mapdt_contents t))) = None <-> (exists (e : E) (a : A), (e, a) ∈ toctxlist t /\ f (e, a) = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
v: Vector (plength t) (E * A)
Heqv: v = mapdt_contents t

map (mapdt_make t) (forwards (traverse (mkBackwards ∘ f) v)) = None <-> (exists (e : E) (a : A), (e, a) ∈ toctxlist t /\ f (e, a) = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
e: length x = plength t
Heqv: exist (fun l : list (E * A) => length l = plength t) x e = mapdt_contents t

map (mapdt_make t) (forwards (traverse (mkBackwards ∘ f) (exist (fun l : list (E * A) => length l = plength t) x e))) = None <-> (exists (e : E) (a : A), (e, a) ∈ toctxlist t /\ f (e, a) = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
e: length x = plength t
Heqv: exist (fun l : list (E * A) => length l = plength t) x e = mapdt_contents t

List.rev (toctxlist t) = x
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
e: length x = plength t
Heqv: exist (fun l : list (E * A) => length l = plength t) x e = mapdt_contents t
list_spec: List.rev (toctxlist t) = x
map (mapdt_make t) (forwards (traverse (mkBackwards ∘ f) (exist (fun l : list (E * A) => length l = plength t) x e))) = None <-> (exists (e : E) (a : A), (e, a) ∈ toctxlist t /\ f (e, a) = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
e: length x = plength t
Heqv: exist (fun l : list (E * A) => length l = plength t) x e = mapdt_contents t

List.rev (toctxlist t) = x
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
e: length x = plength t
Heqv: exist (fun l : list (E * A) => length l = plength t) x e = mapdt_contents t

x = List.rev (toctxlist t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
e: length x = plength t
Heqv: exist (fun l : list (E * A) => length l = plength t) x e = mapdt_contents t
H0: x = Vector_to_list (E * A) (exist (fun l : list (E * A) => length l = plength t) x e)

x = List.rev (toctxlist t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
e: length x = plength t
Heqv: exist (fun l : list (E * A) => length l = plength t) x e = mapdt_contents t
x = Vector_to_list (E * A) (exist (fun l : list (E * A) => length l = plength t) x e)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
e: length x = plength t
Heqv: exist (fun l : list (E * A) => length l = plength t) x e = mapdt_contents t
H0: x = Vector_to_list (E * A) (exist (fun l : list (E * A) => length l = plength t) x e)

Vector_to_list (E * A) (exist (fun l : list (E * A) => length l = plength t) x e) = List.rev (toctxlist t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
e: length x = plength t
Heqv: exist (fun l : list (E * A) => length l = plength t) x e = mapdt_contents t
x = Vector_to_list (E * A) (exist (fun l : list (E * A) => length l = plength t) x e)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
e: length x = plength t
Heqv: exist (fun l : list (E * A) => length l = plength t) x e = mapdt_contents t
H0: x = Vector_to_list (E * A) (exist (fun l : list (E * A) => length l = plength t) x e)

Vector_to_list (E * A) (mapdt_contents t) = List.rev (toctxlist t)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
e: length x = plength t
Heqv: exist (fun l : list (E * A) => length l = plength t) x e = mapdt_contents t
x = Vector_to_list (E * A) (exist (fun l : list (E * A) => length l = plength t) x e)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
e: length x = plength t
Heqv: exist (fun l : list (E * A) => length l = plength t) x e = mapdt_contents t

x = Vector_to_list (E * A) (exist (fun l : list (E * A) => length l = plength t) x e)
reflexivity.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
e: length x = plength t
Heqv: exist (fun l : list (E * A) => length l = plength t) x e = mapdt_contents t
list_spec: List.rev (toctxlist t) = x

map (mapdt_make t) (forwards (traverse (mkBackwards ∘ f) (exist (fun l : list (E * A) => length l = plength t) x e))) = None <-> (exists (e : E) (a : A), (e, a) ∈ toctxlist t /\ f (e, a) = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
e: length x = plength t
Heqv: exist (fun l : list (E * A) => length l = plength t) x e = mapdt_contents t
list_spec: List.rev (toctxlist t) = x

map (mapdt_make t) (forwards (traverse_Vector_core (mkBackwards ∘ f) x e)) = None <-> (exists (e : E) (a : A), (e, a) ∈ toctxlist t /\ f (e, a) = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
e: length x = plength t
Heqv: exist (fun l : list (E * A) => length l = plength t) x e = mapdt_contents t
list_spec: List.rev (toctxlist t) = x

forwards (traverse_Vector_core (mkBackwards ∘ f) x e) = None <-> (exists (e : E) (a : A), (e, a) ∈ toctxlist t /\ f (e, a) = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
e: length x = plength t
list_spec: List.rev (toctxlist t) = x

forwards (traverse_Vector_core (mkBackwards ∘ f) x e) = None <-> (exists (e : E) (a : A), (e, a) ∈ toctxlist t /\ f (e, a) = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
list_spec: List.rev (toctxlist t) = x

forwards (traverse_Vector_core (mkBackwards ∘ f) x eq_refl) = None <-> (exists (e : E) (a : A), (e, a) ∈ toctxlist t /\ f (e, a) = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
list_spec: List.rev (toctxlist t) = x

traverse f x = None <-> (exists (e : E) (a : A), (e, a) ∈ toctxlist t /\ f (e, a) = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
list_spec: List.rev (toctxlist t) = x

(exists a : E * A, a ∈ x /\ f a = None) <-> (exists (e : E) (a : A), (e, a) ∈ toctxlist t /\ f (e, a) = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
list_spec: List.rev (toctxlist t) = x

(exists a : E * A, a ∈ List.rev (toctxlist t) /\ f a = None) <-> (exists (e : E) (a : A), (e, a) ∈ toctxlist t /\ f (e, a) = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
list_spec: List.rev (toctxlist t) = x

(exists a : E * A, a ∈ toctxlist t /\ f a = None) <-> (exists (e : E) (a : A), (e, a) ∈ toctxlist t /\ f (e, a) = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
list_spec: List.rev (toctxlist t) = x

(exists a : E * A, a ∈ toctxlist t /\ f a = None) <-> (exists (e : E) (a : A), (e, a) ∈ toctxlist t /\ f (e, a) = None)
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
list_spec: List.rev (toctxlist t) = x

(exists a : E * A, a ∈ toctxlist t /\ f a = None) -> exists (e : E) (a : A), (e, a) ∈ toctxlist t /\ f (e, a) = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
list_spec: List.rev (toctxlist t) = x
(exists (e : E) (a : A), (e, a) ∈ toctxlist t /\ f (e, a) = None) -> exists a : E * A, a ∈ toctxlist t /\ f a = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
list_spec: List.rev (toctxlist t) = x

(exists a : E * A, a ∈ toctxlist t /\ f a = None) -> exists (e : E) (a : A), (e, a) ∈ toctxlist t /\ f (e, a) = None
intros [[e a] rest]; eauto.
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
list_spec: List.rev (toctxlist t) = x

(exists (e : E) (a : A), (e, a) ∈ toctxlist t /\ f (e, a) = None) -> exists a : E * A, a ∈ toctxlist t /\ f a = None
E: Type
T: Type -> Type
Mapdt_inst: Mapdt E T
Traverse_inst: Traverse T
Mapd_inst: Mapd E T
Map_inst: Map T
ToBatch_inst: ToBatch T
ToBatch3_inst: ToBatch3 E T
ToCtxset_inst: ToCtxset E T
ToCtxlist_inst: ToCtxlist E T
Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T
Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T
Compat_Map_Mapdt0: Compat_Map_Mapdt E T
Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T
Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T
Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T
Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T
H: DecoratedTraversableFunctor E T
A, B: Type
t: T A
f: E * A -> option B
x: list (E * A)
list_spec: List.rev (toctxlist t) = x

(exists (e : E) (a : A), (e, a) ∈ toctxlist t /\ f (e, a) = None) -> exists a : E * A, a ∈ toctxlist t /\ f a = None
intros [e [a rest]]; eauto. } Qed. End theory.