Built with Alectryon, running Coq+SerAPI v8.19.0+0.19.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.(** The underlying graph of a span. *)
Graph
Graph
Unit + Bool -> Unit + Bool -> Type
i, j: Unit
Type
i: Unit j: Bool
Type
i: Bool j: Unit
Type
i, j: Bool
Type
i, j: Unit
Type
i: Bool j: Unit
Type
i, j: Bool
Type
all: exact Empty.Defined.SectionSpan.Context {ABC : Type}.(** A span is a diagram: f g B <-- A --> C *)
A, B, C: Type f: A -> B g: A -> C
Diagram span_graph
A, B, C: Type f: A -> B g: A -> C
Diagram span_graph
A, B, C: Type f: A -> B g: A -> C
span_graph -> Type
A, B, C: Type f: A -> B g: A -> C
forallij : span_graph,
span_graph i j -> ?obj i -> ?obj j
A, B, C: Type f: A -> B g: A -> C
span_graph -> Type
A, B, C: Type f: A -> B g: A -> C i: Unit
Type
A, B, C: Type f: A -> B g: A -> C i: Bool
Type
A, B, C: Type f: A -> B g: A -> C i: Unit
Type
exact A.
A, B, C: Type f: A -> B g: A -> C i: Bool
Type
exact (if i then B else C).
A, B, C: Type f: A -> B g: A -> C
forallij : span_graph,
span_graph i j ->
(funX : span_graph =>
match X with
| inl u => unit_name A u
| inr b => (funi0 : Bool => if i0 then B else C) b
end) i ->
(funX : span_graph =>
match X with
| inl u => unit_name A u
| inr b => (funi0 : Bool => if i0 then B else C) b
end) j
A, B, C: Type f: A -> B g: A -> C i: Unit j: Bool u: span_graph (inl i) (inr j)
A -> if j then B else C
A, B, C: Type f: A -> B g: A -> C i: Unit u: span_graph (inl i) (inr true)
A -> B
A, B, C: Type f: A -> B g: A -> C i: Unit u: span_graph (inl i) (inr false)
A -> C
A, B, C: Type f: A -> B g: A -> C i: Unit u: span_graph (inl i) (inr true)
A -> B
exact f.
A, B, C: Type f: A -> B g: A -> C i: Unit u: span_graph (inl i) (inr false)