The splitting at a weak slope cutoff #
WeakCutoff.lean cuts two classes out of an abelian category by a slope μ₀ : WithTop ℝ and
proves that no map runs from the first to the second. This file supplies the other half of a
torsion pair: every object is an extension of an object of F μ₀ by an object of T μ₀.
The object is cut where its own slopes cross μ₀. The slopes strictly decrease, so the indices
whose slope exceeds μ₀ form an initial segment; exists_crossIndex (#789) names its length
k. Cutting the chain there gives
F.chain k, filtered byrestrict(#789), whose slopes are all aboveμ₀;E / F.chain k, filtered bytailAt(WeakTail.lean), whose slopes are all at or below it.
The two boundary cases are not special pleading: at k = 0 the sub is ⊥, at k = n the
quotient is the cokernel of an isomorphism, and in each the missing half is zero and lands in
both classes by isZero_mem_*.
What this completes #
WeakTruncation.lean shipped exists_subobject_hnTors — the torsion subobject alone —
and said explicitly that the torsion-free quotient was unavailable because tailAt did not
port. It does now, so the honest half-statement is superseded by the full one here, and the
weak TorsionPair follows in Weak/Tilting/TorsionPair/WeakStabilityFunction.lean.
The splitting. Every object has a subobject in T μ₀ whose cokernel is in F μ₀,
obtained by cutting a weak HN filtration at its crossing index.
The splitting as a short exact sequence with the given object in the middle.