Firing scripts with a marked point inside each slot #
DegSpec.interpolatedScript puts one canonical ramp on each slot, so its
interior Laplacian is nonnegative everywhere and a chip strictly inside a slot
is never used. Atanasov--Ranganathan's sixth and seventh genus-five families
place chips exactly there, and no core-supported degree-four divisor covers
either row, so those rows need a script whose slot value may bend downward at
one marked offset.
This file is that script. A slot e carries a mark mark e -- the offset
of its chip -- and a mark value markValue e, the script's value there;
the slot value is the canonical ramp from the tail class up to the mark,
followed by the canonical ramp from the mark down to the head class. Taking
mark e = 0 and markValue e = potential (rep (tail e)) recovers
interpolatedScript on that slot, so a row may mark only the slots it needs.
The two Laplacian formulas come from DegenerateSlopeScript unchanged: they
are stated for an arbitrary slot-value function. What this file adds is
splitValueCompatible, so the value really assembles into a script;isStepSlope_splitScript, naming the slope asSubdivisionArithmetic.splitStep;prin_splitScript_interiorVertex_nonneg_of_ne, the interior residual away from the mark; andprin_splitScript_interiorVertex_ge_neg_one, the residual at the mark, which is where the chip is spent.
The arithmetic lives in SplitRampArithmetic.lean.
Admissibility of the marks: each sits inside its slot, and a mark at an end of its slot carries that end's value.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The slot value: two canonical ramps meeting at the mark.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The firing script assembled from the marked slot values.
Equations
- d.splitScript potential mark markValue = d.slotValueScript potential (d.splitValue potential mark markValue)
Instances For
The slope of the marked script is the split ramp's slope.
The core-class formula #
prin_coreVertex_eq_endpointSum applies verbatim; the two endpoint slopes are
identified with the surviving half's own endpoint slopes by
SubdivisionArithmetic.splitStep_first and splitStep_last.
The interior formula #
Away from the mark the marked script is still convex, so its interior
residual is nonnegative exactly as for interpolatedScript.
At the mark. The residual drops by at most one, so a divisor carrying one chip at the marked vertex stays effective there. The two rise bounds and the flatness disjunction are what a configuration supplies.