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 VariablesF M E T G A B C ϕ.(** * Properties of <<toBatch3>> *)(**********************************************************************)Sectiontheory.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'
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_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'
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_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'
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_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'
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_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'
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_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'
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T 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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T 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
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
forallf : 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
forallf : 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 (Afake : 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 (Afake : 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
nowrewrite 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
nowrewrite (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
nowrewrite (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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_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 ->
forallA : 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 ->
forallA : 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 (AB : Type) (G : Type -> Type) (Map_G : Map G)
(Pure_G : Pure G) (Mult_G : Mult G),
Applicative G ->
forall (t : T A) (fg : 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 (AB : Type) (G : Type -> Type) (Map_G : Map G)
(Pure_G : Pure G) (Mult_G : Mult G),
Applicative G ->
forall (t : T A) (fg : 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)
nowright.
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E 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)
nowleft.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
nowapply 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 (AB : Type) (t : T A) (fg : 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 (AB : Type) (t : T A) (fg : 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)
nowright.
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E 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)
nowleft.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 (AB : Type) (t : T A) (fg : 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 (AB : Type) (t : T A) (fg : 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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E 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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E 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 (AB : Type) (t : T A) (fg : 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 (AB : Type) (t : T A) (fg : 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 ->
foralla0 : 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 ->
foralla0 : 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 ->
foralla0 : 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)) ->
foralla0 : 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 ->
foralla0 : 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 ->
foralla0 : 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 ->
foralla0 : 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 ->
foralla0 : 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 ->
foralla0 : 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)) ->
foralla0 : 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 ->
foralla0 : 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 ->
foralla0 : 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 ->
foralla0 : 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 ->
foralla0 : 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 ->
foralla0 : 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 ->
foralla0 : 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 ->
foralla0 : 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 ->
foralla0 : 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 ->
foralla0 : 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 ->
foralla0 : 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 ->
foralla0 : 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 ->
foralla0 : 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 ->
foralla0 : 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 ->
foralla0 : 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')) ->
foralla : 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 ->
foralla0 : 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 ->
foralla0 : 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 ->
foralla0 : 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 ->
foralla0 : 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 ->
foralla0 : 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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_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 (AB : Type) (t : T A) (fg : 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 (AB : 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 (AB : Type) (t : T A) (fg : 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)
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E 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) (t1t2 : T A),
(forallpq : 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) (t1t2 : T A),
(forallpq : 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: forallpq : 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: forallpq : E * A, 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 Hinj: forallpq : 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: forallpq : E * A, f p = f q -> p = q
foralle : 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: forallpq : 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: forallpq : E * A, f p = f q -> p = q e: E a: A rest: list (E * A) IHrest: foralle : 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: forallpq : 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: forallpq : 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: forallpq : 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: forallpq : 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: forallpq : 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: forallpq : 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: forallpq : E * A, f p = f q -> p = q e: E a: A rest: list (E * A) IHrest: foralle : 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: forallpq : E * A, f p = f q -> p = q e: E a: A rest: list (E * A) IHrest: foralle : 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: forallpq : E * A, f p = f q -> p = q e: E a: A rest: list (E * A) IHrest: foralle : 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')
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T 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: forallpq : E * A, f p = f q -> p = q e: E a: A rest: list (E * A) IHrest: foralle : 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: forallpq : E * A, f p = f q -> p = q e: E a: A rest: list (E * A) IHrest: foralle : 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: forallpq : E * A, f p = f q -> p = q e: E a: A rest: list (E * A) IHrest: foralle : 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')
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T 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: forallpq : E * A, f p = f q -> p = q e: E a: A rest: list (E * A) IHrest: foralle : 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: forallpq : E * A, f p = f q -> p = q e: E a: A rest: list (E * A) IHrest: foralle : 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: forallpq : E * A, f p = f q -> p = q e: E a: A rest: list (E * A) IHrest: foralle : 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: forallpq : E * A, f p = f q -> p = q e: E a: A rest: list (E * A) IHrest: foralle : 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: forallpq : E * A, f p = f q -> p = q e: E a: A rest: list (E * A) IHrest: foralle : 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: foralle : 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'
nowinversion 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: forallpq : E * A, f p = f q -> p = q e: E a: A rest: list (E * A) IHrest: foralle : 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: forallpq : E * A, f p = f q -> p = q e: E a: A rest: list (E * A) IHrest: foralle : 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'
nowinversion 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) (t1t2 : T A),
(forallpq : 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) (t1t2 : T A),
(forallpq : 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: forallpq : 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: forallpq : E * A,
p ∈d toctxlist t1 ->
q ∈d toctxlist t2 -> 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 Hinj: forallpq : 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
foralle : env E A,
(forallpq : 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: forallpq : 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: foralle : env E A,
(forallpq : 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: forallpq : 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: forallpq : 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: forallpq : 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: forallpq : 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: forallpq : 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: forallpq : 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: forallpq : 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: foralle : env E A,
(forallpq : 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: forallpq : 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: foralle : env E A,
(forallpq : 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: forallpq : 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: foralle : env E A,
(forallpq : 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: forallpq : 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')
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T 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: foralle : env E A,
(forallpq : 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: forallpq : 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: foralle : env E A,
(forallpq : 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: forallpq : 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: foralle : env E A,
(forallpq : 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: forallpq : 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')
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T 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: foralle : env E A,
(forallpq : 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: forallpq : 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: foralle : env E A,
(forallpq : 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: forallpq : 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: foralle : env E A,
(forallpq : 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: forallpq : 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: foralle : env E A,
(forallpq : 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: forallpq : 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: foralle : env E A,
(forallpq : 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: forallpq : 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: foralle : env E A,
(forallpq : 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: forallpq : 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: foralle : env E A,
(forallpq : 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: forallpq : 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: foralle : env E A,
(forallpq : 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: forallpq : 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'
forallpq : 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: foralle : env E A,
(forallpq : 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: forallpq : 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: foralle : env E A,
(forallpq : 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: forallpq : 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'
forallpq : 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: foralle : env E A,
(forallpq : 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: forallpq : 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: foralle : env E A,
(forallpq : 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: forallpq : 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: foralle : env E A,
(forallpq : 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: forallpq : 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'
nowinversion 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) (t1t2 : T A),
(forall (e : E) (a1a2 : 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) (t1t2 : T A),
(forall (e : E) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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
foralle : env E A,
(forall (e0 : E) (a1a2 : 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) (a1a2 : 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: foralle : env E A,
(forall (e0 : E) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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: foralle : env E A,
(forall (e0 : E) (a1a2 : 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) (a1a2 : 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: foralle : env E A,
(forall (e0 : E) (a1a2 : 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) (a1a2 : 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: foralle : env E A,
(forall (e0 : E) (a1a2 : 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) (a1a2 : 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')
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T 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: foralle : env E A,
(forall (e0 : E) (a1a2 : 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) (a1a2 : 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: foralle : env E A,
(forall (e0 : E) (a1a2 : 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) (a1a2 : 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: foralle : env E A,
(forall (e0 : E) (a1a2 : 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) (a1a2 : 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')
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T 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: foralle : env E A,
(forall (e0 : E) (a1a2 : 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) (a1a2 : 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: foralle : env E A,
(forall (e0 : E) (a1a2 : 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) (a1a2 : 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: foralle : env E A,
(forall (e0 : E) (a1a2 : 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) (a1a2 : 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: foralle : env E A,
(forall (e0 : E) (a1a2 : 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) (a1a2 : 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: foralle : env E A,
(forall (e0 : E) (a1a2 : 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) (a1a2 : 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: foralle : env E A,
(forall (e0 : E) (a1a2 : 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) (a1a2 : 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: foralle : env E A,
(forall (e0 : E) (a1a2 : 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) (a1a2 : 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; nowleft.
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T 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: foralle : env E A,
(forall (e0 : E) (a1a2 : 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) (a1a2 : 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: foralle : env E A,
(forall (e0 : E) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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: foralle : env E A,
(forall (e0 : E) (a1a2 : 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) (a1a2 : 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: foralle : env E A,
(forall (e0 : E) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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: foralle : env E A,
(forall (e0 : E) (a1a2 : 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) (a1a2 : 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: foralle : env E A,
(forall (e0 : E) (a1a2 : 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) (a1a2 : 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: foralle : env E A,
(forall (e0 : E) (a1a2 : 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) (a1a2 : 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'
nowinversion 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) (t1t2 : T A),
(forallpq : 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) (t1t2 : T A),
(forallpq : 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: forallpq : 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: forallpq : 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: forallpq : 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: forallpq : 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: forallpq : 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: forallpq : 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: forallpq : 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: forallpq : 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: forallpq : 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: forallpq : 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: forallpq : 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: forallpq : 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: forallpq : 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: forallpq : 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: forallpq : 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: forallpq : 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)
nowrewrite 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: forallpq : 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) (t1t2 : T A),
(forall (e : E) (a1a2 : 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) (t1t2 : T A),
(forall (e : E) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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)
nowrewrite 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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) (a1a2 : 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.Endshapeliness.(** * Deconstructing with refinement-type vectors *)(********************************************************************)Sectiondeconstruction.Import Kleisli.DecoratedTraversableFunctor.DerivedInstances.#[local] Generalizable Variablesv.(** ** 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 (AB : 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 (AB : 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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E 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 (AB : 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 (AB : 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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E 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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E 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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E 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)
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E 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)
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E 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))
nowrewrite IHb.Qed.(** ** <<mapdt_contents>> and <<mapdt_make>> *)(******************************************************************)Definitionmapdt_contents {A} (t: T A):
Vector (plength t) (E * A) :=
letv: 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.Definitionmapdt_make {AB} (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 (AB : 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 (AB : 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 (funa : E * A => [a]) b) =
List.rev (runBatch (funa : 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 (funa : E * A => [a]) b) =
a :: List.rev (runBatch (funa : 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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt E T Compat_ToCtxlist_Mapdt0: Compat_ToCtxlist_Mapdt E T H: DecoratedTraversableFunctor 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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt 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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt 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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt 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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E 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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E 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
foralle : 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)
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E 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)
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E 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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E 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)
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E 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)
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E 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)
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E 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)
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_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'
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_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'
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_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
nowapply 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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_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 (AB : 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 (AB : 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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_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
apply Batch_contents_toBatch3_sim.Qed.Enddeconstruction.(** ** 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 (AB : 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 (AB : 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 (AB : 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 (AB : Type) (o : option A),
(None : option (A -> B)) <⋆> o = None
nowdestruct 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 (AB : 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 (AB : 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
nowdestruct 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 (AB : 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 (AB : Type) (f : option (A -> B)),
f <⋆> None = None
nowdestruct 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 (AB : 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 (AB : Type) (f : A -> B) (o : option A),
Some f <⋆> o = None <-> o = None
nowdestruct 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
foralla : 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: foralla : A, a ∈ l <-> a ∈ List.rev l
foralla0 : 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
foralla : 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: foralla : A, a ∈ l <-> a ∈ List.rev l
foralla0 : 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: foralla : A, a ∈ l <-> a ∈ List.rev l
foralla0 : 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: foralla : A, a ∈ l <-> a ∈ List.rev l
foralla0 : 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: foralla : A, a ∈ l <-> a ∈ List.rev l
foralla0 : 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: foralla : A, a ∈ l <-> a ∈ List.rev l
foralla0 : 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: foralla : A, a ∈ l <-> a ∈ List.rev l
foralla0 : 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 (AB : Type) (f : A -> option B) (l : list A),
traverse f l = None <->
(existsa : 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 (AB : Type) (f : A -> option B) (l : list A),
traverse f l = None <->
(existsa : 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 <->
(existsa : 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 <->
(existsa : A, a ∈ l /\ f a = None)
traverse f (a :: l) = None <->
(existsa0 : 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 <->
(existsa : 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 <-> (existsa : 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
existsa : 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: existsa : 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
existsa : 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: existsa : 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 <->
(existsa : A, a ∈ l /\ f a = None)
traverse f (a :: l) = None <->
(existsa0 : 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 <->
(existsa : A, a ∈ l /\ f a = None)
pure cons <⋆> f a <⋆> traverse f l = None <->
(existsa0 : 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 <->
(existsa : A, a ∈ l /\ f a = None) Fa: option B HeqFa: Fa = f a
pure cons <⋆> Fa <⋆> traverse f l = None <->
(existsa0 : 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 <->
(existsa : A, a ∈ l /\ f a = None) b: B HeqFa: Some b = f a
pure cons <⋆> Some b <⋆> traverse f l = None <->
(existsa0 : 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 <->
(existsa : A, a ∈ l /\ f a = None) HeqFa: None = f a
pure cons <⋆> None <⋆> traverse f l = None <->
(existsa0 : 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 <->
(existsa : A, a ∈ l /\ f a = None) b: B HeqFa: Some b = f a
pure cons <⋆> Some b <⋆> traverse f l = None <->
(existsa0 : 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 <->
(existsa : A, a ∈ l /\ f a = None) b: B HeqFa: Some b = f a
Some (cons b) <⋆> traverse f l = None <->
(existsa0 : 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 <->
(existsa : A, a ∈ l /\ f a = None) b: B HeqFa: Some b = f a Hyp: Some (cons b) <⋆> traverse f l = None
existsa0 : 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 <->
(existsa : A, a ∈ l /\ f a = None) b: B HeqFa: Some b = f a Hyp: existsa0 : 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 <->
(existsa : A, a ∈ l /\ f a = None) b: B HeqFa: Some b = f a Hyp: Some (cons b) <⋆> traverse f l = None
existsa0 : 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 <->
(existsa : A, a ∈ l /\ f a = None) b: B HeqFa: Some b = f a Hyp: traverse f l = None
existsa0 : 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 <->
(existsa : A, a ∈ l /\ f a = None) b: B HeqFa: Some b = f a Hyp: existsa : A, a ∈ l /\ f a = None
existsa0 : 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 <->
(existsa : A, a ∈ l /\ f a = None) b: B HeqFa: Some b = f a a': A Hain: a' ∈ l Hfa: f a' = None
existsa0 : 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 <->
(existsa : A, a ∈ l /\ f a = None) b: B HeqFa: Some b = f a a': A Hain: a' ∈ l Hfa: f a' = None
existsa0 : 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 <->
(existsa : 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 <->
(existsa : A, a ∈ l /\ f a = None) b: B HeqFa: Some b = f a Hyp: existsa0 : 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 <->
(existsa : A, a ∈ l /\ f a = None) b: B HeqFa: Some b = f a Hyp: existsa0 : 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 <->
(existsa : A, a ∈ l /\ f a = None) b: B HeqFa: Some b = f a Hyp: existsa0 : 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 <->
(existsa : A, a ∈ l /\ f a = None) b: B HeqFa: Some b = f a Hyp: existsa0 : A,
(a = a0 \/ List.In a0 l) /\ f a0 = None
existsa : 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 <->
(existsa : 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
existsa : 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 <->
(existsa : A, a ∈ l /\ f a = None) b: B HeqFa: Some b = f a a': A Case1: a = a' Hfa: f a' = None
existsa : 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 <->
(existsa : A, a ∈ l /\ f a = None) b: B HeqFa: Some b = f a a': A Case2: List.In a' l Hfa: f a' = None
existsa : 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 <->
(existsa : A, a ∈ l /\ f a = None) b: B HeqFa: Some b = f a a': A Case1: a = a' Hfa: f a' = None
existsa : 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 <->
(existsa : A, a ∈ l /\ f a = None) b: B HeqFa: Some b = f a a': A Case2: List.In a' l Hfa: f a' = None
existsa : A, a ∈ l /\ f a = None
existsa'; 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 <->
(existsa : A, a ∈ l /\ f a = None) HeqFa: None = f a
pure cons <⋆> None <⋆> traverse f l = None <->
(existsa0 : 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 <->
(existsa : A, a ∈ l /\ f a = None) HeqFa: None = f a Hyp: pure cons <⋆> None <⋆> traverse f l = None
existsa0 : 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 <->
(existsa : A, a ∈ l /\ f a = None) HeqFa: None = f a Hyp: existsa0 : 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 <->
(existsa : A, a ∈ l /\ f a = None) HeqFa: None = f a Hyp: pure cons <⋆> None <⋆> traverse f l = None
existsa0 : 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 <->
(existsa : 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 <->
(existsa : A, a ∈ l /\ f a = None) HeqFa: None = f a Hyp: pure cons <⋆> None <⋆> traverse f l = None
f a = None
nowrewrite 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 <->
(existsa : A, a ∈ l /\ f a = None) HeqFa: None = f a Hyp: existsa0 : 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 <->
(existsa : A, a ∈ l /\ f a = None) HeqFa: None = f a Hyp: existsa0 : 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 (funl : 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
(funl : list B =>
length l = n) []
| a :: rest =>
funvlen :
S (length rest) = n =>
match
n as n0
return
(S ... = n0 ->
Backwards option (...))
with
| 0 =>
zero_not_S
○
eq_sym (y:=0)
| S m =>
funvlen' : 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 =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B)
=>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B)
=>
match o with
| Some _ | _ => None
endend
(map (fun '(f, a) => f a)
(map swap
(match f a with
| Some a =>
funo :
option
(B ->
Vector (length l) B ->
Vector (S (length l)) B)
=>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo :
option
(B ->
Vector (length l) B ->
Vector (S (length l)) B)
=>
match o with
| Some _ | _ => None
endend (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
(funl : list B =>
length l = n) []
| a :: rest =>
funvlen : 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 =>
funvlen' :
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 =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend
(map (fun '(f, a) => f a)
(map swap
(match f a with
| Some a =>
funo :
option
(B ->
Vector (length l) B ->
Vector (S (length l)) B)
=>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo :
option
(B ->
Vector (length l) B ->
Vector (S (length l)) B)
=>
match o with
| Some _ | _ => None
endend (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
(funl : list B =>
length l = n) []
| a :: rest =>
funvlen : 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 =>
funvlen' :
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 =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend
(map (fun '(f, a) => f a)
(map swap
(match f a with
| Some a =>
funo : option
(B ->
Vector (length l) B ->
Vector (S (length l)) B)
=>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(B ->
Vector (length l) B ->
Vector (S (length l)) B)
=>
match o with
| Some _ | _ => None
endend (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
(funl : list B =>
length l = n) []
| a :: rest =>
funvlen : 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 =>
funvlen' :
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 =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend
(map (fun '(f, a) => f a)
(map swapmatch 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
(funl : list B =>
length l = n) []
| a :: rest =>
funvlen : 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 =>
funvlen' :
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 =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend
(map (fun '(f, a) => f a)
(map swapmatch pure (vcons (length l)) with
| Some _ | _ => None
end)) = None IHl: 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 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
(funl : list B =>
length l = n) []
| a :: rest =>
funvlen : 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 =>
funvlen' :
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 =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend
(map (fun '(f, a) => f a)
(map swapmatch 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
(funl : list B =>
length l = n) []
| a :: rest =>
funvlen : 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 =>
funvlen' :
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 =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend
(map (fun '(f, a) => f a)
(map swapmatch pure (vcons (length l)) with
| Some _ | _ => None
end)) = None IHl: 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 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
(funl : list B =>
length l = n) []
| a :: rest =>
funvlen : 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 =>
funvlen' :
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 =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend (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
(funl : list B =>
length l = n) []
| a :: rest =>
funvlen : 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 =>
funvlen' :
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 =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend
(map (fun '(f, a) => f a)
(map swapmatch pure (vcons (length l)) with
| Some _ | _ => None
end)) = None IHl: 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 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
(funl : list B => length l = n)
[]
| a :: rest =>
funvlen : 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 =>
funvlen' : 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 =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend (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
(funl : list B =>
length l = n) []
| a :: rest =>
funvlen : 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 =>
funvlen' :
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 =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend
(map (fun '(f, a) => f a)
(map swapmatch pure (vcons (length l)) with
| Some _ | _ => None
end)) = None IHl: 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 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
(funl : list B => length l = n)
[]
| a :: rest =>
funvlen : 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 =>
funvlen' : 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
(funl : list B => length l = n)
[]
| a :: rest =>
funvlen : 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 =>
funvlen' : 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
(funl : list B =>
length l = n) []
| a :: rest =>
funvlen : 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 =>
funvlen' :
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 =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend
(map (fun '(f, a) => f a)
(map swapmatch pure (vcons (length l)) with
| Some _ | _ => None
end)) = None IHl: 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 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
(funl : list B => length l = n)
[]
| a :: rest =>
funvlen : 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 =>
funvlen' : 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
(funl : list B => length l = n)
[]
| a :: rest =>
funvlen : 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 =>
funvlen' : 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
(funl : list B => length l = n)
[]
| a :: rest =>
funvlen : 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 =>
funvlen' : 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
(funl : list B =>
length l = n) []
| a :: rest =>
funvlen : 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 =>
funvlen' :
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 =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend
(map (fun '(f, a) => f a)
(map swapmatch pure (vcons (length l)) with
| Some _ | _ => None
end)) = None IHl: 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 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
nowrewrite 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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T 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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T 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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T 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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T 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
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T 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 \/
(existsb : 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 \/
(existsb : 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
f a = None \/
(existsb : 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 \/
(existsb : 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 \/
(existsb0 : 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 \/
(existsb : 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
existsb0 : 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 \/
(existsb : 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
existsb0 : 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 \/
(existsb : 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
existsb0 : 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
existsb0 : 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 \/
(existsb : 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
existsb0 : 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
existsb0 : 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
existsb0 : 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
existsb0 : 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
existsb0 : B,
Some b = Some b0 /\
forwards
(traverse_Vector_core (mkBackwards ∘ f) l eq_refl) =
None
existsb; 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 \/
(existsb : B,
None = Some b /\
forwards
(traverse_Vector_core (mkBackwards ∘ f) l eq_refl) =
None)
nowleft.
E: Type T: Type -> Type Mapdt_inst: Mapdt E T Traverse_inst: Traverse T Mapd_inst: Mapd E T Map_inst: Map T ToBatch_inst: ToBatch T ToBatch3_inst: ToBatch3 E T ToCtxset_inst: ToCtxset E T ToCtxlist_inst: ToCtxlist E T Compat_Traverse_Mapdt0: Compat_Traverse_Mapdt E T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt E T Compat_Map_Mapdt0: Compat_Map_Mapdt E T Compat_ToBatch_Traverse0: Compat_ToBatch_Traverse T Compat_ToBatch3_Mapdt0: Compat_ToBatch3_Mapdt E T 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 \/
(existsb : 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 Case1: 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: 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: existsb : 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 Case1: 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: 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
(funl : list B => length l = n)
[]
| a :: rest =>
funvlen : S (length rest) = n =>
match
n as n0
return
(S ... = n0 ->
Backwards option (...))
with
| 0 => zero_not_S ○ eq_sym (y:=0)
| S m =>
funvlen' : 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 =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend
(map (fun '(f, a) => f a)
(map swap
(match f a with
| Some a =>
funo : option
(B ->
Vector (length l) B ->
Vector (S (length l)) B)
=>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(B ->
Vector (length l) B ->
Vector (S (length l)) B)
=>
match o with
| Some _ | _ => None
endend (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
(funl : list B => length l = n)
[]
| a :: rest =>
funvlen : S (length rest) = n =>
match
n as n0
return
(S ... = n0 ->
Backwards option (...))
with
| 0 => zero_not_S ○ eq_sym (y:=0)
| S m =>
funvlen' : 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 =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend
(map (fun '(f, a) => f a)
(map swapmatch 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
(funl : list B => length l = n)
[]
| a :: rest =>
funvlen : S (length rest) = n =>
match
n as n0
return
(S ... = n0 ->
Backwards option (...))
with
| 0 => zero_not_S ○ eq_sym (y:=0)
| S m =>
funvlen' : 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 =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend 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
(funl : list B => length l = n) []
| a :: rest =>
funvlen : 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 =>
funvlen' : 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 =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend 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 (funl : list B => length l = n)
[]
| a :: rest =>
funvlen : 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 =>
funvlen' : 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 =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend 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
(funl : list B => length l = n)
[]
| a :: rest =>
funvlen : 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 =>
funvlen' : 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 =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend 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
(funl : list B => length l = n)
[]
| a :: rest =>
funvlen : 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 =>
funvlen' : 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
(funl : list B => length l = n)
[]
| a :: rest =>
funvlen : 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 =>
funvlen' : 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
(funl : list B => length l = n)
[]
| a :: rest =>
funvlen : 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 =>
funvlen' : 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
(funl : list B => length l = n)
[]
| a :: rest =>
funvlen : 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 =>
funvlen' : 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: existsb : 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 Case2: existsb : 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 b: B Hfa: f a = Some b rest: 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 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
(funl : list B => length l = n)
[]
| a :: rest =>
funvlen : S (length rest) = n =>
match
n as n0
return
(S ... = n0 ->
Backwards option (...))
with
| 0 => zero_not_S ○ eq_sym (y:=0)
| S m =>
funvlen' : 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 =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend
(map (fun '(f, a) => f a)
(map swap
(match f a with
| Some a =>
funo : option
(B ->
Vector (length l) B ->
Vector (S (length l)) B)
=>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(B ->
Vector (length l) B ->
Vector (S (length l)) B)
=>
match o with
| Some _ | _ => None
endend (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
(funl : list B => length l = n) []
| a :: rest =>
funvlen : 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 =>
funvlen' : 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 =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend
(map (fun '(f, a) => f a)
(map swap
(match f a with
| Some a =>
funo : option
(B ->
Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(B ->
Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend (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 (funl : list B => length l = n)
[]
| a :: rest =>
funvlen : 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 =>
funvlen' : 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 =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend
(map (fun '(f, a) => f a)
(map swap
(match f a with
| Some a =>
funo : option
(B ->
Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(B ->
Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend (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 (funl : list B => length l = n)
[]
| a :: rest =>
funvlen : 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 =>
funvlen' : 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 =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend
(map (fun '(f, a) => f a)
(map swap
(match f a with
| Some a =>
funo : option
(B ->
Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(B ->
Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend (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 =>
funo : option
(B ->
Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(B ->
Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend (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 =>
funo : option
(B ->
Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some a0 => Some (a, a0)
| None => None
end
| None =>
funo : option
(B ->
Vector (length l) B ->
Vector (S (length l)) B) =>
match o with
| Some _ | _ => None
endend (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 swapmatch 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 (AB : 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 (AB : 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
(funl : list (E * A) => length l = plength t)
x e = mapdt_contents t
map (mapdt_make t)
(forwards
(traverse (mkBackwards ∘ f)
(exist
(funl : 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
(funl : 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
(funl : 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
(funl : 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
(funl : 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
(funl : 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
(funl : list (E * A) => length l = plength t)
x e = mapdt_contents t H0: x =
Vector_to_list (E * A)
(exist
(funl : 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
(funl : list (E * A) => length l = plength t)
x e = mapdt_contents t
x =
Vector_to_list (E * A)
(exist
(funl : 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
(funl : list (E * A) => length l = plength t)
x e = mapdt_contents t H0: x =
Vector_to_list (E * A)
(exist
(funl : list (E * A) =>
length l = plength t) x e)
Vector_to_list (E * A)
(exist
(funl : 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
(funl : list (E * A) => length l = plength t)
x e = mapdt_contents t
x =
Vector_to_list (E * A)
(exist
(funl : 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
(funl : list (E * A) => length l = plength t)
x e = mapdt_contents t H0: x =
Vector_to_list (E * A)
(exist
(funl : 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
(funl : list (E * A) => length l = plength t)
x e = mapdt_contents t
x =
Vector_to_list (E * A)
(exist
(funl : 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
(funl : list (E * A) => length l = plength t)
x e = mapdt_contents t
x =
Vector_to_list (E * A)
(exist
(funl : 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
(funl : 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
(funl : 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
(funl : 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
(funl : 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
(existsa : 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
(existsa : 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
(existsa : 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
(existsa : 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
(existsa : 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) ->
existsa : 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
(existsa : 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) ->
existsa : 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) ->
existsa : E * A, a ∈ toctxlist t /\ f a = None