Embeddings of directed graphs
module graph-theory.embeddings-directed-graphs where
Imports
open import foundation.dependent-pair-types open import foundation.embeddings open import foundation.propositions open import foundation.universe-levels open import graph-theory.directed-graphs open import graph-theory.morphisms-directed-graphs
Idea
An embedding of directed graphs is a morphism f : G → H
of directed graphs
which is an embedding on vertices such that for each pair (x , y)
of vertices
in G
the map
edge-hom-Graph G H : edge-Graph G p → edge-Graph H x y
is also an embedding. Embeddings of directed graphs correspond to directed subgraphs.
Definition
module _ {l1 l2 l3 l4 : Level} (G : Directed-Graph l1 l2) (H : Directed-Graph l3 l4) where is-emb-hom-Directed-Graph-Prop : hom-Directed-Graph G H → Prop (l1 ⊔ l2 ⊔ l3 ⊔ l4) is-emb-hom-Directed-Graph-Prop f = prod-Prop ( is-emb-Prop (vertex-hom-Directed-Graph G H f)) ( Π-Prop ( vertex-Directed-Graph G) ( λ x → Π-Prop ( vertex-Directed-Graph G) ( λ y → is-emb-Prop (edge-hom-Directed-Graph G H f {x} {y})))) is-emb-hom-Directed-Graph : hom-Directed-Graph G H → UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) is-emb-hom-Directed-Graph f = type-Prop (is-emb-hom-Directed-Graph-Prop f) emb-Directed-Graph : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) emb-Directed-Graph = Σ (hom-Directed-Graph G H) is-emb-hom-Directed-Graph hom-emb-Directed-Graph : emb-Directed-Graph → hom-Directed-Graph G H hom-emb-Directed-Graph = pr1 is-emb-emb-Directed-Graph : (f : emb-Directed-Graph) → is-emb-hom-Directed-Graph (hom-emb-Directed-Graph f) is-emb-emb-Directed-Graph = pr2