# The elementhood relation on coalgebras of polynomial endofunctors ```agda module trees.elementhood-relation-coalgebras-polynomial-endofunctors where ``` <details><summary>Imports</summary> ```agda open import foundation.dependent-pair-types open import foundation.fibers-of-maps open import foundation.universe-levels open import graph-theory.directed-graphs open import graph-theory.walks-directed-graphs open import trees.coalgebras-polynomial-endofunctors ``` </details> ## Idea Given two elements `x y : X` in the underlying type of a coalgebra of a polynomial endofunctor, We say that **`x` is an element of `y`**, i.e., `x ∈ y`, if there is an element `b : B (shape y)` equipped with an identification `component y b = x`. Note that this elementhood relation of an arbitrary coalgebra need not be irreflexive. By the elementhood relation on coalgebras we obtain for each coalgebra a directed graph. ## Definition ```agda infixl 6 is-element-of-coalgebra-polynomial-endofunctor is-element-of-coalgebra-polynomial-endofunctor : {l1 l2 l3 : Level} {A : UU l1} {B : A → UU l2} (X : coalgebra-polynomial-endofunctor l3 A B) (x y : type-coalgebra-polynomial-endofunctor X) → UU (l2 ⊔ l3) is-element-of-coalgebra-polynomial-endofunctor X x y = fiber (component-coalgebra-polynomial-endofunctor X y) x syntax is-element-of-coalgebra-polynomial-endofunctor X x y = x ∈ y in-coalgebra X ``` ### The graph of a coalgebra for a polynomial endofunctor ```agda module _ {l1 l2 l3 : Level} {A : UU l1} {B : A → UU l2} (X : coalgebra-polynomial-endofunctor l3 A B) where graph-coalgebra-polynomial-endofunctor : Directed-Graph l3 (l2 ⊔ l3) pr1 graph-coalgebra-polynomial-endofunctor = type-coalgebra-polynomial-endofunctor X pr2 graph-coalgebra-polynomial-endofunctor x y = x ∈ y in-coalgebra X walk-coalgebra-polynomial-endofunctor : (x y : type-coalgebra-polynomial-endofunctor X) → UU (l2 ⊔ l3) walk-coalgebra-polynomial-endofunctor = walk-Directed-Graph graph-coalgebra-polynomial-endofunctor concat-walk-coalgebra-polynomial-endofunctor : {x y z : type-coalgebra-polynomial-endofunctor X} → walk-coalgebra-polynomial-endofunctor x y → walk-coalgebra-polynomial-endofunctor y z → walk-coalgebra-polynomial-endofunctor x z concat-walk-coalgebra-polynomial-endofunctor = concat-walk-Directed-Graph graph-coalgebra-polynomial-endofunctor ```