Built with Alectryon, running Coq+SerAPI v8.18.0+0.18.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.
[Loading ML file number_string_notation_plugin.cmxs (using legacy method) ... done]
Require Import Types. Require Import Diagrams.Graph. Require Import Diagrams.Diagram. Require Import Diagrams.Cocone. (** Parallel pairs *)

Graph

Graph

Bool -> Bool -> Type
i, j: Bool

Type
exact (if i then if j then Empty else Bool else Empty). Defined. (** Parallel pair diagram *)
A, B: Type
f, g: A -> B

Diagram parallel_pair_graph
A, B: Type
f, g: A -> B

Diagram parallel_pair_graph
A, B: Type
f, g: A -> B

parallel_pair_graph -> Type
A, B: Type
f, g: A -> B
forall i j : parallel_pair_graph, parallel_pair_graph i j -> ?obj i -> ?obj j
A, B: Type
f, g: A -> B

forall i j : parallel_pair_graph, parallel_pair_graph i j -> (fun X : parallel_pair_graph => if X then A else B) i -> (fun X : parallel_pair_graph => if X then A else B) j
intros [] [] []; [exact f | exact g]. Defined. (** Cones on [parallel_pair]s *)
A, B, Q: Type
f, g: B -> A
q: A -> Q
Hq: q o g == q o f

Cocone (parallel_pair f g) Q
A, B, Q: Type
f, g: B -> A
q: A -> Q
Hq: q o g == q o f

Cocone (parallel_pair f g) Q
A, B, Q: Type
f, g: B -> A
q: A -> Q
Hq: q o g == q o f

forall i : parallel_pair_graph, parallel_pair f g i -> Q
A, B, Q: Type
f, g: B -> A
q: A -> Q
Hq: q o g == q o f
forall (i j : parallel_pair_graph) (g0 : parallel_pair_graph i j), ?legs j o (parallel_pair f g) _f g0 == ?legs i
A, B, Q: Type
f, g: B -> A
q: A -> Q
Hq: q o g == q o f

forall (i j : parallel_pair_graph) (g0 : parallel_pair_graph i j), (fun i0 : parallel_pair_graph => if i0 as b return (parallel_pair f g b -> Q) then q o f else q) j o (parallel_pair f g) _f g0 == (fun i0 : parallel_pair_graph => if i0 as b return (parallel_pair f g b -> Q) then q o f else q) i
intros [] [] []; [reflexivity | exact Hq]. Defined.