Raising universe levels of directed trees

module trees.raising-universe-levels-directed-trees where
Imports
open import foundation.contractible-types
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.raising-universe-levels-directed-graphs
open import graph-theory.walks-directed-graphs

open import trees.directed-trees
open import trees.equivalences-directed-trees

Idea

We define the operation that raises the universe level of a directed tree.

Definitions

module _
  {l1 l2 : Level} (l3 l4 : Level) (T : Directed-Tree l1 l2)
  where

  graph-raise-Directed-Tree : Directed-Graph (l1  l3) (l2  l4)
  graph-raise-Directed-Tree = raise-Directed-Graph l3 l4 (graph-Directed-Tree T)

  node-raise-Directed-Tree : UU (l1  l3)
  node-raise-Directed-Tree = vertex-Directed-Graph graph-raise-Directed-Tree

  equiv-node-compute-raise-Directed-Tree :
    node-Directed-Tree T  node-raise-Directed-Tree
  equiv-node-compute-raise-Directed-Tree =
    equiv-vertex-compute-raise-Directed-Graph l3 l4 (graph-Directed-Tree T)

  node-compute-raise-Directed-Tree :
    node-Directed-Tree T  node-raise-Directed-Tree
  node-compute-raise-Directed-Tree =
    vertex-compute-raise-Directed-Graph l3 l4 (graph-Directed-Tree T)

  edge-raise-Directed-Tree :
    (x y : node-raise-Directed-Tree)  UU (l2  l4)
  edge-raise-Directed-Tree = edge-Directed-Graph graph-raise-Directed-Tree

  equiv-edge-compute-raise-Directed-Tree :
    (x y : node-Directed-Tree T) 
    edge-Directed-Tree T x y 
    edge-raise-Directed-Tree
      ( node-compute-raise-Directed-Tree x)
      ( node-compute-raise-Directed-Tree y)
  equiv-edge-compute-raise-Directed-Tree =
    equiv-edge-compute-raise-Directed-Graph l3 l4 (graph-Directed-Tree T)

  edge-compute-raise-Directed-Tree :
    (x y : node-Directed-Tree T) 
    edge-Directed-Tree T x y 
    edge-raise-Directed-Tree
      ( node-compute-raise-Directed-Tree x)
      ( node-compute-raise-Directed-Tree y)
  edge-compute-raise-Directed-Tree =
    edge-compute-raise-Directed-Graph l3 l4 (graph-Directed-Tree T)

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

  equiv-walk-compute-raise-Directed-Tree :
    {x y : node-Directed-Tree T} 
    walk-Directed-Tree T x y 
    walk-raise-Directed-Tree
      ( node-compute-raise-Directed-Tree x)
      ( node-compute-raise-Directed-Tree y)
  equiv-walk-compute-raise-Directed-Tree =
    equiv-walk-compute-raise-Directed-Graph l3 l4 (graph-Directed-Tree T)

  walk-compute-raise-Directed-Tree :
    {x y : node-Directed-Tree T} 
    walk-Directed-Tree T x y 
    walk-raise-Directed-Tree
      ( node-compute-raise-Directed-Tree x)
      ( node-compute-raise-Directed-Tree y)
  walk-compute-raise-Directed-Tree =
    walk-compute-raise-Directed-Graph l3 l4 (graph-Directed-Tree T)

  root-raise-Directed-Tree : node-raise-Directed-Tree
  root-raise-Directed-Tree =
    node-compute-raise-Directed-Tree (root-Directed-Tree T)

  unique-walk-to-root-raise-Directed-Tree :
    (x : node-raise-Directed-Tree) 
    is-contr (walk-raise-Directed-Tree x root-raise-Directed-Tree)
  unique-walk-to-root-raise-Directed-Tree (map-raise x) =
    is-contr-equiv'
      ( walk-Directed-Tree T x (root-Directed-Tree T))
      ( equiv-walk-compute-raise-Directed-Tree)
      ( unique-walk-to-root-Directed-Tree T x)

  is-tree-raise-Directed-Tree :
    is-tree-Directed-Graph graph-raise-Directed-Tree
  pr1 is-tree-raise-Directed-Tree = root-raise-Directed-Tree
  pr2 is-tree-raise-Directed-Tree = unique-walk-to-root-raise-Directed-Tree

  raise-Directed-Tree : Directed-Tree (l1  l3) (l2  l4)
  pr1 raise-Directed-Tree = graph-raise-Directed-Tree
  pr2 raise-Directed-Tree = is-tree-raise-Directed-Tree

  compute-raise-Directed-Tree :
    equiv-Directed-Tree T raise-Directed-Tree
  compute-raise-Directed-Tree =
    compute-raise-Directed-Graph l3 l4 (graph-Directed-Tree T)