TauLib · API Book I

TauLib.BookI.Topos.CartesianProduct

TauLib.Topos.CartesianProduct

Cartesian product as an earned bi-functor in E_τ.

Registry Cross-References

  • [I.D60] Categorical Product — cat_product

  • [I.T26] Product Universal Property — product_universal

  • [I.D61] Cartesian Monoidal Structure — CartesianMonoidal

Mathematical Content

The categorical product in E_τ is the pointwise conjunction of presheaves. The terminal presheaf is the monoidal unit. Products satisfy the universal property: any pair of morphisms factors uniquely through the product.


Tau.Topos.cat_product

source def Tau.Topos.cat_product (P Q : Presheaf) :Presheaf

[I.D60] The categorical product of two presheaves: pointwise conjunction of support predicates. Equations

  • Tau.Topos.cat_product P Q = Tau.Topos.presheaf_product P Q Instances For

Tau.Topos.cat_proj1

source **theorem Tau.Topos.cat_proj1 (P Q : Presheaf)

(x : Denotation.TauIdx)

(h : (cat_product P Q).support x = true) :P.support x = true**

First projection: product → first factor.


Tau.Topos.cat_proj2

source **theorem Tau.Topos.cat_proj2 (P Q : Presheaf)

(x : Denotation.TauIdx)

(h : (cat_product P Q).support x = true) :Q.support x = true**

Second projection: product → second factor.


Tau.Topos.product_universal

source **theorem Tau.Topos.product_universal (P Q R : Presheaf)

(hP : ∀ (x : Denotation.TauIdx), R.support x = true → P.support x = true)

(hQ : ∀ (x : Denotation.TauIdx), R.support x = true → Q.support x = true)

(x : Denotation.TauIdx) :R.support x = true → (cat_product P Q).support x = true**

[I.T26] Product universal property: if R maps to both P and Q pointwise, then R maps to P × Q.


Tau.Topos.product_comm

source theorem Tau.Topos.product_comm (P Q : Presheaf) :(cat_product P Q).support = (cat_product Q P).support

Product is commutative up to support equality.


Tau.Topos.product_assoc

source theorem Tau.Topos.product_assoc (P Q R : Presheaf) :(cat_product (cat_product P Q) R).support = (cat_product P (cat_product Q R)).support

Product is associative up to support equality.


Tau.Topos.product_terminal

source theorem Tau.Topos.product_terminal (P : Presheaf) :(cat_product P { support := fun (x : Denotation.TauIdx) => true }).support = P.support

Product with terminal is identity.


Tau.Topos.CartesianMonoidal

source structure Tau.Topos.CartesianMonoidal :Type

[I.D61] The cartesian monoidal structure on E_τ. Unit: terminal presheaf. Tensor: pointwise product.

  • unit : Presheaf
  • tensor : Presheaf → Presheaf → Presheaf Instances For

Tau.Topos.cartesian_monoidal

source def Tau.Topos.cartesian_monoidal :CartesianMonoidal

The canonical cartesian monoidal structure. Equations

  • Tau.Topos.cartesian_monoidal = { } Instances For

Tau.Topos.monoidal_left_unit

source theorem Tau.Topos.monoidal_left_unit (P : Presheaf) :(cat_product { support := fun (x : Denotation.TauIdx) => true } P).support = P.support

Left unit law.


Tau.Topos.monoidal_right_unit

source theorem Tau.Topos.monoidal_right_unit (P : Presheaf) :(cat_product P { support := fun (x : Denotation.TauIdx) => true }).support = P.support

Right unit law.


Tau.Topos.cantor_product_encoding

source theorem Tau.Topos.cantor_product_encoding (a b : Denotation.TauIdx) :cantor_pair a b = (a + b) * (a + b + 1) / 2 + b

Product encoding at the object level via Cantor pairing.