Raising universe levels of directed graphs

module graph-theory.raising-universe-levels-directed-graphs where
Imports
open import foundation.dependent-pair-types
open import foundation.equivalences
open import foundation.raising-universe-levels
open import foundation.universe-levels

open import graph-theory.directed-graphs
open import graph-theory.equivalences-directed-graphs
open import graph-theory.walks-directed-graphs

Idea

We raise the universe levels of directed graphs by raising the universe levels of the vertices and the edges.

Definition

module _
  {l1 l2 : Level} (l3 l4 : Level) (G : Directed-Graph l1 l2)
  where

  vertex-raise-Directed-Graph : UU (l1  l3)
  vertex-raise-Directed-Graph = raise l3 (vertex-Directed-Graph G)

  equiv-vertex-compute-raise-Directed-Graph :
    vertex-Directed-Graph G  vertex-raise-Directed-Graph
  equiv-vertex-compute-raise-Directed-Graph =
    compute-raise l3 (vertex-Directed-Graph G)

  vertex-compute-raise-Directed-Graph :
    vertex-Directed-Graph G  vertex-raise-Directed-Graph
  vertex-compute-raise-Directed-Graph =
    map-equiv equiv-vertex-compute-raise-Directed-Graph

  edge-raise-Directed-Graph :
    (x y : vertex-raise-Directed-Graph)  UU (l2  l4)
  edge-raise-Directed-Graph (map-raise x) (map-raise y) =
    raise l4 (edge-Directed-Graph G x y)

  equiv-edge-compute-raise-Directed-Graph :
    (x y : vertex-Directed-Graph G) 
    edge-Directed-Graph G x y 
    edge-raise-Directed-Graph
      ( vertex-compute-raise-Directed-Graph x)
      ( vertex-compute-raise-Directed-Graph y)
  equiv-edge-compute-raise-Directed-Graph x y =
    compute-raise l4 (edge-Directed-Graph G x y)

  edge-compute-raise-Directed-Graph :
    (x y : vertex-Directed-Graph G) 
    edge-Directed-Graph G x y 
    edge-raise-Directed-Graph
      ( vertex-compute-raise-Directed-Graph x)
      ( vertex-compute-raise-Directed-Graph y)
  edge-compute-raise-Directed-Graph x y =
    map-equiv (equiv-edge-compute-raise-Directed-Graph x y)

  raise-Directed-Graph : Directed-Graph (l1  l3) (l2  l4)
  pr1 raise-Directed-Graph = vertex-raise-Directed-Graph
  pr2 raise-Directed-Graph = edge-raise-Directed-Graph

  compute-raise-Directed-Graph :
    equiv-Directed-Graph G raise-Directed-Graph
  pr1 compute-raise-Directed-Graph = equiv-vertex-compute-raise-Directed-Graph
  pr2 compute-raise-Directed-Graph = equiv-edge-compute-raise-Directed-Graph

  walk-raise-Directed-Graph :
    (x y : vertex-raise-Directed-Graph)  UU (l1  l2  l3  l4)
  walk-raise-Directed-Graph = walk-Directed-Graph raise-Directed-Graph

  equiv-walk-compute-raise-Directed-Graph :
    {x y : vertex-Directed-Graph G} 
    walk-Directed-Graph G x y 
    walk-raise-Directed-Graph
      ( vertex-compute-raise-Directed-Graph x)
      ( vertex-compute-raise-Directed-Graph y)
  equiv-walk-compute-raise-Directed-Graph =
    equiv-walk-equiv-Directed-Graph G
      raise-Directed-Graph
      compute-raise-Directed-Graph

  walk-compute-raise-Directed-Graph :
    {x y : vertex-Directed-Graph G} 
    walk-Directed-Graph G x y 
    walk-raise-Directed-Graph
      ( vertex-compute-raise-Directed-Graph x)
      ( vertex-compute-raise-Directed-Graph y)
  walk-compute-raise-Directed-Graph =
    map-equiv equiv-walk-compute-raise-Directed-Graph