Anna Williams 3 February 2026
Notation for working with natural transformations.
\begin{code}
{-# OPTIONS --safe --without-K #-}
open import MLTT.Spartan
open import Categories.Wild
open import Categories.NaturalTransformation
open import Categories.Functor
open import Categories.Notation.Wild
open import Categories.Notation.Functor
module Categories.Notation.NaturalTransformation where
\end{code}
We now define some notation similar to that of Category Notation
and Functor Notation for natural transformations.
\begin{code}
record NatNotation {A : WildCategory 𝓤 𝓥}
{B : WildCategory 𝓦 𝓣}
{F' G' : Functor A B}
(μ : NaturalTransformation F' G')
: (𝓤 ⊔ 𝓥 ⊔ 𝓣) ̇ where
open WildCategoryNotation A
open WildCategoryNotation B
open FunctorNotation F' renaming (functor-map to F ; fobj to Fobj)
open FunctorNotation G' renaming (functor-map to G ; fobj to Gobj)
field
gamma : (a : obj A) → hom (F {{Fobj}} a) (G {{Gobj}} a)
private
γ = gamma
field
natural : {a b : obj A}
(f : hom a b)
→ G f ○ γ a = γ b ○ F f
open NatNotation {{...}} public
module NaturalTNotation {A : WildCategory 𝓤 𝓥}
{B : WildCategory 𝓦 𝓣}
{F' G' : Functor A B}
(μ : NaturalTransformation F' G') where
open WildCategoryNotation A
open WildCategoryNotation B
open FunctorNotation F' renaming (functor-map to F ; fobj to Fobj)
open FunctorNotation G' renaming (functor-map to G ; fobj to Gobj)
instance
nat-notation : NatNotation μ
gamma {{nat-notation}} = NaturalTransformation.gamma μ
natural {{nat-notation}} = NaturalTransformation.natural μ
\end{code}