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.Misc Require Export
NaturalNumbers
Iterate.From Tealeaves.Theory Require Export
DecoratedTraversableMonad.Import DecoratedContainerMonad.Import Kleisli.DecoratedTraversableMonad.Import Kleisli.Theory.DecoratedTraversableFunctor.Import DecoratedTraversableMonad.UsefulInstances.Import PeanoNat.#[local] Open Scope nat_scope.Import DecoratedContainerFunctor.Notations.Import DecoratedMonad.Notations.Import Kleisli.Comonad.Notations.Import Monoid.Notations.Implicit Types (ρ: nat -> nat).#[local] Generalizable VariablesW T U.(** * Closure *)(**********************************************************************)Sectionsection.Context
`{ret_inst: Return T}
`{Mapd_T_inst: Mapd nat T}
`{Mapd_U_inst: Mapd nat U}
`{Mapdt_U_inst: Mapdt nat U}
`{Bindd_U_inst: Bindd nat T U}
`{ToCtxset_U_inst: ToCtxset nat U}
`{! Compat_ToCtxset_Mapdt nat U}.(** ** Level *)(********************************************************************)Definitionlevel_loc: nat * nat -> nat :=
funp => match p with
| (d, n) => n + 1 - d
end.Definitionlevel: U nat -> nat :=
mapdReduce (op := Monoid_op_max) (unit := Monoid_unit_max)
level_loc.(** ** Boolean versions *)(********************************************************************)Definitionbound_within_b (gap: nat): nat -> nat -> bool :=
funixdepth => ix <? depth + gap.Definitionbound_b: nat -> nat -> bool :=
bound_within_b 0.Definitioncl_at_loc_b (gap: nat) (p: nat * nat): bool :=
match p with
| (depth, ix) => bound_within_b gap ix depth
end.Definitioncl_at_b (gap: nat) (t: U nat): bool :=
Forall_ctx_b (cl_at_loc_b gap) t.Definitionclosed_b (t: U nat): bool :=
cl_at_b 0 t.(** ** Propositional versions *)(********************************************************************)Definitionbound_within (gap: nat): nat -> nat -> Prop :=
funixdepth => ix < depth + gap.Definitionbound: nat -> nat -> Prop :=
bound_within 0.Definitioncl_at_loc (gap: nat) (p: nat * nat): Prop :=
match p with
| (depth, ix) => bound_within gap ix depth
end.Definitioncl_at (gap: nat) (t: U nat): Prop :=
Forall_ctx (cl_at_loc gap) t.Definitionclosed (t: U nat): Prop :=
cl_at 0 t.(** ** Relating the two *)(********************************************************************)
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U gap: nat
forallixdepth : nat,
bound_within_b gap ix depth = true <->
ix < gap + depth
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U gap: nat
forallixdepth : nat,
bound_within_b gap ix depth = true <->
ix < gap + depth
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U gap, ix, depth: nat
bound_within_b gap ix depth = true <->
ix < gap + depth
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U gap, ix, depth: nat
(ix <? depth + gap) = true <-> ix < gap + depth
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U gap, ix, depth: nat
ix < depth + gap <-> ix < gap + depth
lia.Qed.
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U gap: nat
forallixdepth : nat,
bound_within_b gap ix depth = false <->
~ ix < gap + depth
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U gap: nat
forallixdepth : nat,
bound_within_b gap ix depth = false <->
~ ix < gap + depth
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U gap, ix, depth: nat
bound_within_b gap ix depth = false <->
~ ix < gap + depth
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U gap, ix, depth: nat
(ix <? depth + gap) = false <-> ~ ix < gap + depth
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U gap, ix, depth: nat
~ ix < depth + gap <-> ~ ix < gap + depth
lia.Qed.
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U
forallixdepth : nat,
bound_b ix depth = true <-> ix < depth
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U
forallixdepth : nat,
bound_b ix depth = true <-> ix < depth
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U ix, depth: nat
bound_b ix depth = true <-> ix < depth
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U ix, depth: nat
(ix <? depth + 0) = true <-> ix < depth
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U ix, depth: nat
ix < depth + 0 <-> ix < depth
lia.Qed.
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U
forallixdepth : nat,
bound_b ix depth = false <-> ~ ix < depth
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U
forallixdepth : nat,
bound_b ix depth = false <-> ~ ix < depth
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U ix, depth: nat
bound_b ix depth = false <-> ~ ix < depth
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U ix, depth: nat
(ix <? depth + 0) = false <-> ~ ix < depth
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U ix, depth: nat
~ ix < depth + 0 <-> ~ ix < depth
lia.Qed.
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U gap: nat
forallp : nat * nat,
cl_at_loc_b gap p = true <-> cl_at_loc gap p
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U gap: nat
forallp : nat * nat,
cl_at_loc_b gap p = true <-> cl_at_loc gap p
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U gap: nat p: (nat * nat)%type
cl_at_loc_b gap p = true <-> cl_at_loc gap p
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U gap: nat p: (nat * nat)%type
(let (depth, ix) := p in bound_within_b gap ix depth) =
true <->
(let (depth, ix) := p in bound_within gap ix depth)
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U gap: nat p: (nat * nat)%type
(let (depth, ix) := p in ix <? depth + gap) = true <->
(let (depth, ix) := p in ix < depth + gap)
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U gap, d, n: nat
(n <? d + gap) = true <-> n < d + gap
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U gap, d, n: nat
n < d + gap <-> n < d + gap
reflexivity.Qed.
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U DecoratedTraversableFunctor0: DecoratedTraversableFunctor
nat U
forall (gap : nat) (t : U nat),
cl_at_b gap t = true <-> cl_at gap t
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U DecoratedTraversableFunctor0: DecoratedTraversableFunctor
nat U
forall (gap : nat) (t : U nat),
cl_at_b gap t = true <-> cl_at gap t
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U DecoratedTraversableFunctor0: DecoratedTraversableFunctor
nat U gap: nat t: U nat
cl_at_b gap t = true <-> cl_at gap t
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U DecoratedTraversableFunctor0: DecoratedTraversableFunctor
nat U gap: nat t: U nat
Forall_ctx_b (cl_at_loc_b gap) t = true <->
Forall_ctx (cl_at_loc gap) t
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U DecoratedTraversableFunctor0: DecoratedTraversableFunctor
nat U gap: nat t: U nat
Forall_ctx_b (cl_at_loc_b gap) t = true <->
Forall_ctx_b ?Goal0 t = true
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U DecoratedTraversableFunctor0: DecoratedTraversableFunctor
nat U gap: nat t: U nat
forallp : nat * nat,
?Goal0 p = true <-> cl_at_loc gap p
T: Type -> Type ret_inst: Return T Mapd_T_inst: Mapd nat T U: Type -> Type Mapd_U_inst: Mapd nat U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U ToCtxset_U_inst: ToCtxset nat U Compat_ToCtxset_Mapdt0: Compat_ToCtxset_Mapdt nat U DecoratedTraversableFunctor0: DecoratedTraversableFunctor
nat U gap: nat t: U nat
forallp : nat * nat,
cl_at_loc_b gap p = true <-> cl_at_loc gap p
(σ n) ⋅ (σ ○ Init.Nat.add (S n)) = σ ○ Init.Nat.add n
X: Type σ: nat -> X n: nat
((σ n) ⋅ (σ ○ Init.Nat.add (S n))) 0 = σ (n + 0)
X: Type σ: nat -> X n, m: nat
((σ n) ⋅ (σ ○ Init.Nat.add (S n))) (S m) = σ (n + S m)
X: Type σ: nat -> X n: nat
((σ n) ⋅ (σ ○ Init.Nat.add (S n))) 0 = σ (n + 0)
X: Type σ: nat -> X n: nat
σ n = σ (n + 0)
X: Type σ: nat -> X n: nat
σ n = σ n
reflexivity.
X: Type σ: nat -> X n, m: nat
((σ n) ⋅ (σ ○ Init.Nat.add (S n))) (S m) = σ (n + S m)
X: Type σ: nat -> X n, m: nat
σ (S (n + m)) = σ (n + S m)
X: Type σ: nat -> X n, m: nat
σ (S (n + m)) = σ (S (n + m))
reflexivity.Qed.
n: nat
n ⋅ (+S n) = (+n)
n: nat
n ⋅ (+S n) = (+n)
apply (cons_eta id).Qed.(** * Renaming *)(**********************************************************************)(* Given a depth and renaming ρ, adjust ρ to account for the depth *)Definitionlift__ren: nat -> (nat -> nat) -> (nat -> nat) :=
fundepthρix =>
if bound_b ix depth
then ix
elseletfree_ix := ix - depth
in ρ free_ix + depth.Definitionlocal__ren (ρ: nat -> nat) (p: nat * nat): nat :=
match p with
| (depth, ix) => lift__ren depth ρ ix
end.Definitionrename `{Mapd_T_inst: Mapd nat T} (ρ: nat -> nat): T nat -> T nat :=
mapd (T := T) (local__ren ρ).(* adjust a renaming to go under one binder *)Definitionup__ren (ρ: nat -> nat): nat -> nat :=
0 ⋅ (S ∘ ρ).(** ** Properties of level*)(**********************************************************************)Sectionlevel_theory.Context
`{Mapdt_T_inst: Mapdt nat T}
`{Functor_inst: ! DecoratedTraversableFunctor nat T}.
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T
forall (gap : nat) (t : T nat),
level t <= gap -> cl_at gap t
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T
forall (gap : nat) (t : T nat),
level t <= gap -> cl_at gap t
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat
level t <= gap -> cl_at gap t
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat
mapdReduce level_loc t <= gap -> cl_at gap t
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat
mapdReduce level_loc t <= gap ->
Forall_ctx (cl_at_loc gap) t
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat
(mapReduce level_loc ∘ toctxlist) t <= gap ->
Forall_ctx (cl_at_loc gap) t
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat
(mapReduce level_loc ∘ toctxlist) t <= gap ->
mapdReduce (cl_at_loc gap) t
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat
(mapReduce level_loc ∘ toctxlist) t <= gap ->
(mapReduce (cl_at_loc gap) ∘ toctxlist) t
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat
mapReduce level_loc nil <= gap ->
mapReduce (cl_at_loc gap) nil
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat a: (nat * nat)%type e: list (nat * nat) IHe: mapReduce level_loc e <= gap ->
mapReduce (cl_at_loc gap) e
mapReduce level_loc (a :: e) <= gap ->
mapReduce (cl_at_loc gap) (a :: e)
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat
mapReduce level_loc nil <= gap ->
mapReduce (cl_at_loc gap) nil
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat
0 <= gap -> True
easy.
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat a: (nat * nat)%type e: list (nat * nat) IHe: mapReduce level_loc e <= gap ->
mapReduce (cl_at_loc gap) e
mapReduce level_loc (a :: e) <= gap ->
mapReduce (cl_at_loc gap) (a :: e)
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat a: (nat * nat)%type e: list (nat * nat) IHe: mapReduce level_loc e <= gap ->
mapReduce (cl_at_loc gap) e
level_loc a ● mapReduce level_loc e <= gap ->
(pure cons ● cl_at_loc gap a)
● mapReduce (cl_at_loc gap) e
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat a: (nat * nat)%type e: list (nat * nat) IHe: mapReduce level_loc e <= gap ->
mapReduce (cl_at_loc gap) e
Init.Nat.max (level_loc a) (mapReduce level_loc e) <=
gap ->
(True /\ cl_at_loc gap a) /\
mapReduce (cl_at_loc gap) e
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat a: (nat * nat)%type e: list (nat * nat) IHe: mapReduce level_loc e <= gap ->
mapReduce (cl_at_loc gap) e H: Init.Nat.max (level_loc a) (mapReduce level_loc e) <=
gap
(True /\ cl_at_loc gap a) /\
mapReduce (cl_at_loc gap) e
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat a: (nat * nat)%type e: list (nat * nat) IHe: mapReduce level_loc e <= gap ->
mapReduce (cl_at_loc gap) e H: Init.Nat.max (level_loc a) (mapReduce level_loc e) <=
gap
True /\ cl_at_loc gap a
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat a: (nat * nat)%type e: list (nat * nat) IHe: mapReduce level_loc e <= gap ->
mapReduce (cl_at_loc gap) e H: Init.Nat.max (level_loc a) (mapReduce level_loc e) <=
gap
mapReduce (cl_at_loc gap) e
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat a: (nat * nat)%type e: list (nat * nat) IHe: mapReduce level_loc e <= gap ->
mapReduce (cl_at_loc gap) e H: Init.Nat.max (level_loc a) (mapReduce level_loc e) <=
gap
True /\ cl_at_loc gap a
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat a: (nat * nat)%type e: list (nat * nat) IHe: mapReduce level_loc e <= gap ->
mapReduce (cl_at_loc gap) e H: Init.Nat.max (level_loc a) (mapReduce level_loc e) <=
gap
cl_at_loc gap a
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat a: (nat * nat)%type e: list (nat * nat) IHe: mapReduce level_loc e <= gap ->
mapReduce (cl_at_loc gap) e H: Init.Nat.max (level_loc a) (mapReduce level_loc e) <=
gap
let (depth, ix) := a in bound_within gap ix depth
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat d, n: nat e: list (nat * nat) IHe: mapReduce level_loc e <= gap ->
mapReduce (cl_at_loc gap) e H: Init.Nat.max (level_loc (d, n))
(mapReduce level_loc e) <= gap
bound_within gap n d
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat d, n: nat e: list (nat * nat) IHe: mapReduce level_loc e <= gap ->
mapReduce (cl_at_loc gap) e H: Init.Nat.max (level_loc (d, n))
(mapReduce level_loc e) <= gap
n < d + gap
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat d, n: nat e: list (nat * nat) IHe: mapReduce level_loc e <= gap ->
mapReduce (cl_at_loc gap) e H: Init.Nat.max (n + 1 - d)
(mapReduce
(funp : nat * nat =>
let (d, n) := p in n + 1 - d) e) <= gap
n < d + gap
lia.
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat a: (nat * nat)%type e: list (nat * nat) IHe: mapReduce level_loc e <= gap ->
mapReduce (cl_at_loc gap) e H: Init.Nat.max (level_loc a) (mapReduce level_loc e) <=
gap
mapReduce (cl_at_loc gap) e
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat a: (nat * nat)%type e: list (nat * nat) IHe: mapReduce level_loc e <= gap ->
mapReduce (cl_at_loc gap) e H: Init.Nat.max (level_loc a) (mapReduce level_loc e) <=
gap
mapReduce level_loc e <= gap
lia.Qed.
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T
forall (gap : nat) (t : T nat),
cl_at gap t -> level t <= gap
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T
forall (gap : nat) (t : T nat),
cl_at gap t -> level t <= gap
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat
cl_at gap t -> level t <= gap
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat
cl_at gap t -> mapdReduce level_loc t <= gap
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat
Forall_ctx (cl_at_loc gap) t ->
mapdReduce level_loc t <= gap
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat
Forall_ctx (cl_at_loc gap) t ->
(mapReduce level_loc ∘ toctxlist) t <= gap
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat
mapdReduce (cl_at_loc gap) t ->
(mapReduce level_loc ∘ toctxlist) t <= gap
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat
(mapReduce (cl_at_loc gap) ∘ toctxlist) t ->
(mapReduce level_loc ∘ toctxlist) t <= gap
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat
mapReduce (cl_at_loc gap) nil ->
mapReduce level_loc nil <= gap
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat a: (nat * nat)%type e: list (nat * nat) IHe: mapReduce (cl_at_loc gap) e ->
mapReduce level_loc e <= gap
mapReduce (cl_at_loc gap) (a :: e) ->
mapReduce level_loc (a :: e) <= gap
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat
mapReduce (cl_at_loc gap) nil ->
mapReduce level_loc nil <= gap
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat
True -> 0 <= gap
lia.
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat a: (nat * nat)%type e: list (nat * nat) IHe: mapReduce (cl_at_loc gap) e ->
mapReduce level_loc e <= gap
mapReduce (cl_at_loc gap) (a :: e) ->
mapReduce level_loc (a :: e) <= gap
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat a: (nat * nat)%type e: list (nat * nat) IHe: mapReduce (cl_at_loc gap) e ->
mapReduce level_loc e <= gap
(pure cons ● cl_at_loc gap a)
● mapReduce (cl_at_loc gap) e ->
level_loc a ● mapReduce level_loc e <= gap
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat a: (nat * nat)%type e: list (nat * nat) IHe: mapReduce (cl_at_loc gap) e ->
mapReduce level_loc e <= gap
(True /\ cl_at_loc gap a) /\
mapReduce (cl_at_loc gap) e ->
Init.Nat.max (level_loc a) (mapReduce level_loc e) <=
gap
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat a: (nat * nat)%type e: list (nat * nat) IHe: mapReduce (cl_at_loc gap) e ->
mapReduce level_loc e <= gap H1: cl_at_loc gap a H2: mapReduce (cl_at_loc gap) e
Init.Nat.max (level_loc a) (mapReduce level_loc e) <=
gap
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat a: (nat * nat)%type e: list (nat * nat) IHe: mapReduce (cl_at_loc gap) e ->
mapReduce level_loc e <= gap H1: let (depth, ix) := a in bound_within gap ix depth H2: mapReduce (cl_at_loc gap) e
Init.Nat.max (level_loc a) (mapReduce level_loc e) <=
gap
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat d, n: nat e: list (nat * nat) IHe: mapReduce (cl_at_loc gap) e ->
mapReduce level_loc e <= gap H1: bound_within gap n d H2: mapReduce (cl_at_loc gap) e
Init.Nat.max (level_loc (d, n))
(mapReduce level_loc e) <= gap
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat d, n: nat e: list (nat * nat) IHe: mapReduce (cl_at_loc gap) e ->
mapReduce level_loc e <= gap H1: n < d + gap H2: mapReduce (cl_at_loc gap) e
Init.Nat.max (level_loc (d, n))
(mapReduce level_loc e) <= gap
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat d, n: nat e: list (nat * nat) IHe: mapReduce level_loc e <= gap H1: n < d + gap H2: mapReduce (cl_at_loc gap) e
Init.Nat.max (level_loc (d, n))
(mapReduce level_loc e) <= gap
T: Type -> Type Mapdt_T_inst: Mapdt nat T Functor_inst: DecoratedTraversableFunctor nat T gap: nat t: T nat d, n: nat e: list (nat * nat) IHe: mapReduce level_loc e <= gap H1: n < d + gap H2: mapReduce (cl_at_loc gap) e
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T
lift__ren 0 = id
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T
lift__ren 0 = id
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T
(funρ (ix : nat) =>
if ix `bound in` 0then ix else ρ (ix - 0) + 0) = id
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T ρ: nat -> nat ix: nat
(if ix `bound in` 0then ix else ρ (ix - 0) + 0) =
id ρ ix
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T ρ: nat -> nat ix: nat Hord: ix >= 0 Hbound: ix `bound in` 0 = false
ρ (ix - 0) + 0 = id ρ ix
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T ρ: nat -> nat ix: nat Hord: ix >= 0 Hbound: ix `bound in` 0 = false
ρ ix + 0 = id ρ ix
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T ρ: nat -> nat ix: nat Hord: ix >= 0 Hbound: ix `bound in` 0 = false
ρ ix = id ρ ix
reflexivity.Qed.
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T
forallρ (ix : nat), local__ren ρ (0, ix) = ρ ix
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T
forallρ (ix : nat), local__ren ρ (0, ix) = ρ ix
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T ρ: nat -> nat ix: nat
local__ren ρ (0, ix) = ρ ix
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T ρ: nat -> nat ix: nat
lift__ren 0 ρ ix = ρ ix
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T ρ: nat -> nat ix: nat
id ρ ix = ρ ix
reflexivity.Qed.
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T H: Return T H0: Bindd nat T T Compat_Mapd_Bindd0: Compat_Mapd_Bindd nat T T DecoratedMonad0: DecoratedMonad nat T
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T H: Return T H0: Bindd nat T T Compat_Mapd_Bindd0: Compat_Mapd_Bindd nat T T DecoratedMonad0: DecoratedMonad nat T
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T H: Return T H0: Bindd nat T T Compat_Mapd_Bindd0: Compat_Mapd_Bindd nat T T DecoratedMonad0: DecoratedMonad nat T ρ: nat -> nat ix: nat
rename ρ (ret ix) = ret (ρ ix)
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T H: Return T H0: Bindd nat T T Compat_Mapd_Bindd0: Compat_Mapd_Bindd nat T T DecoratedMonad0: DecoratedMonad nat T ρ: nat -> nat ix: nat
mapd (local__ren ρ) (ret ix) = ret (ρ ix)
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T H: Return T H0: Bindd nat T T Compat_Mapd_Bindd0: Compat_Mapd_Bindd nat T T DecoratedMonad0: DecoratedMonad nat T ρ: nat -> nat ix: nat
(mapd (local__ren ρ) ∘ ret) ix = (ret ∘ ρ) ix
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T H: Return T H0: Bindd nat T T Compat_Mapd_Bindd0: Compat_Mapd_Bindd nat T T DecoratedMonad0: DecoratedMonad nat T ρ: nat -> nat ix: nat
(ret ∘ local__ren ρ ∘ ret) ix = (ret ∘ ρ) ix
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T H: Return T H0: Bindd nat T T Compat_Mapd_Bindd0: Compat_Mapd_Bindd nat T T DecoratedMonad0: DecoratedMonad nat T ρ: nat -> nat ix: nat
ret (local__ren ρ (ret ix)) = ret (ρ ix)
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T H: Return T H0: Bindd nat T T Compat_Mapd_Bindd0: Compat_Mapd_Bindd nat T T DecoratedMonad0: DecoratedMonad nat T ρ: nat -> nat ix: nat
ret (local__ren ρ (Ƶ, ix)) = ret (ρ ix)
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T H: Return T H0: Bindd nat T T Compat_Mapd_Bindd0: Compat_Mapd_Bindd nat T T DecoratedMonad0: DecoratedMonad nat T ρ: nat -> nat ix: nat
ret (local__ren ρ (0, ix)) = ret (ρ ix)
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T H: Return T H0: Bindd nat T T Compat_Mapd_Bindd0: Compat_Mapd_Bindd nat T T DecoratedMonad0: DecoratedMonad nat T ρ: nat -> nat ix: nat
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T
forallnm : nat,
lift__ren m ∘ lift__ren n = lift__ren (m + n)
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T
forallnm : nat,
lift__ren m ∘ lift__ren n = lift__ren (m + n)
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T n, m: nat
lift__ren m ∘ lift__ren n = lift__ren (m + n)
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T n, m: nat σ: nat -> nat ix: nat
(lift__ren m ∘ lift__ren n) σ ix =
lift__ren (m + n) σ ix
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T n, m: nat σ: nat -> nat ix: nat
(if ix `bound in` m
then ix
else
(if (ix - m) `bound in` n
then ix - m
else σ (ix - m - n) + n) + m) =
(if ix `bound in` (m + n)
then ix
else σ (ix - (m + n)) + (m + n))
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T n, m: nat σ: nat -> nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false
(if (ix - m) `bound in` n
then ix - m
else σ (ix - m - n) + n) + m =
(if ix `bound in` (m + n)
then ix
else σ (ix - (m + n)) + (m + n))
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T n, m: nat σ: nat -> nat ix: nat Hord: ix < m Hbound: ix `bound in` m = true
ix =
(if ix `bound in` (m + n)
then ix
else σ (ix - (m + n)) + (m + n))
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T n, m: nat σ: nat -> nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false
(if (ix - m) `bound in` n
then ix - m
else σ (ix - m - n) + n) + m =
(if ix `bound in` (m + n)
then ix
else σ (ix - (m + n)) + (m + n))
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T n, m: nat σ: nat -> nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m >= n Hbound0: (ix - m) `bound in` n = false
σ (ix - m - n) + n + m =
(if ix `bound in` (m + n)
then ix
else σ (ix - (m + n)) + (m + n))
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T n, m: nat σ: nat -> nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m < n Hbound0: (ix - m) `bound in` n = true
ix - m + m =
(if ix `bound in` (m + n)
then ix
else σ (ix - (m + n)) + (m + n))
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T n, m: nat σ: nat -> nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m >= n Hbound0: (ix - m) `bound in` n = false
σ (ix - m - n) + n + m =
(if ix `bound in` (m + n)
then ix
else σ (ix - (m + n)) + (m + n))
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T n, m: nat σ: nat -> nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m >= n Hbound0: (ix - m) `bound in` n = false Hord1: ix >= m + n Hbound1: ix `bound in` (m + n) = false
σ (ix - m - n) + n + m = σ (ix - (m + n)) + (m + n)
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T n, m: nat σ: nat -> nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m >= n Hbound0: (ix - m) `bound in` n = false Hord1: ix >= m + n Hbound1: ix `bound in` (m + n) = false
σ (ix - m - n) + n + m = σ (ix - (n + m)) + (n + m)
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T n, m: nat σ: nat -> nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m >= n Hbound0: (ix - m) `bound in` n = false Hord1: ix >= m + n Hbound1: ix `bound in` (m + n) = false
σ (ix - m - n) + n + m = σ (ix - (n + m)) + n + m
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T n, m: nat σ: nat -> nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m >= n Hbound0: (ix - m) `bound in` n = false Hord1: ix >= m + n Hbound1: ix `bound in` (m + n) = false
σ (ix - m - n) + n = σ (ix - (n + m)) + n
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T n, m: nat σ: nat -> nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m >= n Hbound0: (ix - m) `bound in` n = false Hord1: ix >= m + n Hbound1: ix `bound in` (m + n) = false
σ (ix - m - n) = σ (ix - (n + m))
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T n, m: nat σ: nat -> nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m >= n Hbound0: (ix - m) `bound in` n = false Hord1: ix >= m + n Hbound1: ix `bound in` (m + n) = false
ix - m - n = ix - (n + m)
lia.
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T n, m: nat σ: nat -> nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m < n Hbound0: (ix - m) `bound in` n = true
ix - m + m =
(if ix `bound in` (m + n)
then ix
else σ (ix - (m + n)) + (m + n))
bound_induction.
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T n, m: nat σ: nat -> nat ix: nat Hord: ix < m Hbound: ix `bound in` m = true
ix =
(if ix `bound in` (m + n)
then ix
else σ (ix - (m + n)) + (m + n))
bound_induction.Qed.
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T
forall (n : nat) ρ,
lift__ren (S n) ρ = lift__ren n (lift__ren 1 ρ)
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T
forall (n : nat) ρ,
lift__ren (S n) ρ = lift__ren n (lift__ren 1 ρ)
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T n: nat ρ: nat -> nat
lift__ren (S n) ρ = lift__ren n (lift__ren 1 ρ)
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T n: nat ρ: nat -> nat
lift__ren (n + 1) ρ = lift__ren n (lift__ren 1 ρ)
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T n: nat ρ: nat -> nat
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T Mapdt_inst: Mapdt nat T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt nat T DTF_inst: DecoratedTraversableFunctor nat T
forall (ln : nat) (t : T nat) ρ,
(n, l) ∈d rename ρ t <->
(existsl1 : nat,
(n, l1) ∈d t /\
l =
(if l1 `bound in` n then l1 else n + ρ (l1 - n)))
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T Mapdt_inst: Mapdt nat T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt nat T DTF_inst: DecoratedTraversableFunctor nat T
forall (ln : nat) (t : T nat) ρ,
(n, l) ∈d rename ρ t <->
(existsl1 : nat,
(n, l1) ∈d t /\
l =
(if l1 `bound in` n then l1 else n + ρ (l1 - n)))
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T Mapdt_inst: Mapdt nat T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt nat T DTF_inst: DecoratedTraversableFunctor nat T l, n: nat t: T nat ρ: nat -> nat
(n, l) ∈d rename ρ t <->
(existsl1 : nat,
(n, l1) ∈d t /\
l =
(if l1 `bound in` n then l1 else n + ρ (l1 - n)))
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T Mapdt_inst: Mapdt nat T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt nat T DTF_inst: DecoratedTraversableFunctor nat T l, n: nat t: T nat ρ: nat -> nat
(n, l) ∈d mapd (local__ren ρ) t <->
(existsl1 : nat,
(n, l1) ∈d t /\
l =
(if l1 `bound in` n then l1 else n + ρ (l1 - n)))
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T Mapdt_inst: Mapdt nat T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt nat T DTF_inst: DecoratedTraversableFunctor nat T l, n: nat t: T nat ρ: nat -> nat
(existsa : nat,
(n, a) ∈d t /\ local__ren ρ (n, a) = l) <->
(existsl1 : nat,
(n, l1) ∈d t /\
l =
(if l1 `bound in` n then l1 else n + ρ (l1 - n)))
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T Mapdt_inst: Mapdt nat T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt nat T DTF_inst: DecoratedTraversableFunctor nat T l, n: nat t: T nat ρ: nat -> nat
(existsa : nat,
(n, a) ∈d t /\
(if a `bound in` n then a else ρ (a - n) + n) = l) <->
(existsl1 : nat,
(n, l1) ∈d t /\
l =
(if l1 `bound in` n then l1 else n + ρ (l1 - n)))
T: Type -> Type Mapd_T_inst: Mapd nat T Functor_inst: DecoratedFunctor nat T Mapdt_inst: Mapdt nat T Compat_Mapd_Mapdt0: Compat_Mapd_Mapdt nat T DTF_inst: DecoratedTraversableFunctor nat T l, n: nat t: T nat ρ: nat -> nat
(existsa : nat,
(n, a) ∈d t /\
(if a `bound in` n then a else n + ρ (a - n)) = l) <->
(existsl1 : nat,
(n, l1) ∈d t /\
l =
(if l1 `bound in` n then l1 else n + ρ (l1 - n)))
intuition; preprocess; eauto.Qed.Endrenaming_theory.(** * De Bruijn operations *)(**********************************************************************)Sectionops.Context
`{ret_inst: Return T}
`{Mapd_T_inst: Mapd nat T}
`{Bindd_U_inst: Bindd nat T U}.(* Given a depth and substitution σ, adjust σ to account for the depth *)Definitionlift__sub: nat -> (nat -> T nat) -> (nat -> T nat) :=
fundepthσix =>
if ix `bound in` depth
then ret ix
elseletfree_ix := ix - depth
inrename (+ depth) (σ free_ix).Definitionlocal__sub (σ: nat -> T nat) (p: nat * nat): T nat :=
match p with
| (depth, ix) => lift__sub depth σ ix
end.Definitionsubst (σ: nat -> T nat): U nat -> U nat :=
bindd (local__sub σ).(* adjust a substitution to go under one binder *)Definitionup__sub (σ: nat -> T nat): nat -> T nat :=
(ret 0) ⋅ (rename (+1) ∘ σ).Endops.Sectiontheory.Context
`{ret_inst: Return T}
`{Map_T_inst: Map T}
`{Mapd_T_inst: Mapd nat T}
`{Traverse_T_inst: Traverse T}
`{Bind_T_inst: Bind T T}
`{Mapdt_T_inst: Mapdt nat T}
`{Bindd_T_inst: Bindd nat T T}
`{Bindt_T_inst: Bindt T T}
`{Binddt_T_inst: Binddt nat T T}
`{! Compat_Map_Binddt nat T T}
`{! Compat_Mapd_Binddt nat T T}
`{! Compat_Traverse_Binddt nat T T}
`{! Compat_Bind_Binddt nat T T}
`{! Compat_Mapdt_Binddt nat T T}
`{! Compat_Bindd_Binddt nat T T}
`{! Compat_Bindt_Binddt nat T T}
`{Monad_inst: ! DecoratedTraversableMonad nat T}.Context
`{Map_U_inst: Map U}
`{Mapd_U_inst: Mapd nat U}
`{Traverse_U_inst: Traverse U}
`{Bind_U_inst: Bind T U}
`{Mapdt_U_inst: Mapdt nat U}
`{Bindd_U_inst: Bindd nat T U}
`{Bindt_U_inst: Bindt T U}
`{Binddt_U_inst: Binddt nat T U}
`{! Compat_Map_Binddt nat T U}
`{! Compat_Mapd_Binddt nat T U}
`{! Compat_Traverse_Binddt nat T U}
`{! Compat_Bind_Binddt nat T U}
`{! Compat_Mapdt_Binddt nat T U}
`{! Compat_Bindd_Binddt nat T U}
`{! Compat_Bindt_Binddt nat T U}
`{Module_inst: ! DecoratedTraversableRightPreModule nat T U
(unit := Monoid_unit_zero)
(op := Monoid_op_plus)}.(** * Properties of substitution *)(********************************************************************)(** ** Substitution and ret *)(********************************************************************)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
lift__sub 0 = id
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
lift__sub 0 = id
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat ix: nat
lift__sub 0 σ ix = id σ ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat ix: nat
lift__sub 0 σ ix = σ ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat ix: nat
(if ix `bound in` 0then ret ix
elserename (+0) (σ (ix - 0))) = σ ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat ix: nat
rename (+0) (σ (ix - 0)) = σ ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat ix: nat
rename (+0) (σ ix) = σ ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat ix: nat
rename id (σ ix) = σ ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat ix: nat
id = (+0)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat ix: nat
id = (+0)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat ix, n: nat
id n = (+0) n
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat ix, n: nat
n = 0 + n
lia.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat ix: nat
rename id (σ ix) = σ ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat ix: nat
mapd (local__ren id) (σ ix) = σ ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat ix: nat
mapd extract (σ ix) = σ ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat ix: nat
id (σ ix) = σ ix
reflexivity.Qed.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
forall (σ : nat -> T nat) (n : nat),
local__sub σ (0, n) = σ n
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
forall (σ : nat -> T nat) (n : nat),
local__sub σ (0, n) = σ n
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n: nat
local__sub σ (0, n) = σ n
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n: nat
lift__sub 0 σ n = σ n
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n: nat
id σ n = σ n
reflexivity.Qed.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
forall (σ : nat -> T nat) (x : nat),
(local__sub σ ∘ ret) x = σ x
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
forall (σ : nat -> T nat) (x : nat),
(local__sub σ ∘ ret) x = σ x
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat x: nat
(local__sub σ ∘ ret) x = σ x
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat x: nat
(local__sub σ ∘ (funa : nat => (0, a))) x = σ x
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat x: nat
local__sub σ (0, x) = σ x
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat x: nat
σ x = σ x
reflexivity.Qed.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
forall (σ : nat -> T nat) (x : nat),
subst σ (ret x) = σ x
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
forall (σ : nat -> T nat) (x : nat),
subst σ (ret x) = σ x
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat x: nat
subst σ (ret x) = σ x
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat x: nat
bindd (local__sub σ) (ret x) = σ x
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat x: nat
(bindd (local__sub σ) ∘ ret) x = σ x
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat x: nat
(local__sub σ ∘ ret) x = σ x
apply local__sub_compose_ret.Qed.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
forallσ : nat -> T nat, subst σ ∘ ret = σ
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
forallσ : nat -> T nat, subst σ ∘ ret = σ
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat
subst σ ∘ ret = σ
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat x: nat
(subst σ ∘ ret) x = σ x
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat x: nat
subst σ (ret x) = σ x
apply subst_ret.Qed.(** ** Substitution and identity *)(********************************************************************)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
foralldepthix : nat,
lift__sub depth ret ix = (ret ∘ extract) (depth, ix)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
foralldepthix : nat,
lift__sub depth ret ix = (ret ∘ extract) (depth, ix)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U depth, ix: nat
lift__sub depth ret ix = (ret ∘ extract) (depth, ix)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U depth, ix: nat
(if ix `bound in` depth
then ret ix
elserename (+depth) (ret (ix - depth))) =
(ret ∘ extract) (depth, ix)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false
ret ((+depth) (ix - depth)) =
ret (extract (depth, ix))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false
ret (depth + (ix - depth)) = ret ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false
depth + (ix - depth) = ix
lia.Qed.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
local__sub ret = ret ∘ extract
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
local__sub ret = ret ∘ extract
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
(funp : nat * nat =>
let (depth, ix) := p in lift__sub depth ret ix) =
ret ∘ extract
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U depth, ix: nat
lift__sub depth ret ix = (ret ∘ extract) (depth, ix)
apply lift__sub_id.Qed.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
subst ret = id
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
subst ret = id
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
bindd (local__sub ret) = id
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
forallnm : nat,
lift__sub m ∘ lift__sub n = lift__sub (m + n)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
forallnm : nat,
lift__sub m ∘ lift__sub n = lift__sub (m + n)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, m: nat
lift__sub m ∘ lift__sub n = lift__sub (m + n)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, m: nat σ: nat -> T nat ix: nat
(lift__sub m ∘ lift__sub n) σ ix =
lift__sub (m + n) σ ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, m: nat σ: nat -> T nat ix: nat
(if ix `bound in` m
then ret ix
elserename (+m)
(if (ix - m) `bound in` n
then ret (ix - m)
elserename (+n) (σ (ix - m - n)))) =
(if ix `bound in` (m + n)
then ret ix
elserename (+m + n) (σ (ix - (m + n))))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, m: nat σ: nat -> T nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false
rename (+m)
(if (ix - m) `bound in` n
then ret (ix - m)
elserename (+n) (σ (ix - m - n))) =
(if ix `bound in` (m + n)
then ret ix
elserename (+m + n) (σ (ix - (m + n))))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, m: nat σ: nat -> T nat ix: nat Hord: ix < m Hbound: ix `bound in` m = true
ret ix =
(if ix `bound in` (m + n)
then ret ix
elserename (+m + n) (σ (ix - (m + n))))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, m: nat σ: nat -> T nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false
rename (+m)
(if (ix - m) `bound in` n
then ret (ix - m)
elserename (+n) (σ (ix - m - n))) =
(if ix `bound in` (m + n)
then ret ix
elserename (+m + n) (σ (ix - (m + n))))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, m: nat σ: nat -> T nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m >= n Hbound0: (ix - m) `bound in` n = false
rename (+m) (rename (+n) (σ (ix - m - n))) =
(if ix `bound in` (m + n)
then ret ix
elserename (+m + n) (σ (ix - (m + n))))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, m: nat σ: nat -> T nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m < n Hbound0: (ix - m) `bound in` n = true
rename (+m) (ret (ix - m)) =
(if ix `bound in` (m + n)
then ret ix
elserename (+m + n) (σ (ix - (m + n))))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, m: nat σ: nat -> T nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m >= n Hbound0: (ix - m) `bound in` n = false
rename (+m) (rename (+n) (σ (ix - m - n))) =
(if ix `bound in` (m + n)
then ret ix
elserename (+m + n) (σ (ix - (m + n))))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, m: nat σ: nat -> T nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m >= n Hbound0: (ix - m) `bound in` n = false Hord1: ix >= m + n Hbound1: ix `bound in` (m + n) = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, m: nat σ: nat -> T nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m >= n Hbound0: (ix - m) `bound in` n = false Hord1: ix >= m + n Hbound1: ix `bound in` (m + n) = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, m: nat σ: nat -> T nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m >= n Hbound0: (ix - m) `bound in` n = false Hord1: ix >= m + n Hbound1: ix `bound in` (m + n) = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, m: nat σ: nat -> T nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m >= n Hbound0: (ix - m) `bound in` n = false Hord1: ix >= m + n Hbound1: ix `bound in` (m + n) = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, m: nat σ: nat -> T nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m >= n Hbound0: (ix - m) `bound in` n = false Hord1: ix >= m + n Hbound1: ix `bound in` (m + n) = false
σ (ix - m - n) = σ (ix - (m + n))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, m: nat σ: nat -> T nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m >= n Hbound0: (ix - m) `bound in` n = false Hord1: ix >= m + n Hbound1: ix `bound in` (m + n) = false
ix - m - n = ix - (m + n)
lia.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, m: nat σ: nat -> T nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m < n Hbound0: (ix - m) `bound in` n = true
rename (+m) (ret (ix - m)) =
(if ix `bound in` (m + n)
then ret ix
elserename (+m + n) (σ (ix - (m + n))))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, m: nat σ: nat -> T nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m < n Hbound0: (ix - m) `bound in` n = true Hord1: ix < m + n Hbound1: ix `bound in` (m + n) = true
rename (+m) (ret (ix - m)) = ret ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, m: nat σ: nat -> T nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m < n Hbound0: (ix - m) `bound in` n = true Hord1: ix < m + n Hbound1: ix `bound in` (m + n) = true
(rename (+m) ∘ ret) (ix - m) = ret ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, m: nat σ: nat -> T nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m < n Hbound0: (ix - m) `bound in` n = true Hord1: ix < m + n Hbound1: ix `bound in` (m + n) = true
(mapd (local__ren (+m)) ∘ ret) (ix - m) = ret ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, m: nat σ: nat -> T nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m < n Hbound0: (ix - m) `bound in` n = true Hord1: ix < m + n Hbound1: ix `bound in` (m + n) = true
(ret ∘ local__ren (+m) ∘ ret) (ix - m) = ret ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, m: nat σ: nat -> T nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m < n Hbound0: (ix - m) `bound in` n = true Hord1: ix < m + n Hbound1: ix `bound in` (m + n) = true
ret (m + (ix - m - Ƶ) + Ƶ) = ret ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, m: nat σ: nat -> T nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m < n Hbound0: (ix - m) `bound in` n = true Hord1: ix < m + n Hbound1: ix `bound in` (m + n) = true
m + (ix - m - Ƶ) + Ƶ = ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, m: nat σ: nat -> T nat ix: nat Hord: ix >= m Hbound: ix `bound in` m = false Hord0: ix - m < n Hbound0: (ix - m) `bound in` n = true Hord1: ix < m + n Hbound1: ix `bound in` (m + n) = true
m + (ix - m - 0) + 0 = ix
lia.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, m: nat σ: nat -> T nat ix: nat Hord: ix < m Hbound: ix `bound in` m = true
ret ix =
(if ix `bound in` (m + n)
then ret ix
elserename (+m + n) (σ (ix - (m + n))))
bound_induction.Qed.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
forall (n : nat) (σ : nat -> T nat),
lift__sub (S n) σ = lift__sub n (lift__sub 1 σ)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
forall (n : nat) (σ : nat -> T nat),
lift__sub (S n) σ = lift__sub n (lift__sub 1 σ)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat σ: nat -> T nat
lift__sub (S n) σ = lift__sub n (lift__sub 1 σ)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat σ: nat -> T nat
lift__sub (n + 1) σ = lift__sub n (lift__sub 1 σ)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat σ: nat -> T nat
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
foralln : nat, lift__sub n = iterate n (lift__sub 1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
foralln : nat, lift__sub n = iterate n (lift__sub 1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat
lift__sub n = iterate n (lift__sub 1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
lift__sub 0 = iterate 0 (lift__sub 1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat IHn: lift__sub n = iterate n (lift__sub 1)
lift__sub (S n) = iterate (S n) (lift__sub 1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
lift__sub 0 = iterate 0 (lift__sub 1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
id = iterate 0 (lift__sub 1)
reflexivity.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat IHn: lift__sub n = iterate n (lift__sub 1)
lift__sub (S n) = iterate (S n) (lift__sub 1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat IHn: lift__sub n = iterate n (lift__sub 1) σ: nat -> T nat
lift__sub (S n) σ = iterate (S n) (lift__sub 1) σ
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat IHn: lift__sub n = iterate n (lift__sub 1) σ: nat -> T nat
lift__sub n (lift__sub 1 σ) =
iterate (S n) (lift__sub 1) σ
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat IHn: lift__sub n = iterate n (lift__sub 1) σ: nat -> T nat
lift__sub n (lift__sub 1 σ) =
iterate n (lift__sub 1) (lift__sub 1 σ)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat IHn: lift__sub n = iterate n (lift__sub 1) σ: nat -> T nat
iterate n (lift__sub 1) (lift__sub 1 σ) =
iterate n (lift__sub 1) (lift__sub 1 σ)
reflexivity.Qed.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n: nat
local__sub σ ⦿ n = local__sub (lift__sub n σ)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n: nat
local__sub σ ⦿ n = local__sub (lift__sub n σ)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n: nat
(funp : nat * nat =>
let (depth, ix) := p in lift__sub depth σ ix) ⦿ n =
(funp : nat * nat =>
let (depth, ix) := p in
lift__sub depth (lift__sub n σ) ix)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n, depth, ix: nat
lift__sub (n ● depth) σ ix =
lift__sub depth (lift__sub n σ) ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n, depth, ix: nat
lift__sub (n ● depth) σ ix =
(lift__sub depth ∘ lift__sub n) σ ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n, depth, ix: nat
lift__sub (n ● depth) σ ix =
lift__sub (depth + n) σ ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n, depth, ix: nat
lift__sub (n + depth) σ ix =
lift__sub (depth + n) σ ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n, depth, ix: nat
n + depth = depth + n
lia.Qed.(** ** Substitution and composition *)(********************************************************************)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat
bindd (local__sub σ2 ⦿ depth)
(if ix `bound in` depth
then ret ix
elserename (+depth) (σ1 (ix - depth))) =
(if ix `bound in` depth
then ret ix
elserename (+depth) ((subst σ2 ∘ σ1) (ix - depth)))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix < depth Hbound: ix `bound in` depth = true
bindd (local__sub σ2 ⦿ depth) (ret ix) = ret ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix < depth Hbound: ix `bound in` depth = true
bindd (local__sub σ2 ⦿ depth) (ret ix) = ret ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix < depth Hbound: ix `bound in` depth = true
(bindd (local__sub σ2 ⦿ depth) ∘ ret) ix = ret ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix < depth Hbound: ix `bound in` depth = true
(local__sub σ2 ⦿ depth ∘ ret) ix = ret ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix < depth Hbound: ix `bound in` depth = true
(local__sub σ2 ⦿ depth) (ret ix) = ret ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix < depth Hbound: ix `bound in` depth = true
(local__sub σ2 ⦿ depth) (Ƶ, ix) = ret ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix < depth Hbound: ix `bound in` depth = true
((funp : nat * nat =>
let (depth, ix) := p in lift__sub depth σ2 ix)
⦿ depth) (Ƶ, ix) = ret ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix < depth Hbound: ix `bound in` depth = true
lift__sub (depth ● Ƶ) σ2 ix = ret ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix < depth Hbound: ix `bound in` depth = true
lift__sub depth σ2 ix = ret ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix < depth Hbound: ix `bound in` depth = true
(if ix `bound in` depth
then ret ix
elserename (+depth) (σ2 (ix - depth))) = ret ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix < depth Hbound: ix `bound in` depth = true
ret ix = ret ix
reflexivity.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' >= depth' Hbound0: ix' `bound in` depth' = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' < depth' Hbound0: ix' `bound in` depth' = true
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' >= depth' Hbound0: ix' `bound in` depth' = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' >= depth' Hbound0: ix' `bound in` depth' = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' >= depth' Hbound0: ix' `bound in` depth' = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' >= depth' Hbound0: ix' `bound in` depth' = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' >= depth' Hbound0: ix' `bound in` depth' = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' >= depth' Hbound0: ix' `bound in` depth' = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' >= depth' Hbound0: ix' `bound in` depth' = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' >= depth' Hbound0: ix' `bound in` depth' = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' >= depth' Hbound0: ix' `bound in` depth' = false Hord1: ix' + depth >= depth' Hbound1: (ix' + depth) `bound in` depth' = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' >= depth' Hbound0: ix' `bound in` depth' = false Hord1: ix' + depth >= depth' Hbound1: (ix' + depth) `bound in` depth' = false Hord2: ix' + depth - depth' >= depth Hbound2: (ix' + depth - depth') `bound in` depth =
false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' >= depth' Hbound0: ix' `bound in` depth' = false Hord1: ix' + depth >= depth' Hbound1: (ix' + depth) `bound in` depth' = false Hord2: ix' + depth - depth' >= depth Hbound2: (ix' + depth - depth') `bound in` depth =
false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' >= depth' Hbound0: ix' `bound in` depth' = false Hord1: ix' + depth >= depth' Hbound1: (ix' + depth) `bound in` depth' = false Hord2: ix' + depth - depth' >= depth Hbound2: (ix' + depth - depth') `bound in` depth =
false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' >= depth' Hbound0: ix' `bound in` depth' = false Hord1: ix' + depth >= depth' Hbound1: (ix' + depth) `bound in` depth' = false Hord2: ix' + depth - depth' >= depth Hbound2: (ix' + depth - depth') `bound in` depth =
false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' >= depth' Hbound0: ix' `bound in` depth' = false Hord1: ix' + depth >= depth' Hbound1: (ix' + depth) `bound in` depth' = false Hord2: ix' + depth - depth' >= depth Hbound2: (ix' + depth - depth') `bound in` depth =
false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' >= depth' Hbound0: ix' `bound in` depth' = false Hord1: ix' + depth >= depth' Hbound1: (ix' + depth) `bound in` depth' = false Hord2: ix' + depth - depth' >= depth Hbound2: (ix' + depth - depth') `bound in` depth =
false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' >= depth' Hbound0: ix' `bound in` depth' = false Hord1: ix' + depth >= depth' Hbound1: (ix' + depth) `bound in` depth' = false Hord2: ix' + depth - depth' >= depth Hbound2: (ix' + depth - depth') `bound in` depth =
false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' >= depth' Hbound0: ix' `bound in` depth' = false Hord1: ix' + depth >= depth' Hbound1: (ix' + depth) `bound in` depth' = false Hord2: ix' + depth - depth' >= depth Hbound2: (ix' + depth - depth') `bound in` depth =
false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' >= depth' Hbound0: ix' `bound in` depth' = false Hord1: ix' + depth >= depth' Hbound1: (ix' + depth) `bound in` depth' = false Hord2: ix' + depth - depth' >= depth Hbound2: (ix' + depth - depth') `bound in` depth =
false m: nat
(+depth') ((+depth) m) =
lift__ren depth' (+depth) ((+depth') m)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' >= depth' Hbound0: ix' `bound in` depth' = false Hord1: ix' + depth >= depth' Hbound1: (ix' + depth) `bound in` depth' = false Hord2: ix' + depth - depth' >= depth Hbound2: (ix' + depth - depth') `bound in` depth =
false m: nat
(+depth') ((+depth) m) =
(if ((+depth') m) `bound in` depth'
then (+depth') m
else (+depth) ((+depth') m - depth') + depth')
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' >= depth' Hbound0: ix' `bound in` depth' = false Hord1: ix' + depth >= depth' Hbound1: (ix' + depth) `bound in` depth' = false Hord2: ix' + depth - depth' >= depth Hbound2: (ix' + depth - depth') `bound in` depth =
false m: nat
depth' + (depth + m) =
(if (depth' + m) `bound in` depth'
then depth' + m
else depth + (depth' + m - depth') + depth')
bound_induction.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' < depth' Hbound0: ix' `bound in` depth' = true
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' < depth' Hbound0: ix' `bound in` depth' = true
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' < depth' Hbound0: ix' `bound in` depth' = true
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' < depth' Hbound0: ix' `bound in` depth' = true
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' < depth' Hbound0: ix' `bound in` depth' = true
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' < depth' Hbound0: ix' `bound in` depth' = true
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' < depth' Hbound0: ix' `bound in` depth' = true
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' < depth' Hbound0: ix' `bound in` depth' = true
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' < depth' Hbound0: ix' `bound in` depth' = true
(if ix' `bound in` (depth' + depth)
then ret ix'
elserename (+depth' + depth)
(σ2 (ix' - (depth' + depth)))) =
ret (lift__ren depth' (+depth) (ix' - 0) + 0)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' < depth' Hbound0: ix' `bound in` depth' = true Hord1: ix' < depth' + depth Hbound1: ix' `bound in` (depth' + depth) = true
ret ix' =
ret (lift__ren depth' (+depth) (ix' - 0) + 0)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' < depth' Hbound0: ix' `bound in` depth' = true Hord1: ix' < depth' + depth Hbound1: ix' `bound in` (depth' + depth) = true
ix' = lift__ren depth' (+depth) (ix' - 0) + 0
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' < depth' Hbound0: ix' `bound in` depth' = true Hord1: ix' < depth' + depth Hbound1: ix' `bound in` (depth' + depth) = true
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false depth', ix': nat Hord0: ix' < depth' Hbound0: ix' `bound in` depth' = true Hord1: ix' < depth' + depth Hbound1: ix' `bound in` (depth' + depth) = true
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat
subst σ2 ∘ subst σ1 = subst (subst σ2 ∘ σ1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ2, σ1: nat -> T nat
reflexivity.Qed.(** ** Substitution and renaming *)(********************************************************************)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
forall (n : nat) ρ,
ret ∘ lift__ren n ρ = lift__sub n (ret ∘ ρ)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
forall (n : nat) ρ,
ret ∘ lift__ren n ρ = lift__sub n (ret ∘ ρ)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat ρ: nat -> nat
ret ∘ lift__ren n ρ = lift__sub n (ret ∘ ρ)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat ρ: nat -> nat m: nat
(ret ∘ lift__ren n ρ) m = lift__sub n (ret ∘ ρ) m
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat ρ: nat -> nat m: nat
ret (lift__ren n ρ m) = lift__sub n (ret ○ ρ) m
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat ρ: nat -> nat m: nat
ret (if m `bound in` n then m else ρ (m - n) + n) =
(if m `bound in` n
then ret m
elserename (+n) (ret (ρ (m - n))))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat ρ: nat -> nat m: nat
ret (if m `bound in` n then m else ρ (m - n) + n) =
(if m `bound in` n
then ret m
elserename (funy : nat => n + y) (ret (ρ (m - n))))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat ρ: nat -> nat m: nat Hord: m >= n Hbound: m `bound in` n = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat ρ: nat -> nat m: nat Hord: m >= n Hbound: m `bound in` n = false
ret (ρ (m - n) + n) = ret (n + ρ (m - n))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat ρ: nat -> nat m: nat Hord: m >= n Hbound: m `bound in` n = false
ρ (m - n) + n = n + ρ (m - n)
lia.Qed.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
forallρ, ret ∘ local__ren ρ = local__sub (ret ∘ ρ)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
forallρ, ret ∘ local__ren ρ = local__sub (ret ∘ ρ)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U ρ: nat -> nat
ret ∘ local__ren ρ = local__sub (ret ∘ ρ)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U ρ: nat -> nat depth, ix: nat
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U ρ: nat -> nat depth, ix: nat
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U ρ: nat -> nat depth, ix: nat
ret (lift__ren depth ρ ix) =
lift__sub depth (ret ○ ρ) ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U ρ: nat -> nat depth, ix: nat
(ret ∘ lift__ren depth ρ) ix =
lift__sub depth (ret ○ ρ) ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U ρ: nat -> nat depth, ix: nat
lift__sub depth (ret ∘ ρ) ix =
lift__sub depth (ret ○ ρ) ix
reflexivity.Qed.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
forallρ, rename ρ = subst (ret ∘ ρ)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
forallρ, rename ρ = subst (ret ∘ ρ)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U ρ: nat -> nat
rename ρ = subst (ret ∘ ρ)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U ρ: nat -> nat
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U ρ: nat -> nat
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U ρ: nat -> nat
ret ∘ local__ren ρ = local__sub (ret ∘ ρ)
(* Fails with a universe error for some reason now rewrite (rename_to_subst_loc ρ). *)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U ρ: nat -> nat
ret ∘ local__ren ρ = local__sub (ret ∘ ρ)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U ρ: nat -> nat depth, ix: nat
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U ρ: nat -> nat depth, ix: nat
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U ρ: nat -> nat depth, ix: nat
ret (lift__ren depth ρ ix) =
lift__sub depth (ret ○ ρ) ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U ρ: nat -> nat depth, ix: nat
ret
(if ix `bound in` depth
then ix
else ρ (ix - depth) + depth) =
(if ix `bound in` depth
then ret ix
elserename (+depth) (ret (ρ (ix - depth))))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U ρ: nat -> nat depth, ix: nat
ret
(if ix `bound in` depth
then ix
else ρ (ix - depth) + depth) =
(if ix `bound in` depth
then ret ix
elserename (funy : nat => depth + y)
(ret (ρ (ix - depth))))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U ρ: nat -> nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U ρ: nat -> nat depth, ix: nat Hord: ix >= depth Hbound: ix `bound in` depth = false
ret (ρ (ix - depth) + depth) =
ret (depth + ρ (ix - depth))
fequal; lia.Qed.(** ** up__sub and lift__spec *)(********************************************************************)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat
up__sub σ = (ret 0) ⋅ (subst (ret ∘ (+1)) ∘ σ)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat
up__sub σ = (ret 0) ⋅ (subst (ret ∘ (+1)) ∘ σ)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
lift__sub 1 = up__sub
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
lift__sub 1 = up__sub
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat ix: nat
lift__sub 1 σ ix = up__sub σ ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat ix: nat
(if ix `bound in` 1then ret ix
elserename (+1) (σ (ix - 1))) =
((ret 0) ⋅ (rename (+1) ∘ σ)) ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat ix: nat Hord: ix >= 1 Hbound: ix `bound in` 1 = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat ix: nat Hord: ix < 1 Hbound: ix `bound in` 1 = true
ret ix = ((ret 0) ⋅ (rename (+1) ∘ σ)) ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat ix: nat Hord: ix >= 1 Hbound: ix `bound in` 1 = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat Hord: 0 >= 1 Hbound: 0 `bound in` 1 = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat ix: nat Hord: S ix >= 1 Hbound: (S ix) `bound in` 1 = false
rename (+1) (σ (S ix - 1)) =
((ret 0) ⋅ (rename (+1) ∘ σ)) (S ix)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat Hord: 0 >= 1 Hbound: 0 `bound in` 1 = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat ix: nat Hord: S ix >= 1 Hbound: (S ix) `bound in` 1 = false
rename (+1) (σ (S ix - 1)) =
((ret 0) ⋅ (rename (+1) ∘ σ)) (S ix)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat ix: nat Hord: S ix >= 1 Hbound: (S ix) `bound in` 1 = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat ix: nat Hord: ix < 1 Hbound: ix `bound in` 1 = true
ret ix = ((ret 0) ⋅ (rename (+1) ∘ σ)) ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat ix: nat Hord: ix < 1 Hbound: ix = 0
ret ix = ((ret 0) ⋅ (rename (+1) ∘ σ)) ix
nowsubst.Qed.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
forall (depthix : nat) (σ : nat -> T nat),
local__sub σ (depth, ix) = iterate depth up__sub σ ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
forall (depthix : nat) (σ : nat -> T nat),
local__sub σ (depth, ix) = iterate depth up__sub σ ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U depth, ix: nat σ: nat -> T nat
local__sub σ (depth, ix) = iterate depth up__sub σ ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U depth, ix: nat σ: nat -> T nat
lift__sub depth σ ix = iterate depth up__sub σ ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U depth, ix: nat σ: nat -> T nat
iterate depth (lift__sub 1) σ ix =
iterate depth up__sub σ ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U depth, ix: nat σ: nat -> T nat
lift__sub 1 = up__sub
apply up_spec.Qed.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat
local__sub σ ⦿ 1 = local__sub (up__sub σ)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat
local__sub σ ⦿ 1 = local__sub (up__sub σ)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat
local__sub (up__sub σ) = local__sub (up__sub σ)
reflexivity.Qed.Definitionbind_with_policy `{Bindd nat T U}
(policy: (nat -> T nat) -> (nat -> T nat)) (σ: nat -> T nat): U nat -> U nat :=
bindd (fun '(depth, ix) => iterate depth policy σ ix).
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat
subst σ = bind_with_policy up__sub σ
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat
subst σ = bind_with_policy up__sub σ
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat depth, ix: nat
local__sub σ (depth, ix) = iterate depth up__sub σ ix
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat depth, ix: nat
iterate depth up__sub σ ix =
iterate depth up__sub σ ix
reflexivity.Qed.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n: nat
iterate (S n) up__sub σ =
(ret 0) ⋅ (subst (ret ∘ (+1)) ∘ iterate n up__sub σ)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n: nat
iterate (S n) up__sub σ =
(ret 0) ⋅ (subst (ret ∘ (+1)) ∘ iterate n up__sub σ)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n: nat
up__sub (iterate n up__sub σ) =
(ret 0) ⋅ (subst (ret ∘ (+1)) ∘ iterate n up__sub σ)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n: nat
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n1, ix1: nat H: ix1 `bound in` n1 = true
(0, ix1) ∈d local__sub σ (n1, ix1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n1, ix1: nat H: ix1 `bound in` n1 = true
(0, ix1)
∈d (if ix1 `bound in` n1
then ret ix1
elserename (+n1) (σ (ix1 - n1)))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n1, ix1: nat H: true = true Hord: ix1 < n1 Hbound: ix1 `bound in` n1 = true
(0, ix1) ∈d ret ix1
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n1, ix1: nat H: true = true Hord: ix1 < n1 Hbound: ix1 `bound in` n1 = true
0 = Ƶ /\ ix1 = ix1
auto.Qed.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n2, ix2, n1, ix1: nat H: (n2, ix2) ∈d local__sub σ (n1, ix1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n2, ix2, n1, ix1: nat H: (n2, ix2)
∈d (if ix1 `bound in` n1
then ret ix1
elserename (+n1) (σ (ix1 - n1)))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n2, ix2, n1, ix1: nat H: (n2, ix2) ∈d rename (+n1) (σ (ix1 - n1)) Hord: ix1 >= n1 Hbound: ix1 `bound in` n1 = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n2, ix2, n1, ix1: nat H: (n2, ix2) ∈d ret ix1 Hord: ix1 < n1 Hbound: ix1 `bound in` n1 = true
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n2, ix2, n1, ix1: nat H: (n2, ix2) ∈d rename (+n1) (σ (ix1 - n1)) Hord: ix1 >= n1 Hbound: ix1 `bound in` n1 = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n2, ix2, n1, ix1: nat H: existsl1 : nat,
(n2, l1) ∈d σ (ix1 - n1) /\
ix2 =
(if l1 `bound in` n2
then l1
else n2 + (+n1) (l1 - n2)) Hord: ix1 >= n1 Hbound: ix1 `bound in` n1 = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n2, ix2, n1, ix1: nat H: (n2, ix2) ∈d ret ix1 Hord: ix1 < n1 Hbound: ix1 `bound in` n1 = true
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n2, ix2, n1, ix1: nat H: (n2, ix2) ∈d ret ix1 Hord: ix1 < n1 Hbound: ix1 `bound in` n1 = true
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n2, ix2, n1, ix1: nat H: (n2, ix2) ∈d ret ix1 Hord: ix1 < n1 Hbound: ix1 `bound in` n1 = true
ix1 < n1 /\ n2 = 0 /\ ix2 = ix1
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n2, ix2, n1, ix1: nat H: n2 = Ƶ /\ ix2 = ix1 Hord: ix1 < n1 Hbound: ix1 `bound in` n1 = true
ix1 < n1 /\ n2 = 0 /\ ix2 = ix1
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat n1, ix1: nat H: Ƶ = Ƶ /\ ix1 = ix1 Hord: ix1 < n1 Hbound: ix1 `bound in` n1 = true
ix1 < n1 /\ Ƶ = 0 /\ ix1 = ix1
intuition.}Qed.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
forall (ln : nat) (t : U nat) (σ : nat -> T nat),
(n, l) ∈d subst σ t <->
(existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, l) ∈d local__sub σ (n1, l1) /\ n = n1 + n2)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
forall (ln : nat) (t : U nat) (σ : nat -> T nat),
(n, l) ∈d subst σ t <->
(existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, l) ∈d local__sub σ (n1, l1) /\ n = n1 + n2)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat
(n, l) ∈d subst σ t <->
(existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, l) ∈d local__sub σ (n1, l1) /\ n = n1 + n2)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat
(n, l) ∈d bindd (local__sub σ) t <->
(existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, l) ∈d local__sub σ (n1, l1) /\ n = n1 + n2)
nowrewrite ind_bindd_iff'.Qed.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
forall (ln : nat) (t : U nat) (σ : nat -> T nat),
(n, l) ∈d subst σ t <->
(n, l) ∈d t /\ l `bound in` n = true \/
(existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, l) ∈d local__sub σ (n1, l1) /\ n = n1 + n2)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
forall (ln : nat) (t : U nat) (σ : nat -> T nat),
(n, l) ∈d subst σ t <->
(n, l) ∈d t /\ l `bound in` n = true \/
(existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, l) ∈d local__sub σ (n1, l1) /\ n = n1 + n2)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat
(n, l) ∈d subst σ t <->
(n, l) ∈d t /\ l `bound in` n = true \/
(existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, l) ∈d local__sub σ (n1, l1) /\ n = n1 + n2)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat
(n, l) ∈d bindd (local__sub σ) t <->
(n, l) ∈d t /\ l `bound in` n = true \/
(existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, l) ∈d local__sub σ (n1, l1) /\ n = n1 + n2)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat
(existsw1w2a : nat,
(w1, a) ∈d t /\
(w2, l) ∈d local__sub σ (w1, a) /\ n = w1 ● w2) <->
(n, l) ∈d t /\ l `bound in` n = true \/
(existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, l) ∈d local__sub σ (n1, l1) /\ n = n1 + n2)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat
(existsw1w2a : nat,
(w1, a) ∈d t /\
(w2, l) ∈d local__sub σ (w1, a) /\ n = w1 ● w2) ->
(n, l) ∈d t /\ l `bound in` n = true \/
(existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, l) ∈d local__sub σ (n1, l1) /\ n = n1 + n2)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat
(n, l) ∈d t /\ l `bound in` n = true \/
(existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, l) ∈d local__sub σ (n1, l1) /\ n = n1 + n2) ->
existsw1w2a : nat,
(w1, a) ∈d t /\
(w2, l) ∈d local__sub σ (w1, a) /\ n = w1 ● w2
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat
(existsw1w2a : nat,
(w1, a) ∈d t /\
(w2, l) ∈d local__sub σ (w1, a) /\ n = w1 ● w2) ->
(n, l) ∈d t /\ l `bound in` n = true \/
(existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, l) ∈d local__sub σ (n1, l1) /\ n = n1 + n2)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat H: existsw1w2a : nat,
(w1, a) ∈d t /\
(w2, l) ∈d local__sub σ (w1, a) /\ n = w1 ● w2
(n, l) ∈d t /\ l `bound in` n = true \/
(existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, l) ∈d local__sub σ (n1, l1) /\ n = n1 + n2)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat n1, n2, a: nat H1: (n1, a) ∈d t H2: (n2, l) ∈d local__sub σ (n1, a) H3: n = n1 ● n2
(n, l) ∈d t /\ l `bound in` n = true \/
(existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, l) ∈d local__sub σ (n1, l1) /\ n = n1 + n2)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat n1, n2, a: nat H1: (n1, a) ∈d t H2: (n2, l) ∈d local__sub σ (n1, a) H3: n = n1 ● n2 H2copy: (n2, l) ∈d local__sub σ (n1, a)
(n, l) ∈d t /\ l `bound in` n = true \/
(existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, l) ∈d local__sub σ (n1, l1) /\ n = n1 + n2)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat n1, n2, a: nat H1: (n1, a) ∈d t H2: (n2, l)
∈d (if a `bound in` n1
then ret a
elserename (+n1) (σ (a - n1))) H3: n = n1 ● n2 H2copy: (n2, l) ∈d local__sub σ (n1, a)
(n, l) ∈d t /\ l `bound in` n = true \/
(existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, l) ∈d local__sub σ (n1, l1) /\ n = n1 + n2)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat n1, n2, a: nat H1: (n1, a) ∈d t H2: (n2, l) ∈d rename (+n1) (σ (a - n1)) H3: n = n1 ● n2 H2copy: (n2, l) ∈d local__sub σ (n1, a) Hord: a >= n1 Hbound: a `bound in` n1 = false
(n, l) ∈d t /\ l `bound in` n = true \/
(existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, l) ∈d local__sub σ (n1, l1) /\ n = n1 + n2)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat n1, n2, a: nat H1: (n1, a) ∈d t H2: (n2, l) ∈d ret a H3: n = n1 ● n2 H2copy: (n2, l) ∈d local__sub σ (n1, a) Hord: a < n1 Hbound: a `bound in` n1 = true
(n, l) ∈d t /\ l `bound in` n = true \/
(existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, l) ∈d local__sub σ (n1, l1) /\ n = n1 + n2)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat n1, n2, a: nat H1: (n1, a) ∈d t H2: (n2, l) ∈d rename (+n1) (σ (a - n1)) H3: n = n1 ● n2 H2copy: (n2, l) ∈d local__sub σ (n1, a) Hord: a >= n1 Hbound: a `bound in` n1 = false
(n, l) ∈d t /\ l `bound in` n = true \/
(existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, l) ∈d local__sub σ (n1, l1) /\ n = n1 + n2)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat n1, n2, a: nat H1: (n1, a) ∈d t H2: (n2, l) ∈d rename (+n1) (σ (a - n1)) H3: n = n1 ● n2 H2copy: (n2, l) ∈d local__sub σ (n1, a) Hord: a >= n1 Hbound: a `bound in` n1 = false
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat n1, n2, a: nat H1: (n1, a) ∈d t H2: (n2, l) ∈d rename (+n1) (σ (a - n1)) H3: n = n1 ● n2 H2copy: (n2, l) ∈d local__sub σ (n1, a) Hord: a >= n1 Hbound: a `bound in` n1 = false
(n1, a) ∈d t /\
(n2, l) ∈d local__sub σ (n1, a) /\ n = n1 + n2
auto.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat n1, n2, a: nat H1: (n1, a) ∈d t H2: (n2, l) ∈d ret a H3: n = n1 ● n2 H2copy: (n2, l) ∈d local__sub σ (n1, a) Hord: a < n1 Hbound: a `bound in` n1 = true
(n, l) ∈d t /\ l `bound in` n = true \/
(existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, l) ∈d local__sub σ (n1, l1) /\ n = n1 + n2)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat n1, n2, a: nat H1: (n1, a) ∈d t H2: n2 = Ƶ /\ l = a H3: n = n1 ● n2 H2copy: (n2, l) ∈d local__sub σ (n1, a) Hord: a < n1 Hbound: a `bound in` n1 = true
(n, l) ∈d t /\ l `bound in` n = true \/
(existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, l) ∈d local__sub σ (n1, l1) /\ n = n1 + n2)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U t: U nat σ: nat -> T nat n1, a: nat H1: (n1, a) ∈d t H2: Ƶ = Ƶ /\ a = a H2copy: (Ƶ, a) ∈d local__sub σ (n1, a) Hord: a < n1 Hbound: a `bound in` n1 = true
(n1 ● Ƶ, a) ∈d t /\ a `bound in` (n1 ● Ƶ) = true \/
(existsn2n3l1 : nat,
(n2, l1) ∈d t /\
(n3, a) ∈d local__sub σ (n2, l1) /\
n1 ● Ƶ = n2 + n3)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U t: U nat σ: nat -> T nat n1, a: nat H1: (n1, a) ∈d t H2: Ƶ = Ƶ /\ a = a H2copy: (Ƶ, a) ∈d local__sub σ (n1, a) Hord: a < n1 Hbound: a `bound in` n1 = true
(n1, a) ∈d t /\ a `bound in` n1 = true \/
(existsn2n3l1 : nat,
(n2, l1) ∈d t /\
(n3, a) ∈d local__sub σ (n2, l1) /\ n1 = n2 + n3)
nowleft.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat
(n, l) ∈d t /\ l `bound in` n = true \/
(existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, l) ∈d local__sub σ (n1, l1) /\ n = n1 + n2) ->
existsw1w2a : nat,
(w1, a) ∈d t /\
(w2, l) ∈d local__sub σ (w1, a) /\ n = w1 ● w2
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat H: (n, l) ∈d t /\ l `bound in` n = true \/
(existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, l) ∈d local__sub σ (n1, l1) /\ n = n1 + n2)
existsw1w2a : nat,
(w1, a) ∈d t /\
(w2, l) ∈d local__sub σ (w1, a) /\ n = w1 ● w2
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat H: (n, l) ∈d t /\ l `bound in` n = true
existsw1w2a : nat,
(w1, a) ∈d t /\
(w2, l) ∈d local__sub σ (w1, a) /\ n = w1 ● w2
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat H: existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, l) ∈d local__sub σ (n1, l1) /\ n = n1 + n2
existsw1w2a : nat,
(w1, a) ∈d t /\
(w2, l) ∈d local__sub σ (w1, a) /\ n = w1 ● w2
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat H: (n, l) ∈d t /\ l `bound in` n = true
existsw1w2a : nat,
(w1, a) ∈d t /\
(w2, l) ∈d local__sub σ (w1, a) /\ n = w1 ● w2
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat H: (n, l) ∈d t /\ l `bound in` n = true
(n, l) ∈d t /\
(0, l) ∈d local__sub σ (n, l) /\ n = n ● 0
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat H: (n, l) ∈d t /\ l `bound in` n = true
(n, l) ∈d t
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat H: (n, l) ∈d t /\ l `bound in` n = true
(0, l) ∈d local__sub σ (n, l)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat H: (n, l) ∈d t /\ l `bound in` n = true
n = n ● 0
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat H: (n, l) ∈d t /\ l `bound in` n = true
(n, l) ∈d t
tauto.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat H: (n, l) ∈d t /\ l `bound in` n = true
(0, l) ∈d local__sub σ (n, l)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat H: (n, l) ∈d t /\ l `bound in` n = true
n = n ● 0
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat H: (n, l) ∈d t /\ l `bound in` n = true
(0, l) ∈d local__sub σ (n, l)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat H: (n, l) ∈d t /\ l `bound in` n = true
(0, l)
∈d (if l `bound in` n
then ret l
elserename (+n) (σ (l - n)))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat H: (n, l) ∈d t /\ true = true Hord: l < n Hbound: l `bound in` n = true
(0, l) ∈d ret l
nowrewrite ind_ret_iff.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat H: (n, l) ∈d t /\ l `bound in` n = true
n = n ● 0
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat H: (n, l) ∈d t /\ l `bound in` n = true
n = n ● 0
easy.}
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U l, n: nat t: U nat σ: nat -> T nat H: existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, l) ∈d local__sub σ (n1, l1) /\ n = n1 + n2
existsw1w2a : nat,
(w1, a) ∈d t /\
(w2, l) ∈d local__sub σ (w1, a) /\ n = w1 ● w2
assumption.Qed.Endtheory.(** * Notations *)(**********************************************************************)ModuleNotations.Notation"↑" := S.Notation"'⇑'" := up__sub.Notation"'⇑__ren'" := up__ren.Notation"f ';' g" := (kc1 g f) (at level30).Infix"⋅" := (scons) (at level10).Notation"( + x )" := (lift x) (format"( + x )").EndNotations.Import Notations.(** * Other lemmas *)(**********************************************************************)Sectiontheory.Context
`{ret_inst: Return T}
`{Map_T_inst: Map T}
`{Mapd_T_inst: Mapd nat T}
`{Traverse_T_inst: Traverse T}
`{Bind_T_inst: Bind T T}
`{Mapdt_T_inst: Mapdt nat T}
`{Bindd_T_inst: Bindd nat T T}
`{Bindt_T_inst: Bindt T T}
`{Binddt_T_inst: Binddt nat T T}
`{! Compat_Map_Binddt nat T T}
`{! Compat_Mapd_Binddt nat T T}
`{! Compat_Traverse_Binddt nat T T}
`{! Compat_Bind_Binddt nat T T}
`{! Compat_Mapdt_Binddt nat T T}
`{! Compat_Bindd_Binddt nat T T}
`{! Compat_Bindt_Binddt nat T T}
`{Monad_inst: ! DecoratedTraversableMonad nat T}.Context
`{Map_U_inst: Map U}
`{Mapd_U_inst: Mapd nat U}
`{Traverse_U_inst: Traverse U}
`{Bind_U_inst: Bind T U}
`{Mapdt_U_inst: Mapdt nat U}
`{Bindd_U_inst: Bindd nat T U}
`{Bindt_U_inst: Bindt T U}
`{Binddt_U_inst: Binddt nat T U}
`{! Compat_Map_Binddt nat T U}
`{! Compat_Mapd_Binddt nat T U}
`{! Compat_Traverse_Binddt nat T U}
`{! Compat_Bind_Binddt nat T U}
`{! Compat_Mapdt_Binddt nat T U}
`{! Compat_Bindd_Binddt nat T U}
`{! Compat_Bindt_Binddt nat T U}
`{Module_inst: ! DecoratedTraversableRightPreModule nat T U
(unit := Monoid_unit_zero)
(op := Monoid_op_plus)}.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U gap: nat
decidable_pred (funp : nat * nat => cl_at_loc gap p)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U gap: nat
decidable_pred (funp : nat * nat => cl_at_loc gap p)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U gap: nat
foralla : nat * nat,
Decidable.decidable (cl_at_loc gap a)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U gap, p, n: nat
Decidable.decidable (cl_at_loc gap (p, n))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U gap, p, n: nat
Decidable.decidable (bound_within gap n p)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U gap, p, n: nat
Decidable.decidable (n < p + gap)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U gap, p, n: nat
n < p + gap \/ ~ n < p + gap
lia.Qed.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U gap: nat t: U nat
cl_at gap t =
(foralldn : nat, (d, n) ∈d t -> cl_at_loc gap (d, n))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U gap: nat t: U nat
cl_at gap t =
(foralldn : nat, (d, n) ∈d t -> cl_at_loc gap (d, n))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U gap: nat t: U nat
Forall_ctx (cl_at_loc gap) t =
(foralldn : nat, (d, n) ∈d t -> cl_at_loc gap (d, n))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U gap: nat t: U nat
Forall_ctx (cl_at_loc gap) t <->
(foralldn : nat, (d, n) ∈d t -> cl_at_loc gap (d, n))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U gap: nat t: U nat
(forallea : nat, (e, a) ∈d t -> cl_at_loc gap (e, a)) <->
(foralldn : nat, (d, n) ∈d t -> cl_at_loc gap (d, n))
reflexivity.Qed.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U gap: nat t: U nat
cl_at gap t \/ ~ cl_at gap t
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U gap: nat t: U nat
cl_at gap t \/ ~ cl_at gap t
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U gap: nat t: U nat
decidable_pred (cl_at_loc gap)
apply cl_at_loc_dec.Qed.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U gap: nat t: U nat
(~ cl_at gap t) =
(existsdn : nat,
(d, n) ∈d t /\ ~ cl_at_loc gap (d, n))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U gap: nat t: U nat
(~ cl_at gap t) =
(existsdn : nat,
(d, n) ∈d t /\ ~ cl_at_loc gap (d, n))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U gap: nat t: U nat
(~ Forall_ctx (cl_at_loc gap) t) =
(existsdn : nat,
(d, n) ∈d t /\ ~ cl_at_loc gap (d, n))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U gap: nat t: U nat
~ Forall_ctx (cl_at_loc gap) t <->
(existsdn : nat,
(d, n) ∈d t /\ ~ cl_at_loc gap (d, n))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U gap: nat t: U nat
(existsea : nat,
(e, a) ∈d t /\ ~ cl_at_loc gap (e, a)) <->
(existsdn : nat,
(d, n) ∈d t /\ ~ cl_at_loc gap (d, n))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U gap: nat t: U nat
decidable_pred (cl_at_loc gap)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U gap: nat t: U nat
decidable_pred (cl_at_loc gap)
apply cl_at_loc_dec.Qed.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat k, d1, i1: nat Hpremise: foralln : nat, cl_at k (σ n)
cl_at (k + d1) (lift__sub d1 σ i1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat k, d1, i1: nat Hpremise: foralln : nat,
Forall_ctx
(funp : nat * nat =>
let (depth, ix) := p in
bound_within k ix depth)
(σ n)
Forall_ctx
(funp : nat * nat =>
let (depth, ix) := p in
bound_within (k + d1) ix depth) (lift__sub d1 σ i1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat k, d1, i1: nat Hpremise: foralln : nat,
Forall_ctx
(funp : nat * nat =>
let (depth, ix) := p in
bound_within k ix depth)
(σ n)
forallea : nat,
(e, a) ∈d lift__sub d1 σ i1 ->
bound_within (k + d1) a e
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat k, d1, i1: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> bound_within k a e
forallea : nat,
(e, a) ∈d lift__sub d1 σ i1 ->
bound_within (k + d1) a e
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat k, d1, i1: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k
forallea : nat,
(e, a) ∈d lift__sub d1 σ i1 -> a < e + (k + d1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat k, d1, i1: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k
forallea : nat,
(e, a)
∈d (if i1 `bound in` d1
then ret i1
elserename (+d1) (σ (i1 - d1))) ->
a < e + (k + d1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat k, d1, i1: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k Hord: i1 >= d1 Hbound: i1 `bound in` d1 = false
forallea : nat,
(e, a) ∈d rename (+d1) (σ (i1 - d1)) ->
a < e + (k + d1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat k, d1, i1: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k Hord: i1 < d1 Hbound: i1 `bound in` d1 = true
forallea : nat, (e, a) ∈d ret i1 -> a < e + (k + d1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat k, d1, i1: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k Hord: i1 >= d1 Hbound: i1 `bound in` d1 = false
forallea : nat,
(e, a) ∈d rename (+d1) (σ (i1 - d1)) ->
a < e + (k + d1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat k, d1, i1: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k Hord: i1 >= d1 Hbound: i1 `bound in` d1 = false e, a: nat
(e, a) ∈d rename (+d1) (σ (i1 - d1)) ->
a < e + (k + d1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat k, d1, i1: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k Hord: i1 >= d1 Hbound: i1 `bound in` d1 = false e, a: nat
(existsl1 : nat,
(e, l1) ∈d σ (i1 - d1) /\
a =
(if l1 `bound in` e then l1 else e + (+d1) (l1 - e))) ->
a < e + (k + d1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat k, d1, i1: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k Hord: i1 >= d1 Hbound: i1 `bound in` d1 = false e, a, l1: nat Hin: (e, l1) ∈d σ (i1 - d1) Heq: a =
(if l1 `bound in` e
then l1
else e + (+d1) (l1 - e))
a < e + (k + d1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat k, d1, i1: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k Hord: i1 >= d1 Hbound: i1 `bound in` d1 = false e, l1: nat Hin: (e, l1) ∈d σ (i1 - d1)
(if l1 `bound in` e then l1 else e + (+d1) (l1 - e)) <
e + (k + d1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat k, d1, i1: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k Hord: i1 >= d1 Hbound: i1 `bound in` d1 = false e, l1: nat Hin: (e, l1) ∈d σ (i1 - d1) Hord0: l1 >= e Hbound0: l1 `bound in` e = false
e + (+d1) (l1 - e) < e + (k + d1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat k, d1, i1: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k Hord: i1 >= d1 Hbound: i1 `bound in` d1 = false e, l1: nat Hin: (e, l1) ∈d σ (i1 - d1) Hord0: l1 >= e Hbound0: l1 `bound in` e = false
e + (d1 + (l1 - e)) < e + (k + d1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat k, d1, i1, e, l1: nat Hpremise: l1 < e + k Hord: i1 >= d1 Hbound: i1 `bound in` d1 = false Hin: (e, l1) ∈d σ (i1 - d1) Hord0: l1 >= e Hbound0: l1 `bound in` e = false
e + (d1 + (l1 - e)) < e + (k + d1)
lia.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat k, d1, i1: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k Hord: i1 < d1 Hbound: i1 `bound in` d1 = true
forallea : nat, (e, a) ∈d ret i1 -> a < e + (k + d1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat k, d1, i1: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k Hord: i1 < d1 Hbound: i1 `bound in` d1 = true
forallea : nat, e = Ƶ /\ a = i1 -> a < e + (k + d1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat k, d1, i1: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k Hord: i1 < d1 Hbound: i1 `bound in` d1 = true
forallea : nat, e = 0 /\ a = i1 -> a < e + (k + d1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat k, d1, i1: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k Hord: i1 < d1 Hbound: i1 `bound in` d1 = true e, a: nat HeZ: e = 0 Hai1: a = i1
a < e + (k + d1)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U σ: nat -> T nat k, d1, i1: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k Hord: i1 < d1 Hbound: i1 `bound in` d1 = true
i1 < 0 + (k + d1)
lia.Qed.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
forall (t : T nat) (σ : nat -> T nat) (k : nat),
(foralln : nat, cl_at k (σ n)) -> cl_at k (subst σ t)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
forall (t : T nat) (σ : nat -> T nat) (k : nat),
(foralln : nat, cl_at k (σ n)) -> cl_at k (subst σ t)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U t: T nat σ: nat -> T nat k: nat Hpremise: foralln : nat, cl_at k (σ n)
cl_at k (subst σ t)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U t: T nat σ: nat -> T nat k: nat Hpremise: foralln : nat,
Forall_ctx (cl_at_loc k) (σ n)
Forall_ctx (cl_at_loc k) (subst σ t)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U t: T nat σ: nat -> T nat k: nat Hpremise: foralln : nat,
Forall_ctx
(funp : nat * nat =>
let (depth, ix) := p in
bound_within k ix depth)
(σ n)
Forall_ctx
(funp : nat * nat =>
let (depth, ix) := p in bound_within k ix depth)
(subst σ t)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U t: T nat σ: nat -> T nat k: nat Hpremise: foralln : nat,
Forall_ctx
(funp : nat * nat =>
let (depth, ix) := p in ix < depth + k)
(σ n)
Forall_ctx
(funp : nat * nat =>
let (depth, ix) := p in ix < depth + k) (subst σ t)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U t: T nat σ: nat -> T nat k: nat Hpremise: foralln : nat,
Forall_ctx
(funp : nat * nat =>
let (depth, ix) := p in ix < depth + k)
(σ n)
forallea : nat, (e, a) ∈d subst σ t -> a < e + k
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U t: T nat σ: nat -> T nat k: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k
forallea : nat, (e, a) ∈d subst σ t -> a < e + k
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U t: T nat σ: nat -> T nat k: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k
forallea : nat,
(existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, a) ∈d local__sub σ (n1, l1) /\ e = n1 + n2) ->
a < e + k
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U t: T nat σ: nat -> T nat k: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k e, a: nat Hin: existsn1n2l1 : nat,
(n1, l1) ∈d t /\
(n2, a) ∈d local__sub σ (n1, l1) /\
e = n1 + n2
a < e + k
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U t: T nat σ: nat -> T nat k: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k e, a, d1, d2, i1: nat H1: (d1, i1) ∈d t H2: (d2, a) ∈d local__sub σ (d1, i1) H3: e = d1 + d2
a < e + k
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U t: T nat σ: nat -> T nat k: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k a, d1, d2, i1: nat H1: (d1, i1) ∈d t H2: (d2, a) ∈d local__sub σ (d1, i1)
a < d1 + d2 + k
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U t: T nat σ: nat -> T nat k: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k a, d1, d2, i1: nat H1: (d1, i1) ∈d t H2: (d2, a)
∈d (if i1 `bound in` d1
then ret i1
elserename (+d1) (σ (i1 - d1)))
a < d1 + d2 + k
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U t: T nat σ: nat -> T nat k: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k a, d1, d2, i1: nat H1: (d1, i1) ∈d t H2: (d2, a) ∈d rename (+d1) (σ (i1 - d1)) Hord: i1 >= d1 Hbound: i1 `bound in` d1 = false
a < d1 + d2 + k
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U t: T nat σ: nat -> T nat k: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k a, d1, d2, i1: nat H1: (d1, i1) ∈d t H2: (d2, a) ∈d ret i1 Hord: i1 < d1 Hbound: i1 `bound in` d1 = true
a < d1 + d2 + k
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U t: T nat σ: nat -> T nat k: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k a, d1, d2, i1: nat H1: (d1, i1) ∈d t H2: (d2, a) ∈d rename (+d1) (σ (i1 - d1)) Hord: i1 >= d1 Hbound: i1 `bound in` d1 = false
a < d1 + d2 + k
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U t: T nat σ: nat -> T nat k: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k a, d1, d2, i1: nat H1: (d1, i1) ∈d t H2: existsl1 : nat,
(d2, l1) ∈d σ (i1 - d1) /\
a =
(if l1 `bound in` d2
then l1
else d2 + (+d1) (l1 - d2)) Hord: i1 >= d1 Hbound: i1 `bound in` d1 = false
a < d1 + d2 + k
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U t: T nat σ: nat -> T nat k: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k d1, d2, i1: nat H1: (d1, i1) ∈d t x: nat H: (d2, x) ∈d σ (i1 - d1) Hord: i1 >= d1 Hbound: i1 `bound in` d1 = false
(if x `bound in` d2 then x else d2 + (+d1) (x - d2)) <
d1 + d2 + k
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U t: T nat σ: nat -> T nat k: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k d1, d2, i1: nat H1: (d1, i1) ∈d t x: nat H: (d2, x) ∈d σ (i1 - d1) Hord: i1 >= d1 Hbound: i1 `bound in` d1 = false
(if x `bound in` d2 then x else d2 + (d1 + (x - d2))) <
d1 + d2 + k
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U t: T nat σ: nat -> T nat k, d2, x: nat Hpremise: x < d2 + k d1, i1: nat H1: (d1, i1) ∈d t H: (d2, x) ∈d σ (i1 - d1) Hord: i1 >= d1 Hbound: i1 `bound in` d1 = false
(if x `bound in` d2 then x else d2 + (d1 + (x - d2))) <
d1 + d2 + k
bound_induction.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U t: T nat σ: nat -> T nat k: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k a, d1, d2, i1: nat H1: (d1, i1) ∈d t H2: (d2, a) ∈d ret i1 Hord: i1 < d1 Hbound: i1 `bound in` d1 = true
a < d1 + d2 + k
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U t: T nat σ: nat -> T nat k: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k a, d1, d2, i1: nat H1: (d1, i1) ∈d t H2: d2 = Ƶ /\ a = i1 Hord: i1 < d1 Hbound: i1 `bound in` d1 = true
a < d1 + d2 + k
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U t: T nat σ: nat -> T nat k: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k a, d1, d2, i1: nat H1: (d1, i1) ∈d t H2: d2 = Ƶ /\ a = i1 Hord: i1 < d1 Hbound: i1 `bound in` d1 = true H: d2 = Ƶ H0: a = i1
a < d1 + d2 + k
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U t: T nat σ: nat -> T nat k: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k d1, i1: nat H1: (d1, i1) ∈d t H2: Ƶ = Ƶ /\ i1 = i1 Hord: i1 < d1 Hbound: i1 `bound in` d1 = true
i1 < d1 + Ƶ + k
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U t: T nat σ: nat -> T nat k: nat Hpremise: forallnea : nat,
(e, a) ∈d σ n -> a < e + k d1, i1: nat H1: (d1, i1) ∈d t H2: Ƶ = Ƶ /\ i1 = i1 Hord: i1 < d1 Hbound: i1 `bound in` d1 = true
i1 < d1 + 0 + k
lia.Qed.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
foralln : nat, ~ cl_at n (ret n)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
foralln : nat, ~ cl_at n (ret n)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat
~ cl_at n (ret n)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat H: cl_at n (ret n)
False
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat H: Forall_ctx (cl_at_loc n) (ret n)
False
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat H: forallea : nat,
(e, a) ∈d ret n -> cl_at_loc n (e, a)
False
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat H: (0, n) ∈d ret n -> cl_at_loc n (0, n)
False
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat H: 0 = Ƶ /\ n = n -> cl_at_loc n (0, n)
False
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat H: cl_at_loc n (0, n)
False
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat H: bound_within n n 0
False
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat H: n < 0 + n
False
lia.Qed.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
foralln : nat, cl_at (↑ n) (ret n)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U
foralln : nat, cl_at (↑ n) (ret n)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat
cl_at (↑ n) (ret n)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat
Forall_ctx (cl_at_loc (↑ n)) (ret n)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat
forallea : nat,
(e, a) ∈d ret n -> cl_at_loc (↑ n) (e, a)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, e, a: nat H: (e, a) ∈d ret n
cl_at_loc (↑ n) (e, a)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, e, a: nat H: e = Ƶ /\ a = n
cl_at_loc (↑ n) (e, a)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n, e, a: nat H: e = Ƶ /\ a = n H0: e = Ƶ H1: a = n
cl_at_loc (↑ n) (e, a)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat H: Ƶ = Ƶ /\ n = n
cl_at_loc (↑ n) (Ƶ, n)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat H: Ƶ = Ƶ /\ n = n
bound_within (↑ n) n Ƶ
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat H: Ƶ = Ƶ /\ n = n
n < Ƶ + ↑ n
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U n: nat H: Ƶ = Ƶ /\ n = n
↑ n <= ↑ n
lia.Qed.
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U k: nat σ1, σ2: nat -> T nat t: T nat
cl_at k t ->
(foralli : nat, i < k -> σ1 i = σ2 i) ->
subst σ1 t = subst σ2 t
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U k: nat σ1, σ2: nat -> T nat t: T nat
cl_at k t ->
(foralli : nat, i < k -> σ1 i = σ2 i) ->
subst σ1 t = subst σ2 t
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U k: nat σ1, σ2: nat -> T nat t: T nat
Forall_ctx (cl_at_loc k) t ->
(foralli : nat, i < k -> σ1 i = σ2 i) ->
bindd (local__sub σ1) t = bindd (local__sub σ2) t
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U k: nat σ1, σ2: nat -> T nat t: T nat Hclosed: Forall_ctx (cl_at_loc k) t Hpw: foralli : nat, i < k -> σ1 i = σ2 i
bindd (local__sub σ1) t = bindd (local__sub σ2) t
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U k: nat σ1, σ2: nat -> T nat t: T nat Hclosed: Forall_ctx (cl_at_loc k) t Hpw: foralli : nat, i < k -> σ1 i = σ2 i
forallwa : nat,
(w, a) ∈d t ->
local__sub σ1 (w, a) = local__sub σ2 (w, a)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U k: nat σ1, σ2: nat -> T nat t: T nat Hclosed: Forall_ctx (cl_at_loc k) t Hpw: foralli : nat, i < k -> σ1 i = σ2 i w, a: nat Hin: (w, a) ∈d t
local__sub σ1 (w, a) = local__sub σ2 (w, a)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U k: nat σ1, σ2: nat -> T nat t: T nat Hclosed: forallea : nat,
(e, a) ∈d t -> cl_at_loc k (e, a) Hpw: foralli : nat, i < k -> σ1 i = σ2 i w, a: nat Hin: (w, a) ∈d t
local__sub σ1 (w, a) = local__sub σ2 (w, a)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U k: nat σ1, σ2: nat -> T nat t: T nat w, a: nat Hclosed: cl_at_loc k (w, a) Hpw: foralli : nat, i < k -> σ1 i = σ2 i Hin: (w, a) ∈d t
local__sub σ1 (w, a) = local__sub σ2 (w, a)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U k: nat σ1, σ2: nat -> T nat t: T nat w, a: nat Hclosed: a < w + k Hpw: foralli : nat, i < k -> σ1 i = σ2 i Hin: (w, a) ∈d t
local__sub σ1 (w, a) = local__sub σ2 (w, a)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U k: nat σ1, σ2: nat -> T nat t: T nat w, a: nat Hclosed: a < w + k Hpw: foralli : nat, i < k -> σ1 i = σ2 i Hin: (w, a) ∈d t
(if a `bound in` w
then ret a
elserename (+w) (σ1 (a - w))) =
(if a `bound in` w
then ret a
elserename (+w) (σ2 (a - w)))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U k: nat σ1, σ2: nat -> T nat t: T nat w, a: nat Hclosed: a < w + k Hpw: foralli : nat, i < k -> σ1 i = σ2 i Hin: (w, a) ∈d t Hord: a >= w Hbound: a `bound in` w = false
rename (+w) (σ1 (a - w)) = rename (+w) (σ2 (a - w))
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U k: nat σ1, σ2: nat -> T nat t: T nat w, a: nat Hclosed: a < w + k Hpw: foralli : nat, i < k -> σ1 i = σ2 i Hin: (w, a) ∈d t Hord: a >= w Hbound: a `bound in` w = false
σ1 (a - w) = σ2 (a - w)
T: Type -> Type ret_inst: Return T Map_T_inst: Map T Mapd_T_inst: Mapd nat T Traverse_T_inst: Traverse T Bind_T_inst: Bind T T Mapdt_T_inst: Mapdt nat T Bindd_T_inst: Bindd nat T T Bindt_T_inst: Bindt T T Binddt_T_inst: Binddt nat T T Compat_Map_Binddt0: Compat_Map_Binddt nat T T Compat_Mapd_Binddt0: Compat_Mapd_Binddt nat T T Compat_Traverse_Binddt0: Compat_Traverse_Binddt nat T
T Compat_Bind_Binddt0: Compat_Bind_Binddt nat T T Compat_Mapdt_Binddt0: Compat_Mapdt_Binddt nat T T Compat_Bindd_Binddt0: Compat_Bindd_Binddt nat T T Compat_Bindt_Binddt0: Compat_Bindt_Binddt nat T T Monad_inst: DecoratedTraversableMonad nat T U: Type -> Type Map_U_inst: Map U Mapd_U_inst: Mapd nat U Traverse_U_inst: Traverse U Bind_U_inst: Bind T U Mapdt_U_inst: Mapdt nat U Bindd_U_inst: Bindd nat T U Bindt_U_inst: Bindt T U Binddt_U_inst: Binddt nat T U Compat_Map_Binddt1: Compat_Map_Binddt nat T U Compat_Mapd_Binddt1: Compat_Mapd_Binddt nat T U Compat_Traverse_Binddt1: Compat_Traverse_Binddt nat T
U Compat_Bind_Binddt1: Compat_Bind_Binddt nat T U Compat_Mapdt_Binddt1: Compat_Mapdt_Binddt nat T U Compat_Bindd_Binddt1: Compat_Bindd_Binddt nat T U Compat_Bindt_Binddt1: Compat_Bindt_Binddt nat T U Module_inst: DecoratedTraversableRightPreModule nat T
U k: nat σ1, σ2: nat -> T nat t: T nat w, a: nat Hclosed: a < w + k Hpw: foralli : nat, i < k -> σ1 i = σ2 i Hin: (w, a) ∈d t Hord: a >= w Hbound: a `bound in` w = false