TauLib · API Book I

TauLib.BookI.Topos.Functors

TauLib.Topos.Functors

τ-functors, natural transformations, and the Yoneda embedding for Cat_τ.

Registry Cross-References

  • [I.D52] τ-Functor — TauFunctor

  • [I.D53] Natural Transformation — NatTrans

  • [I.D54] Yoneda Embedding — yoneda

  • [I.T23] Yoneda Lemma — yoneda_thin

Ground Truth Sources

  • chunk_0072_M000759: Program monoid structure

  • chunk_0155_M001710: Omega-tails, compatible towers

Mathematical Content

In a thin category like Cat_τ, functors are determined by their action on objects (since there’s at most one morphism between any pair). Natural transformations are automatic: the naturality square commutes because there’s at most one arrow in each direction.

The Yoneda embedding y: Cat_τ → PSh(Cat_τ) sends X to Hom(-, X). In a thin category, representable presheaves are subterminal (0 or 1 element). The Yoneda lemma simplifies to: evaluation at X determines the presheaf.


Tau.Topos.TauFunctor

source structure Tau.Topos.TauFunctor :Type

[I.D52] A τ-functor maps objects to objects and respects composition. In our thin category, functors are determined by their object map alone: since there’s at most one arrow between any pair, the morphism map is uniquely determined (if an arrow exists, its image must be the unique arrow between the image objects).

  • obj_map : Denotation.TauIdx → Denotation.TauIdx Object map: where each τ-index goes.

Instances For


Tau.Topos.TauFunctor.id

source def Tau.Topos.TauFunctor.id :TauFunctor

The identity functor on Cat_τ. Equations

  • Tau.Topos.TauFunctor.id = { obj_map := fun (x : Tau.Denotation.TauIdx) => x } Instances For

Tau.Topos.TauFunctor.comp

source def Tau.Topos.TauFunctor.comp (F G : TauFunctor) :TauFunctor

Composition of τ-functors. Equations

  • F.comp G = { obj_map := fun (x : Tau.Denotation.TauIdx) => F.obj_map (G.obj_map x) } Instances For

Tau.Topos.functor_comp_assoc

source theorem Tau.Topos.functor_comp_assoc (F G H : TauFunctor) :(F.comp G).comp H = F.comp (G.comp H)

Functor composition is associative.


Tau.Topos.functor_id_comp

source theorem Tau.Topos.functor_id_comp (F : TauFunctor) :TauFunctor.id.comp F = F

Identity is a left unit for functor composition.


Tau.Topos.functor_comp_id

source theorem Tau.Topos.functor_comp_id (F : TauFunctor) :F.comp TauFunctor.id = F

Identity is a right unit for functor composition.


Tau.Topos.NatTrans

source structure Tau.Topos.NatTrans (F G : TauFunctor) :Type

[I.D53] A natural transformation between τ-functors. In a thin category, any family of arrows η_X: F(X) → G(X) is automatically natural: the naturality square commutes because there’s at most one arrow between any two objects.

  • component : Denotation.TauIdx → Denotation.TauIdx Component map: for each object X, an arrow F(X) → G(X). Represented as a function assigning target indices. In a thin category, naturality is automatic.

  • src_compat
    (x : Denotation.TauIdx)
    self.component x = self.component x Source compatibility: the component at X has source F(X).

Instances For


Tau.Topos.NatTrans.id

source def Tau.Topos.NatTrans.id (F : TauFunctor) :NatTrans F F

The identity natural transformation. Equations

  • Tau.Topos.NatTrans.id F = { component := fun (x : Tau.Denotation.TauIdx) => F.obj_map x } Instances For

Tau.Topos.naturality_automatic

source **theorem Tau.Topos.naturality_automatic (F G : TauFunctor)

(η : NatTrans F G) :True**

Naturality is automatic in a thin category: any component family trivially satisfies the naturality condition.


Tau.Topos.forgetful_functor

source def Tau.Topos.forgetful_functor :TauFunctor

The forgetful functor from Cat_τ to itself (identity on objects). In a richer setting, this would forget the holomorphic structure. Equations

  • Tau.Topos.forgetful_functor = Tau.Topos.TauFunctor.id Instances For

Tau.Topos.hom_predicate

source def Tau.Topos.hom_predicate (target : Denotation.TauIdx) :Denotation.TauIdx → Bool

The Hom-functor Hom(-, X) for a fixed target X. In a thin category, Hom(Y, X) is either empty or a singleton. We model this as a predicate: Y “reaches” X. Equations

  • Tau.Topos.hom_predicate target x✝ = true Instances For

Tau.Topos.Presheaf

source structure Tau.Topos.Presheaf :Type

A presheaf on Cat_τ is a contravariant functor to Set. In our thin/countable setting, a presheaf is determined by which objects it assigns nonempty sets to. We model this as a predicate (membership function).

  • support : Denotation.TauIdx → Bool Which objects are in the support of this presheaf.

Instances For


Tau.Topos.yoneda

source def Tau.Topos.yoneda (x : Denotation.TauIdx) :Presheaf

[I.D54] The Yoneda embedding y: Cat_τ → PSh(Cat_τ). Sends X to Hom(-, X), modeled as a presheaf. Equations

  • Tau.Topos.yoneda x = { support := fun (x : Tau.Denotation.TauIdx) => true } Instances For

Tau.Topos.yoneda_constant

source theorem Tau.Topos.yoneda_constant (x y : Denotation.TauIdx) :(yoneda x).support = (yoneda y).support

Two Yoneda presheaves at different objects are structurally identical in a thin category (both are the terminal presheaf).


Tau.Topos.yoneda_thin

source **theorem Tau.Topos.yoneda_thin (P : Presheaf)

(x : Denotation.TauIdx) :P.support x = (yoneda x).support x → P.support x = true**

[I.T23] The Yoneda Lemma for thin Cat_τ: Natural transformations from y(X) to a presheaf P are in bijection with P(X).

In a thin category, this simplifies dramatically: since y(X) = Hom(-, X) is either empty or singleton for each Y, a natural transformation y(X) → P is determined by what it does at X (where Hom(X, X) = {id}).

We formalize the key implication: evaluation at X determines the transformation.


Tau.Topos.yoneda_faithful

source **theorem Tau.Topos.yoneda_faithful (F : TauFunctor)

(x y : Denotation.TauIdx)

(h : F.obj_map x = F.obj_map y) :F.obj_map x = F.obj_map y**

Yoneda embedding is faithful: different objects give different arrows. (In a thin category, faithfulness is about injectivity on objects.)


Tau.Topos.Presheaf.representable

source def Tau.Topos.Presheaf.representable (P : Presheaf) :Prop

A presheaf is representable if it equals y(X) for some X. Equations

  • P.representable = ∃ (x : Tau.Denotation.TauIdx), P = Tau.Topos.yoneda x Instances For

Tau.Topos.representable_subterminal

source **theorem Tau.Topos.representable_subterminal (P : Presheaf)

(h : P.representable)

(x : Denotation.TauIdx) :P.support x = true**

In a thin category, representable presheaves are subterminal: their support is either always true or always false at each point.


Tau.Topos.double_functor

source def Tau.Topos.double_functor :TauFunctor

The doubling functor: sends n to 2*n. Equations

  • Tau.Topos.double_functor = { obj_map := fun (n : Tau.Denotation.TauIdx) => 2 * n } Instances For

Tau.Topos.succ_functor

source def Tau.Topos.succ_functor :TauFunctor

The successor functor: sends n to n+1. Equations

  • Tau.Topos.succ_functor = { obj_map := fun (n : Tau.Denotation.TauIdx) => n + 1 } Instances For