Two canonical ramps meeting at an interior chip #
SubdivisionArithmetic.potential realizes a rise over a slot by the convex
two-slope interpolation, whose unit slopes are nondecreasing. That convexity
is exactly what makes DegSpec.interpolatedScript's interior Laplacian
nonnegative -- and exactly what makes a single ramp useless for a divisor whose
chip sits inside a slot: a convex script never draws on that chip, so the row
would have to succeed with the remaining core-supported chips alone.
Atanasov--Ranganathan's sixth and seventh genus-five families (rows 05 and
08 of the atlas) are of that kind: no core-supported degree-four divisor
covers either row, and the figures place two of the four chips at interior
points whose offset is a length.
This file supplies the replacement slot value. splitPotential L t first second is the canonical ramp of rise first over the first t unit steps,
followed by the canonical ramp of rise second over the remaining L - t.
It is convex on each side of t, and it may be concave exactly at t, where
the divisor's chip pays for the deficit. splitStep_kink_ge_neg_one bounds
that deficit by one chip, under a hypothesis every intended configuration has
anyway: neither ramp is steeper than one unit per step, and one of the two is
flat -- the chip is placed exactly where a flat stretch meets a full ramp.
Everything here is arithmetic on ℕ and ℤ. The layer that turns it into a
firing script is generic already -- DegSpec.slotValueScript,
DegSpec.SlotValueCompatible and DegSpec.IsStepSlope in
Utilities/Subdivision/DegenerateSlopeScript.lean are stated for an
arbitrary slot-value function, interpolatedScript being merely the instance
whose value is one ramp.
Admissibility of a split point. The two degeneracy clauses say that a ramp of length zero carries no rise; they hold in every intended use, where the split point is the position of a chip and a collapsed half means that chip has reached the core vertex at that end.
Instances For
The two regimes #
Endpoint values #
The two slope regimes #
An unmarked slot -- split point at the tail -- is the ordinary canonical ramp. This is what lets a row mark only the slots that carry an interior chip and keep the single-ramp ledger everywhere else.
The endpoint slopes are the surviving half's own endpoint slopes #
Convexity away from the split point, and the kink at it #
The kink. Across the split point the slope can drop, but by at most one, provided neither half is steeper than one unit per step and one of the two is flat. A divisor with one chip at the split point therefore stays effective.
Convexity at every interior offset other than the split point. This is
what the DegSpec interior Laplacian consumes; at the split point itself the
residual is paid for by the chip, via splitStep_kink_ge_neg_one.