Built with Alectryon, running Coq+SerAPI v8.16.0+0.16.3. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑Ctrl+↓ to navigate, Ctrl+🖱️ to focus. On Mac, use ⌘ instead of Ctrl.
From Tealeaves Require Import
Classes.Kleisli.DecoratedContainerFunctor
Classes.Kleisli.DecoratedFunctor
Classes.Categorical.Comonad (Extract, extract).#[local] Generalizable VariablesE T.Import DecoratedContainerFunctor.Notations.Import ContainerFunctor.Notations.Import Subset.Notations.(** * Derived Properties of <<DecoratedContainerFunctor>> *)(**********************************************************************)(** ** Relating <<a ∈ t>> to <<(e, a) ∈d t>> *)(**********************************************************************)Sectionrelating_element_to_element_ctx.Context
`{ToCtxset_inst: ToCtxset E T}
`{ToSubset_inst: ToSubset T}
`{! Compat_ToSubset_ToCtxset E T}.
E: Type T: Type -> Type ToCtxset_inst: ToCtxset E T ToSubset_inst: ToSubset T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T
forall (A : Type) (t : T A) (a : A),
a ∈ t <-> (existse : E, (e, a) ∈d t)
E: Type T: Type -> Type ToCtxset_inst: ToCtxset E T ToSubset_inst: ToSubset T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T
forall (A : Type) (t : T A) (a : A),
a ∈ t <-> (existse : E, (e, a) ∈d t)
E: Type T: Type -> Type ToCtxset_inst: ToCtxset E T ToSubset_inst: ToSubset T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T A: Type t: T A a: A
a ∈ t <-> (existse : E, (e, a) ∈d t)
E: Type T: Type -> Type ToCtxset_inst: ToCtxset E T ToSubset_inst: ToSubset T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T A: Type t: T A a: A
(evalAt a ∘ tosubset) t <->
(existse : E, (e, a) ∈d t)
E: Type T: Type -> Type ToCtxset_inst: ToCtxset E T ToSubset_inst: ToSubset T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T A: Type t: T A a: A
(evalAt a ∘ (map extract ∘ toctxset)) t <->
(existse : E, (e, a) ∈d t)
E: Type T: Type -> Type ToCtxset_inst: ToCtxset E T ToSubset_inst: ToSubset T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T A: Type t: T A a: A
(evalAt a
∘ ((fun (s : E * A -> Prop) (b : A) =>
existsa : E * A, s a /\ extract a = b)
∘ toctxset)) t <-> (existse : E, (e, a) ∈d t)
E: Type T: Type -> Type ToCtxset_inst: ToCtxset E T ToSubset_inst: ToSubset T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T A: Type t: T A a: A
(existsa0 : E * A, toctxset t a0 /\ extract a0 = a) <->
(existse : E, (e, a) ∈d t)
E: Type T: Type -> Type ToCtxset_inst: ToCtxset E T ToSubset_inst: ToSubset T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T A: Type t: T A a: A
(existsa0 : E * A, toctxset t a0 /\ extract a0 = a) ->
existse : E, (e, a) ∈d t
E: Type T: Type -> Type ToCtxset_inst: ToCtxset E T ToSubset_inst: ToSubset T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T A: Type t: T A a: A
(existse : E, (e, a) ∈d t) ->
existsa0 : E * A, toctxset t a0 /\ extract a0 = a
E: Type T: Type -> Type ToCtxset_inst: ToCtxset E T ToSubset_inst: ToSubset T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T A: Type t: T A a: A
(existsa0 : E * A, toctxset t a0 /\ extract a0 = a) ->
existse : E, (e, a) ∈d t
E: Type T: Type -> Type ToCtxset_inst: ToCtxset E T ToSubset_inst: ToSubset T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T A: Type t: T A a: A e: E a': A Hin: toctxset t (e, a') Heq: extract (e, a') = a
existse : E, (e, a) ∈d t
E: Type T: Type -> Type ToCtxset_inst: ToCtxset E T ToSubset_inst: ToSubset T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T A: Type t: T A a: A e: E a': A Hin: toctxset t (e, a') Heq: a' = a
existse : E, (e, a) ∈d t
E: Type T: Type -> Type ToCtxset_inst: ToCtxset E T ToSubset_inst: ToSubset T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T A: Type t: T A a: A e: E Hin: toctxset t (e, a)
existse : E, (e, a) ∈d t
eauto.
E: Type T: Type -> Type ToCtxset_inst: ToCtxset E T ToSubset_inst: ToSubset T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T A: Type t: T A a: A
(existse : E, (e, a) ∈d t) ->
existsa0 : E * A, toctxset t a0 /\ extract a0 = a
E: Type T: Type -> Type ToCtxset_inst: ToCtxset E T ToSubset_inst: ToSubset T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T A: Type t: T A a: A e: E Hin: (e, a) ∈d t
existsa0 : E * A, toctxset t a0 /\ extract a0 = a
eauto.Qed.
E: Type T: Type -> Type ToCtxset_inst: ToCtxset E T ToSubset_inst: ToSubset T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T
forall (A : Type) (e : E) (a : A) (t : T A),
(e, a) ∈d t -> a ∈ t
E: Type T: Type -> Type ToCtxset_inst: ToCtxset E T ToSubset_inst: ToSubset T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T
forall (A : Type) (e : E) (a : A) (t : T A),
(e, a) ∈d t -> a ∈ t
E: Type T: Type -> Type ToCtxset_inst: ToCtxset E T ToSubset_inst: ToSubset T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T A: Type e: E a: A t: T A H: (e, a) ∈d t
a ∈ t
E: Type T: Type -> Type ToCtxset_inst: ToCtxset E T ToSubset_inst: ToSubset T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T A: Type e: E a: A t: T A H: (e, a) ∈d t
existse : E, (e, a) ∈d t
eauto.Qed.Endrelating_element_to_element_ctx.(** * Basic Properties of Decorated Containers *)(**********************************************************************)Sectiondecorated_container_functor_theory.Context
`{DecoratedFunctor E T}
`{Map_T: Map T}
`{ToCtxset_ET: ToCtxset E T}
`{ToSubset_T: ToSubset T}
`{! Compat_Map_Mapd E T}
`{! Compat_ToSubset_ToCtxset E T}
`{! DecoratedContainerFunctor E T}
{A B: Type}.Implicit Types (t: T A) (b: B) (e: E) (a: A).(** ** Respectful Properties between (∈d) and <<mapd>> *)(********************************************************************)
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type
forallet (f : E * A -> B) b,
(e, b) ∈d mapd f t <->
(existsa, (e, a) ∈d t /\ f (e, a) = b)
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type
forallet (f : E * A -> B) b,
(e, b) ∈d mapd f t <->
(existsa, (e, a) ∈d t /\ f (e, a) = b)
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type e: E t: T A f: E * A -> B b: B
(e, b) ∈d mapd f t <->
(existsa, (e, a) ∈d t /\ f (e, a) = b)
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type e: E t: T A f: E * A -> B b: B
(element_ctx_of (e, b) ∘ mapd f) t <->
(existsa, (e, a) ∈d t /\ f (e, a) = b)
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type e: E t: T A f: E * A -> B b: B
(evalAt (e, b) ∘ toctxset ∘ mapd f) t <->
(existsa, (e, a) ∈d t /\ f (e, a) = b)
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type e: E t: T A f: E * A -> B b: B
(evalAt (e, b) ∘ (toctxset ∘ mapd f)) t <->
(existsa, (e, a) ∈d t /\ f (e, a) = b)
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type e: E t: T A f: E * A -> B b: B
(evalAt (e, b) ∘ (mapd f ∘ toctxset)) t <->
(existsa, (e, a) ∈d t /\ f (e, a) = b)
reflexivity.Qed.
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type
forallt (f : E * A -> B) b,
b ∈ mapd f t <->
(existsea, (e, a) ∈d t /\ f (e, a) = b)
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type
forallt (f : E * A -> B) b,
b ∈ mapd f t <->
(existsea, (e, a) ∈d t /\ f (e, a) = b)
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type t: T A f: E * A -> B b: B
b ∈ mapd f t <->
(existsea, (e, a) ∈d t /\ f (e, a) = b)
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type t: T A f: E * A -> B b: B
(existse, (e, b) ∈d mapd f t) <->
(existsea, (e, a) ∈d t /\ f (e, a) = b)
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type t: T A f: E * A -> B b: B
(existsea, (e, a) ∈d t /\ f (e, a) = b) <->
(existsea, (e, a) ∈d t /\ f (e, a) = b)
reflexivity.Qed.
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type
forallet (f : A -> B) b,
(e, b) ∈d map f t <->
(existsa, (e, a) ∈d t /\ f a = b)
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type
forallet (f : A -> B) b,
(e, b) ∈d map f t <->
(existsa, (e, a) ∈d t /\ f a = b)
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type e: E t: T A f: A -> B b: B
(e, b) ∈d map f t <->
(existsa, (e, a) ∈d t /\ f a = b)
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type e: E t: T A f: A -> B b: B
(e, b) ∈d mapd (f ∘ extract) t <->
(existsa, (e, a) ∈d t /\ f a = b)
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type e: E t: T A f: A -> B b: B
(existsa, (e, a) ∈d t /\ (f ∘ extract) (e, a) = b) <->
(existsa, (e, a) ∈d t /\ f a = b)
reflexivity.Qed.
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type
foralltea (f : E * A -> B),
(e, a) ∈d t -> (e, f (e, a)) ∈d mapd f t
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type
foralltea (f : E * A -> B),
(e, a) ∈d t -> (e, f (e, a)) ∈d mapd f t
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type t: T A e: E a: A f: E * A -> B
(e, a) ∈d t -> (e, f (e, a)) ∈d mapd f t
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type t: T A e: E a: A f: E * A -> B
(e, a) ∈d t ->
existsa0, (e, a0) ∈d t /\ f (e, a0) = f (e, a)
nowexistsa.Qed.
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type
foralltea (f : A -> B),
(e, a) ∈d t -> (e, f a) ∈d map f t
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type
foralltea (f : A -> B),
(e, a) ∈d t -> (e, f a) ∈d map f t
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type t: T A e: E a: A f: A -> B
(e, a) ∈d t -> (e, f a) ∈d map f t
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type t: T A e: E a: A f: A -> B
(e, a) ∈d t -> existsa0, (e, a0) ∈d t /\ f a0 = f a
nowexistsa.Qed.
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type
forallt (fg : E * A -> A),
(forallea, (e, a) ∈d t -> f (e, a) = g (e, a)) ->
mapd f t = mapd g t
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type
forallt (fg : E * A -> A),
(forallea, (e, a) ∈d t -> f (e, a) = g (e, a)) ->
mapd f t = mapd g t
apply dcont_pointwise.Qed.
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type Functor0: Functor T
forallt (f : E * A -> A),
(forallea, (e, a) ∈d t -> f (e, a) = a) ->
mapd f t = t
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type Functor0: Functor T
forallt (f : E * A -> A),
(forallea, (e, a) ∈d t -> f (e, a) = a) ->
mapd f t = t
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type Functor0: Functor T t: T A f: E * A -> A hyp: forallea, (e, a) ∈d t -> f (e, a) = a
mapd f t = t
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type Functor0: Functor T t: T A f: E * A -> A hyp: forallea, (e, a) ∈d t -> f (e, a) = a
mapd f t = id t
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type Functor0: Functor T t: T A f: E * A -> A hyp: forallea, (e, a) ∈d t -> f (e, a) = a
mapd f t = map id t
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type Functor0: Functor T t: T A f: E * A -> A hyp: forallea, (e, a) ∈d t -> f (e, a) = a
mapd f t = mapd (id ∘ extract) t
E: Type T: Type -> Type H: Mapd E T H0: DecoratedFunctor E T Map_T: Map T ToCtxset_ET: ToCtxset E T ToSubset_T: ToSubset T Compat_Map_Mapd0: Compat_Map_Mapd E T Compat_ToSubset_ToCtxset0: Compat_ToSubset_ToCtxset E
T DecoratedContainerFunctor0: DecoratedContainerFunctor
E T A, B: Type Functor0: Functor T t: T A f: E * A -> A hyp: forallea, (e, a) ∈d t -> f (e, a) = a
forallea,
(e, a) ∈d t -> f (e, a) = (id ∘ extract) (e, a)