Atanasov--Ranganathan configuration 3, generic in the core #
Configuration 3 of Atanasov--Ranganathan, Proposition 5.1, is the local picture at a chip-free pair of adjacent core vertices, each of whose two remaining slots ends on a chip vertex. Several genus-five rows are covered by this one picture, and until now each row carried its own verbatim copy of the calculation against its own lookup tables.
This file states the picture once, as a ConfigThree bundle of the lookup
data together with the incidence facts a row must check, and proves the whole
closed-face calculation from those facts alone. A row supplies the tables and
discharges the Prop fields; nothing else.
For a target centre, let a and b be the shorter arm lengths on the target
and partner sides, and let m be the middle-slot length. We interpolate the
core potentials -h₁, -h₂, where
h₂ = min a b, andh₁ = min a (h₂ + m).
If h₁ = a, a target arm supplies the requested chip. Otherwise the middle
slot is full and supplies it. Whenever the partner loses a chip through the
middle slot, h₂ = b, so one of its arms replenishes that chip. This formula
also has h₁ = h₂ when m = 0, which is exactly what is needed on a closed
face where the two centres contract.
Core size #
ConfigThree n p is generic in the core size: n vertices and p slots.
The genus-five atlas instantiates it at ConfigThree 8 12; it also supports
the instance ConfigThree 10 15. The
whole file is size-free except for closedConstruction, which needs 0 < n
and takes it as a hypothesis, the same one
Guarding.GuardingSet.closedConstruction carries.
Unordered incidence #
The slot e joins u and v, in either orientation.
Equations
Instances For
Equations
A slot has one pair of endpoints: two Ends readings of the same slot
agree as unordered pairs.
Two slots with different first endpoints are different slots.
Two slots at the same vertex with different far endpoints are different slots.
Small arithmetic reused from the row-11 step lemmas #
One chip leaves an arm exactly when its ramp has positive height.
Instances For
Splitting a slot sum over the finitely many active slots #
One slot's endpoint terms #
The two endpoint terms one core slot contributes at one core vertex.
This is literally the summand of ConfigurationCommon.endpointContribution.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The value of one slot's endpoint terms at a vertex where the potential is
a and whose far end carries potential b.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Contribution at a centre from one of its arms, whose far endpoint carries potential zero.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A ramp that goes down from the centre never removes a chip there.
A ramp that goes up from the centre removes exactly one chip there when its height is positive, and nothing when it is flat.
One slot's contribution to a different contracted class #
An arm of height h from a centre off the class of r removes
drain h chips from the class of its far endpoint.
The configuration data #
Membership in a displayed four-chip set. Spelled out so that the fields
of ConfigThree can refer to it.
Equations
Instances For
Equations
The lookup data of one AR configuration-3 row, together with exactly the incidence facts the calculation uses.
The four chips carry the divisor. Each declared centre v is chip free and
paired with partner v, joined to it by middleSlot v, and its two other
slots firstArm v, secondArm v end on the chips firstChip v,
secondChip v.
As in ConfigTwo, the centres are named by an explicit predicate isCenter
rather than "every chip-free vertex", so that a row combining several local
pictures can declare only some of its chip-free vertices to be
configuration-3 centres. A row all of whose chip-free vertices are centres
gets the whole closed-orthant construction from closedConstruction.
- core : Utilities.Certificate.ExplicitPotential.Core n p
The finite core graph carrying configuration three and its designated chip vertices.
- chipOne : Fin n
The first of the four designated chip vertices of configuration three.
- chipTwo : Fin n
The second of the four designated chip vertices of configuration three.
- chipThree : Fin n
The third of the four designated chip vertices of configuration three.
- chipFour : Fin n
The fourth of the four designated chip vertices of configuration three.
The Boolean selector of the paired center vertices, disjoint from the chip vertices.
The opposite center in the involutive pairing of center vertices.
The core slot connecting a center to its first assigned chip vertex.
The core slot connecting a center to its second assigned chip vertex.
The middle slot joining a pair of centers, shared by the two partners.
The chip vertex reached from a center along its first arm.
The chip vertex reached from a center along its second arm.
- middleSlot_partner (v : Fin n) : self.isCenter v = true → self.middleSlot (self.partner v) = self.middleSlot v
Instances For
The four displayed chip vertices.
Equations
Instances For
A declared centre carries no chip.
Incidence facts transported to a degenerate spec #
The middle slot read from the partner side.
The displayed divisor #
The indicator of "the chip at v sits in the contracted class of r".
Equations
Instances For
One chip on each of the four displayed vertices.
Equations
- cfg.divisor d = AtanasovRanganathan.Configurations.fourChipDivisor (d.coreVertex cfg.chipOne) (d.coreVertex cfg.chipTwo) (d.coreVertex cfg.chipThree) (d.coreVertex cfg.chipFour)
Instances For
A slot from a chip-free class to a chip cannot have collapsed.
The two interpolation heights #
The smaller length of the two arms incident to the selected center.
Instances For
Height at the partner centre.
Instances For
Height at the requested centre.
Equations
- cfg.targetHeight d center = min (cfg.armMin d center) (cfg.partnerHeight d center + d.length (cfg.middleSlot center))
Instances For
Which core classes a chip-free centre can meet #
From one of the two chip-free centres, every step either lands on a chip or stays in that two-vertex pair.
A zero-edge class with no chip consists only of the two centres in one configuration-3 component.
A zero-divisor core class is contained in its displayed centre pair.
The five active slots of a configuration-3 component #
Splitting the endpoint sum #
Both endpoint terms of a collapsed middle slot cancel.
The interpolated potentials #
The closed-face core potential for configuration 3.
Equations
Instances For
The potential used when only the target class fires.
Equations
- cfg.targetOnlyPotential d center = AtanasovRanganathan.ConfigurationCommon.centerPotential d center (cfg.targetHeight d center)
Instances For
The three arm contributions at each centre #
Contribution at the requested centre from the middle slot.
Equations
- cfg.middleTargetContribution d center = AtanasovRanganathan.ConfigurationThree.slotValue d center (cfg.middleSlot center) (-↑(cfg.targetHeight d center)) (-↑(cfg.partnerHeight d center))
Instances For
Contribution at the partner from the same interpolated middle slot.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The endpoint contribution at each of the two centres #
The chip actually delivered to each centre #
The Laplacian away from the fired classes #
Effectivity of the residual divisor #
Only the contracted core classes need checking: at a subdivision-interior vertex the interpolated script is nonnegative for free.
The configuration-3 divisor reaches every contracted class #
Configuration 3 at one declared centre. This is the statement a row consumes, one centre at a time, so that several local pictures compose.
Configuration 3 on a closed face. A row every one of whose chip-free vertices is a declared centre gets the whole closed-orthant AR construction.
core_nonempty is the one place in this file where the core size is used at
all. It used to be 0 < 8, discharged by norm_num; it is now a hypothesis,
exactly as in Guarding.GuardingSet.closedConstruction.