Fibers of morphisms into reflexive graphs
Content created by Egbert Rijke.
Created on 2024-12-03.
Last modified on 2024-12-03.
module graph-theory.fibers-morphisms-reflexive-graphs where
Imports
open import foundation.action-on-identifications-functions open import foundation.binary-transport open import foundation.commuting-squares-of-identifications open import foundation.dependent-identifications open import foundation.dependent-pair-types open import foundation.equality-dependent-pair-types open import foundation.equivalences open import foundation.families-of-equivalences open import foundation.fibers-of-maps open import foundation.identity-types open import foundation.universe-levels open import graph-theory.dependent-directed-graphs open import graph-theory.dependent-reflexive-graphs open import graph-theory.dependent-sums-reflexive-graphs open import graph-theory.equivalences-dependent-directed-graphs open import graph-theory.equivalences-dependent-reflexive-graphs open import graph-theory.equivalences-reflexive-graphs open import graph-theory.fibers-morphisms-directed-graphs open import graph-theory.morphisms-reflexive-graphs open import graph-theory.reflexive-graphs
Idea
Consider a morphism f : H → G
of
reflexive graphs. The
fiber¶ of f
is
the dependent reflexive graph
fib_f
over G
given by
(fib_f)₀ x := fib f₀
(fib_f)₁ e (y , refl) (y' , refl) := fib f₁ e
refl (fib_f) (y , refl) := (refl H x , preserves-refl f x).
Definitions
The fiber of a morphism of reflexive graphs
module _ {l1 l2 l3 l4 : Level} (H : Reflexive-Graph l1 l2) (G : Reflexive-Graph l3 l4) (f : hom-Reflexive-Graph H G) where dependent-directed-graph-fiber-hom-Reflexive-Graph : Dependent-Directed-Graph ( l1 ⊔ l3) ( l2 ⊔ l4) ( directed-graph-Reflexive-Graph G) dependent-directed-graph-fiber-hom-Reflexive-Graph = fiber-hom-Directed-Graph ( directed-graph-Reflexive-Graph H) ( directed-graph-Reflexive-Graph G) ( hom-directed-graph-hom-Reflexive-Graph H G f) vertex-fiber-hom-Reflexive-Graph : vertex-Reflexive-Graph G → UU (l1 ⊔ l3) vertex-fiber-hom-Reflexive-Graph = vertex-Dependent-Directed-Graph dependent-directed-graph-fiber-hom-Reflexive-Graph edge-fiber-hom-Reflexive-Graph : {x x' : vertex-Reflexive-Graph G} (e : edge-Reflexive-Graph G x x') → vertex-fiber-hom-Reflexive-Graph x → vertex-fiber-hom-Reflexive-Graph x' → UU (l2 ⊔ l4) edge-fiber-hom-Reflexive-Graph = edge-Dependent-Directed-Graph dependent-directed-graph-fiber-hom-Reflexive-Graph refl-fiber-hom-Reflexive-Graph : {x : vertex-Reflexive-Graph G} (y : vertex-fiber-hom-Reflexive-Graph x) → edge-fiber-hom-Reflexive-Graph (refl-Reflexive-Graph G x) y y pr1 (refl-fiber-hom-Reflexive-Graph (y , refl)) = refl-Reflexive-Graph H y pr2 (refl-fiber-hom-Reflexive-Graph (y , refl)) = refl-hom-Reflexive-Graph H G f y fiber-hom-Reflexive-Graph : Dependent-Reflexive-Graph (l1 ⊔ l3) (l2 ⊔ l4) G pr1 fiber-hom-Reflexive-Graph = dependent-directed-graph-fiber-hom-Reflexive-Graph pr2 fiber-hom-Reflexive-Graph _ = refl-fiber-hom-Reflexive-Graph
Properties
The coproduct of the fibers of a morphism of reflexive graphs is the equivalent to the codomain
module _ {l1 l2 l3 l4 : Level} (H : Reflexive-Graph l1 l2) (G : Reflexive-Graph l3 l4) (f : hom-Reflexive-Graph H G) where equiv-directed-graph-compute-Σ-fiber-hom-Reflexive-Graph : equiv-directed-graph-Reflexive-Graph ( H) ( Σ-Reflexive-Graph (fiber-hom-Reflexive-Graph H G f)) equiv-directed-graph-compute-Σ-fiber-hom-Reflexive-Graph = compute-Σ-fiber-hom-Directed-Graph ( directed-graph-Reflexive-Graph H) ( directed-graph-Reflexive-Graph G) ( hom-directed-graph-hom-Reflexive-Graph H G f) vertex-compute-Σ-fiber-hom-Reflexive-Graph : vertex-Reflexive-Graph H → vertex-Σ-Reflexive-Graph (fiber-hom-Reflexive-Graph H G f) vertex-compute-Σ-fiber-hom-Reflexive-Graph = vertex-equiv-directed-graph-Reflexive-Graph H ( Σ-Reflexive-Graph (fiber-hom-Reflexive-Graph H G f)) ( equiv-directed-graph-compute-Σ-fiber-hom-Reflexive-Graph) edge-compute-Σ-fiber-hom-Reflexive-graph : {x x' : vertex-Reflexive-Graph H} → edge-Reflexive-Graph H x x' → edge-Σ-Reflexive-Graph ( fiber-hom-Reflexive-Graph H G f) ( vertex-compute-Σ-fiber-hom-Reflexive-Graph x) ( vertex-compute-Σ-fiber-hom-Reflexive-Graph x') edge-compute-Σ-fiber-hom-Reflexive-graph = edge-equiv-directed-graph-Reflexive-Graph H ( Σ-Reflexive-Graph (fiber-hom-Reflexive-Graph H G f)) ( equiv-directed-graph-compute-Σ-fiber-hom-Reflexive-Graph) refl-compute-Σ-fiber-hom-Reflexive-Graph : (x : vertex-Reflexive-Graph H) → edge-compute-Σ-fiber-hom-Reflexive-graph (refl-Reflexive-Graph H x) = refl-Σ-Reflexive-Graph ( fiber-hom-Reflexive-Graph H G f) ( vertex-compute-Σ-fiber-hom-Reflexive-Graph x) refl-compute-Σ-fiber-hom-Reflexive-Graph x = eq-pair-Σ ( refl-hom-Reflexive-Graph H G f x) ( ( inv ( compute-tr-fiber ( edge-hom-Reflexive-Graph H G f) ( refl-hom-Reflexive-Graph H G f x) ( _))) ∙ ( refl)) compute-Σ-fiber-hom-Reflexive-Graph : equiv-Reflexive-Graph ( H) ( Σ-Reflexive-Graph (fiber-hom-Reflexive-Graph H G f)) pr1 compute-Σ-fiber-hom-Reflexive-Graph = equiv-directed-graph-compute-Σ-fiber-hom-Reflexive-Graph pr2 compute-Σ-fiber-hom-Reflexive-Graph = refl-compute-Σ-fiber-hom-Reflexive-Graph hom-compute-Σ-fiber-hom-Reflexive-Graph : hom-Reflexive-Graph ( H) ( Σ-Reflexive-Graph (fiber-hom-Reflexive-Graph H G f)) hom-compute-Σ-fiber-hom-Reflexive-Graph = hom-equiv-Reflexive-Graph H ( Σ-Reflexive-Graph (fiber-hom-Reflexive-Graph H G f)) ( compute-Σ-fiber-hom-Reflexive-Graph)
The equivalence of the domain and the total graph of the fibers of a morphism of graphs fits in a commuting triangle
module _ {l1 l2 l3 l4 : Level} (H : Reflexive-Graph l1 l2) (G : Reflexive-Graph l3 l4) (f : hom-Reflexive-Graph H G) where htpy-compute-Σ-fiber-hom-Reflexive-Graph : htpy-hom-Reflexive-Graph H G f ( comp-hom-Reflexive-Graph H ( Σ-Reflexive-Graph (fiber-hom-Reflexive-Graph H G f)) ( G) ( pr1-Σ-Reflexive-Graph (fiber-hom-Reflexive-Graph H G f)) ( hom-compute-Σ-fiber-hom-Reflexive-Graph H G f)) pr1 htpy-compute-Σ-fiber-hom-Reflexive-Graph = htpy-compute-Σ-fiber-hom-Directed-Graph ( directed-graph-Reflexive-Graph H) ( directed-graph-Reflexive-Graph G) ( hom-directed-graph-hom-Reflexive-Graph H G f) pr2 htpy-compute-Σ-fiber-hom-Reflexive-Graph x = ap ( _∙ refl) ( ( ap-pr1-eq-pair-Σ ( refl-hom-Reflexive-Graph H G f x) ( _)) ∙ ( inv (ap-id (refl-hom-Reflexive-Graph H G f x))))
The fibers of the first projection of a dependent sums of reflexive graph
module _ {l1 l2 l3 l4 : Level} {G : Reflexive-Graph l1 l2} (H : Dependent-Reflexive-Graph l3 l4 G) where fiber-pr1-Σ-Reflexive-Graph : Dependent-Reflexive-Graph (l1 ⊔ l3) (l2 ⊔ l4) G fiber-pr1-Σ-Reflexive-Graph = fiber-hom-Reflexive-Graph ( Σ-Reflexive-Graph H) ( G) ( pr1-Σ-Reflexive-Graph H) dependent-directed-graph-fiber-pr1-Σ-Reflexive-Graph : Dependent-Directed-Graph ( l1 ⊔ l3) ( l2 ⊔ l4) ( directed-graph-Reflexive-Graph G) dependent-directed-graph-fiber-pr1-Σ-Reflexive-Graph = dependent-directed-graph-Dependent-Reflexive-Graph fiber-pr1-Σ-Reflexive-Graph vertex-fiber-pr1-Σ-Reflexive-Graph : (x : vertex-Reflexive-Graph G) → UU (l1 ⊔ l3) vertex-fiber-pr1-Σ-Reflexive-Graph = vertex-Dependent-Reflexive-Graph fiber-pr1-Σ-Reflexive-Graph edge-fiber-pr1-Σ-Reflexive-Graph : {x x' : vertex-Reflexive-Graph G} → edge-Reflexive-Graph G x x' → vertex-fiber-pr1-Σ-Reflexive-Graph x → vertex-fiber-pr1-Σ-Reflexive-Graph x' → UU (l2 ⊔ l4) edge-fiber-pr1-Σ-Reflexive-Graph = edge-Dependent-Reflexive-Graph fiber-pr1-Σ-Reflexive-Graph refl-fiber-pr1-Σ-Reflexive-Graph : {x : vertex-Reflexive-Graph G} (y : vertex-fiber-pr1-Σ-Reflexive-Graph x) → edge-fiber-pr1-Σ-Reflexive-Graph (refl-Reflexive-Graph G x) y y refl-fiber-pr1-Σ-Reflexive-Graph = refl-Dependent-Reflexive-Graph fiber-pr1-Σ-Reflexive-Graph equiv-dependent-directed-graph-compute-fiber-pr1-Σ-Reflexive-Graph : equiv-Dependent-Directed-Graph ( dependent-directed-graph-fiber-pr1-Σ-Reflexive-Graph) ( dependent-directed-graph-Dependent-Reflexive-Graph H) equiv-dependent-directed-graph-compute-fiber-pr1-Σ-Reflexive-Graph = compute-fiber-pr1-Σ-Directed-Graph ( dependent-directed-graph-Dependent-Reflexive-Graph H) vertex-equiv-compute-fiber-pr1-Σ-Reflexive-Graph : fam-equiv ( vertex-fiber-pr1-Σ-Reflexive-Graph) ( vertex-Dependent-Reflexive-Graph H) vertex-equiv-compute-fiber-pr1-Σ-Reflexive-Graph = vertex-equiv-compute-fiber-pr1-Σ-Directed-Graph ( dependent-directed-graph-Dependent-Reflexive-Graph H) vertex-compute-fiber-pr1-Σ-Reflexive-Graph : {x : vertex-Reflexive-Graph G} → vertex-fiber-pr1-Σ-Reflexive-Graph x → vertex-Dependent-Reflexive-Graph H x vertex-compute-fiber-pr1-Σ-Reflexive-Graph = vertex-compute-fiber-pr1-Σ-Directed-Graph ( dependent-directed-graph-Dependent-Reflexive-Graph H) edge-equiv-compute-fiber-pr1-Σ-Reflexive-Graph : {x x' : vertex-Reflexive-Graph G} (a : edge-Reflexive-Graph G x x') → (y : vertex-fiber-pr1-Σ-Reflexive-Graph x) → (y' : vertex-fiber-pr1-Σ-Reflexive-Graph x') → edge-fiber-pr1-Σ-Reflexive-Graph a y y' ≃ edge-Dependent-Reflexive-Graph H a ( vertex-compute-fiber-pr1-Σ-Reflexive-Graph y) ( vertex-compute-fiber-pr1-Σ-Reflexive-Graph y') edge-equiv-compute-fiber-pr1-Σ-Reflexive-Graph = edge-equiv-compute-fiber-pr1-Σ-Directed-Graph ( dependent-directed-graph-Dependent-Reflexive-Graph H) edge-compute-fiber-pr1-Σ-Reflexive-Graph : {x x' : vertex-Reflexive-Graph G} {a : edge-Reflexive-Graph G x x'} → {y : vertex-fiber-pr1-Σ-Reflexive-Graph x} → {y' : vertex-fiber-pr1-Σ-Reflexive-Graph x'} → edge-fiber-pr1-Σ-Reflexive-Graph a y y' → edge-Dependent-Reflexive-Graph H a ( vertex-compute-fiber-pr1-Σ-Reflexive-Graph y) ( vertex-compute-fiber-pr1-Σ-Reflexive-Graph y') edge-compute-fiber-pr1-Σ-Reflexive-Graph = edge-compute-fiber-pr1-Σ-Directed-Graph ( dependent-directed-graph-Dependent-Reflexive-Graph H) refl-compute-fiber-pr1-Σ-Reflexive-Graph : {x : vertex-Reflexive-Graph G} (y : vertex-fiber-pr1-Σ-Reflexive-Graph x) → edge-compute-fiber-pr1-Σ-Reflexive-Graph ( refl-fiber-pr1-Σ-Reflexive-Graph y) = refl-Dependent-Reflexive-Graph H ( vertex-compute-fiber-pr1-Σ-Reflexive-Graph y) refl-compute-fiber-pr1-Σ-Reflexive-Graph ((x , y) , refl) = refl compute-fiber-pr1-Σ-Reflexive-Graph : equiv-Dependent-Reflexive-Graph fiber-pr1-Σ-Reflexive-Graph H pr1 compute-fiber-pr1-Σ-Reflexive-Graph = equiv-dependent-directed-graph-compute-fiber-pr1-Σ-Reflexive-Graph pr2 compute-fiber-pr1-Σ-Reflexive-Graph _ = refl-compute-fiber-pr1-Σ-Reflexive-Graph
Recent changes
- 2024-12-03. Egbert Rijke. Hofmann-Streicher universes for graphs and globular types (#1196).