Built with Alectryon, running Coq+SerAPI v8.16.0+0.16.3. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑ Ctrl+↓ to navigate, Ctrl+🖱️ to focus. On Mac, use instead of Ctrl.
From Tealeaves Require Export
  Functors.Early.Ctxset
  Classes.Kleisli.DecoratedContainerFunctor
  Classes.Kleisli.Theory.DecoratedContainerFunctor.

Import DecoratedContainerFunctor.Notations.

(** * <<DecoratedContainerFunctor>> Instance for <<ctxset>> *)
(**********************************************************************)
Section Container_ctxset.

  Context {E: Type}.

  #[local] Instance ToCtxset_ctxset: ToCtxset E (ctxset E) :=
    fun (A: Type) (s: ctxset E A) => s.

  
E: Type

DecoratedHom E (ctxset E) (ctxset E) (@toctxset E (ctxset E) ToCtxset_ctxset)
E: Type

DecoratedHom E (ctxset E) (ctxset E) (@toctxset E (ctxset E) ToCtxset_ctxset)
E: Type

forall (A B : Type) (f : E * A -> B), mapd f ∘ toctxset = toctxset ∘ mapd f
reflexivity. Qed.
E: Type

forall (A B : Type) (t : ctxset E A) (f g : E * A -> B), (forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = g (e, a)) -> mapd f t = mapd g t
E: Type

forall (A B : Type) (t : ctxset E A) (f g : E * A -> B), (forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = g (e, a)) -> mapd f t = mapd g t
E, A, B: Type
t: ctxset E A
f, g: E * A -> B
hyp: forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = g (e, a)

mapd f t = mapd g t
E, A, B: Type
t: ctxset E A
f, g: E * A -> B
hyp: forall (e : E) (a : A), (e, a) ∈d t -> f (e, a) = g (e, a)
e: E
b: B

mapd f t (e, b) = mapd g t (e, b)
E, A, B: Type
t: E * A -> Prop
f, g: E * A -> B
hyp: forall (e : E) (a : A), t (e, a) -> f (e, a) = g (e, a)
e: E
b: B

(exists a : A, t (e, a) /\ f (e, a) = b) = (exists a : A, t (e, a) /\ g (e, a) = b)
E, A, B: Type
t: E * A -> Prop
f, g: E * A -> B
hyp: forall (e : E) (a : A), t (e, a) -> f (e, a) = g (e, a)
e: E
b: B

(exists a : A, t (e, a) /\ f (e, a) = b) -> exists a : A, t (e, a) /\ g (e, a) = b
E, A, B: Type
t: E * A -> Prop
f, g: E * A -> B
hyp: forall (e : E) (a : A), t (e, a) -> f (e, a) = g (e, a)
e: E
b: B
(exists a : A, t (e, a) /\ g (e, a) = b) -> exists a : A, t (e, a) /\ f (e, a) = b
E, A, B: Type
t: E * A -> Prop
f, g: E * A -> B
hyp: forall (e : E) (a : A), t (e, a) -> f (e, a) = g (e, a)
e: E
b: B

(exists a : A, t (e, a) /\ f (e, a) = b) -> exists a : A, t (e, a) /\ g (e, a) = b
E, A, B: Type
t: E * A -> Prop
f, g: E * A -> B
hyp: forall (e : E) (a : A), t (e, a) -> f (e, a) = g (e, a)
e: E
b: B
a: A
Hin: t (e, a)
Heq: f (e, a) = b

exists a : A, t (e, a) /\ g (e, a) = b
E, A, B: Type
t: E * A -> Prop
f, g: E * A -> B
e: E
a: A
hyp: f (e, a) = g (e, a)
b: B
Hin: t (e, a)
Heq: f (e, a) = b

exists a : A, t (e, a) /\ g (e, a) = b
E, A, B: Type
t: E * A -> Prop
f, g: E * A -> B
e: E
a: A
hyp: f (e, a) = g (e, a)
Hin: t (e, a)

exists a0 : A, t (e, a0) /\ g (e, a0) = f (e, a)
eauto.
E, A, B: Type
t: E * A -> Prop
f, g: E * A -> B
hyp: forall (e : E) (a : A), t (e, a) -> f (e, a) = g (e, a)
e: E
b: B

(exists a : A, t (e, a) /\ g (e, a) = b) -> exists a : A, t (e, a) /\ f (e, a) = b
E, A, B: Type
t: E * A -> Prop
f, g: E * A -> B
hyp: forall (e : E) (a : A), t (e, a) -> f (e, a) = g (e, a)
e: E
b: B
a: A
Hin: t (e, a)
Heq: g (e, a) = b

exists a : A, t (e, a) /\ f (e, a) = b
E, A, B: Type
t: E * A -> Prop
f, g: E * A -> B
e: E
a: A
hyp: f (e, a) = g (e, a)
b: B
Hin: t (e, a)
Heq: g (e, a) = b

exists a : A, t (e, a) /\ f (e, a) = b
E, A, B: Type
t: E * A -> Prop
f, g: E * A -> B
e: E
a: A
hyp: f (e, a) = g (e, a)
Hin: t (e, a)

exists a0 : A, t (e, a0) /\ f (e, a0) = g (e, a)
eauto. Qed. #[local] Instance DecoratedContainerFunctor_ctxset: DecoratedContainerFunctor E (ctxset E) := {| dcont_pointwise := ctxset_pointwise; |}. End Container_ctxset.