Weak slopes on an abelian category #
PhaseGeometry.lean reads a strict stability function through arg, which
is available because semiClosedUpperHalfPlane excludes 0. A weak
stability function does not exclude it: a skyscraper on a surface has zero rank
and zero degree, so its charge is exactly 0 and arg 0 = 0 carries no
information. This file therefore reads a weak stability function through its
slope in WithTop ℝ instead, with ⊤ on the whole real boundary.
That choice is not new here. Weak/Basic/Definitions.lean already stores
weak slopes in WithTop ℝ, and Weak/HarderNarasimhan/Heart.lean already
indexes weak HN filtrations by them, for exactly this reason. What is new is
that both of those live on a t-structure, at heartDatum t, and speak
through ambient distinguished triangles. This file states the same slope on
the abelian side, at abelianDatum A, through subobjects and cokernels,
which is the shape the abelian HN development of Uniqueness/ consumes.
Contents #
chargeSlope— the slope of a complex number:-Re/Imwhen0 < Im, and⊤otherwise. The two see-saw lemmas for it,chargeSlope_le_add_le_of_leandchargeSlope_add_lt_of_lt, are proved onclosedUpperHalfPlaneand treat⊤explicitly. Both need the half-plane, not merely0 ≤ Im: the boundary caseIm = 0usesRe ≤ 0.WeakStabilityFunctionOn.slope,IsSemistableatabelianDatum A.slope_le_of_epi— a nonzero quotient of a weak-semistable object has slope at least the source's. This is the weak counterpart ofStabilityFunction.phase_le_of_epi, and its proof is shorter: the two see-saw cases split onle_totaland neither needs anargestimate.hom_eq_zero_of_semistable_slope_gt— the Hom-vanishing that the HN uniqueness development runs on.
The order convention, stated once #
Slopes increase towards ⊤, and ⊤ is the slope of a rank-zero object.
An HN filtration therefore stores a strictly decreasing μ : Fin n → WithTop ℝ
whose first value may be ⊤, matching WeakAbelianHNFiltration. Nothing below
subtracts or adds slopes; they are only ever compared, which is why WithTop ℝ
suffices and why the strict development ports.
The slope of a charge value #
The slope of a charge value: -Re z / Im z when 0 < Im z, and ⊤
otherwise. On closedUpperHalfPlane the second branch is exactly the real
boundary, including 0, so a zero-charge object has slope ⊤ rather than an
undefined argument.
Instances For
Positive imaginary part on the left of a strict slope comparison.
Membership in the closed upper half-plane bounds the imaginary part.
The real part is nonpositive on the boundary of the closed upper half-plane.
The non-strict see-saw. If the two ends of a short exact sequence have
ordered slopes, the middle slope lies between them. Three cases: both interior,
one on the boundary, both on the boundary. The ⊤ branch is where the weak
theory differs from the strict one, and it is handled rather than excluded.
The strict see-saw. If the quotient end is strictly below the sub end,
the middle is strictly below the sub end too. Both ⊤ cases are decided by
im_pos_of_chargeSlope_lt.
The central charge on objects.
Equations
- W.charge E = W.Z (CategoryTheory.K₀Ab.of E)
Instances For
Nonzero objects have charge in the closed upper half-plane.
Zero objects have zero charge.
Isomorphic objects have the same charge.
The charge is additive on short exact sequences.
The weak slope of an object, in WithTop ℝ, with ⊤ exactly on the
real boundary of the closed upper half-plane — in particular at charge 0.
Equations
- W.slope E = CategoryTheory.Triangulated.chargeSlope (W.charge E)
Instances For
A zero-charge object has slope ⊤. This is the skyscraper, and it is
the case a phase-indexed weak cutoff cannot express.
Weak semistability: no nonzero subobject has slope above the object's
own. The comparison is in WithTop ℝ, so a rank-zero subobject of slope ⊤
forces the ambient slope to be ⊤ as well.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Weak stability: every nonzero proper subobject has strictly smaller slope.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A nonzero quotient of a weak-semistable object has slope at least the source's.
The weak counterpart of StabilityFunction.phase_le_of_epi, and shorter: the
kernel's slope is bounded by semistability, and the two see-saws decide the
remaining comparison by le_total without any arg estimate.
Hom-vanishing between weak-semistable objects of decreasing slope. The image is a quotient of the source and a subobject of the target, so its slope is trapped; a strict slope drop leaves no room for it.