Documentation

DerivedAlgGeo.CategoryTheory.Triangulated.Dimension.ExtensionClosureComparison

Extension closure and triangulated envelopes #

This file compares CategoryTheory.Triangulated.ExtensionClosure with Mathlib's CategoryTheory.ObjectProperty.extensionProductIter and CategoryTheory.ObjectProperty.triangEnvelope without adding closure operations or strengthening the owner extension closure. Every finite iterate of CategoryTheory.ObjectProperty.extensionProduct lies in the owner extension closure. Conversely, the whole owner extension closure lies in the triangulated envelope when the generators are nonempty and the category is triangulated.

Main definitions #

This file introduces no definitions. It reuses the owner extension closure and Mathlib's extension-product and triangulated-envelope constructions.

Main results #

DeclarationRole
CategoryTheory.Triangulated.ExtensionClosure.extensionProductIter_leFinite iterates lie in the owner closure.
CategoryTheory.Triangulated.ExtensionClosure.le_of_closed_under_isomorphismsRestates closure induction using Mathlib's typeclass hypotheses.
CategoryTheory.Triangulated.ExtensionClosure.le_triangEnvelopeCompares the owner closure and Mathlib's envelope under nonemptiness.
CategoryTheory.Triangulated.ExtensionClosure.eq_iSup_extensionProductIterIdentifies the owner closure with the supremum after adjoining zero objects.
CategoryTheory.Triangulated.ExtensionClosure.extensionProductIter_le_triangEnvelopeIterPreserves the finite stage index.
CategoryTheory.Triangulated.ExtensionClosure.generationTime_singleton_le_of_mem_extensionProductIterConverts a finite stage into a generation-time bound.

Implementation notes #

The nonemptiness assumption in the envelope comparison is essential: when P = ⊥, CategoryTheory.Triangulated.ExtensionClosure contains every zero object by its zero constructor, while CategoryTheory.ObjectProperty.triangEnvelope sends ⊥ to ⊥. The supremum equality adjoins CategoryTheory.Limits.IsZero: the owner closure contains zero objects even when its generator property is empty. The numerical bound uses a direct inclusion into each CategoryTheory.ObjectProperty.triangEnvelopeIter stage; passing through the whole triangulated envelope would lose the count.

The typeclass restatement of CategoryTheory.Triangulated.ExtensionClosure.le_of_closed uses CategoryTheory.ObjectProperty.ContainsZero together with closure under isomorphisms: its witness gives one zero object, and CategoryTheory.ObjectProperty.IsClosedUnderIsomorphisms transfers membership to every zero object.

References #

Tags #

extension closure, triangulated envelope, generation time

Every finite iterate of Mathlib's extension product is contained in the repository's owner extension closure. The triangle in CategoryTheory.ObjectProperty.extensionProduct has the orientation used by CategoryTheory.Triangulated.ExtensionClosure.ext, so no rotation is needed.

Induction into an isomorphism-closed property containing a zero object and closed under distinguished extensions. The CategoryTheory.ObjectProperty.ContainsZero witness is enough because CategoryTheory.ObjectProperty.IsClosedUnderIsomorphisms transfers it to every zero object.

If the generators are nonempty and the category is triangulated, the owner extension closure is contained in Mathlib's triangulated envelope. The CategoryTheory.IsTriangulated hypothesis supplies closure under distinguished extensions, and nonemptiness supplies zero objects to that envelope. Nonemptiness is essential: for P = ⊥, the owner closure contains zero objects, but CategoryTheory.ObjectProperty.triangEnvelope sends ⊥ to ⊥.

The owner extension closure is exactly the supremum of Mathlib extension iterates generated by P together with the zero-object property. The zero property is needed because CategoryTheory.Triangulated.ExtensionClosure contains zero objects even when the original generator property is empty.

Mathlib's extension iterate at stage n lies in the corresponding triangulated-envelope stage. This direct comparison preserves the finite step bound used by CategoryTheory.ObjectProperty.generationTime.

An object in the nth extension-product iterate has generation time at most n, by its direct inclusion into the nth triangulated-envelope stage.