mathlib documentation


Exponential ideals #

An exponential ideal of a cartesian closed category C is a subcategory D ⊆ C such that for any B : D and A : C, the exponential A ⟹ B is in D: resembling ring theoretic ideals. We define the notion here for inclusion functors i : D ⥤ C rather than explicit subcategories to preserve the principle of equivalence.

We additionally show that if C is cartesian closed and i : D ⥤ C is a reflective functor, the following are equivalent.


The subcategory D of C expressed as an inclusion functor is an exponential ideal if B ∈ D implies A ⟹ B ∈ D for all A.

Instances of this typeclass

To show i is an exponential ideal it suffices to show that A ⟹ iB is "in" D for any A in C and B in D.

@[protected, instance]

The entire category viewed as a subcategory is an exponential ideal.

If D is a reflective subcategory, the property of being an exponential ideal is equivalent to the presence of a natural isomorphism i ⋙ exp A ⋙ left_adjoint i ⋙ i ≅ i ⋙ exp A, that is: (A ⟹ iB) ≅ i L (A ⟹ iB), naturally in B. The converse is given in exponential_ideal.mk_of_iso.


Given a natural isomorphism i ⋙ exp A ⋙ left_adjoint i ⋙ i ≅ i ⋙ exp A, we can show i is an exponential ideal.

@[protected, instance]

If the reflector preserves binary products, the subcategory is an exponential ideal. This is the converse of preserves_binary_products_of_exponential_ideal.

We construct a bijection between morphisms L(A ⨯ B) ⟶ X and morphisms LA ⨯ LB ⟶ X. This bijection has two key properties:

  • It is natural in X: See bijection_natural.
  • When X = LA ⨯ LB, then the backwards direction sends the identity morphism to the product comparison morphism: See bijection_symm_apply_id.

Together these help show that L preserves binary products. This should be considered internal implementation towards preserves_binary_products_of_exponential_ideal.


The bijection allows us to show that prod_comparison L A B is an isomorphism, where the inverse is the forward map of the identity morphism.