The burned set, without Dhar's algorithm #
Dhar's burning algorithm takes (G, D, q) and returns the maximal valid set
A ⊆ V(G) \ {q}; the burned vertices are the complement of A. Every use of
the algorithm in the divisorial-gonality literature is a use of exactly two of
its properties — maximality of A, and the rule "a vertex with fewer chips than
burned incident edges burns" — and both are available without running anything.
The dependency's legal_set_union says legal sets are closed under union,
so the maximal legal subset of V \ {q} is a Finset.sup over a powerset:
maximalLegal G D q— the join of every legalU ⊆ univ.erase q;burned G D q := (maximalLegal G D q)ᶜ— the burned set.
The API below is the whole of Dhar that the tricycle campaign (the accompanying analysis §4.1) ever uses:
legalSet_maximalLegal,subset_maximalLegal_of_legal— maximality;mem_burned_self,mem_burned_of_lt,mem_burned_of_subset_lt,mem_burned_of_mem_burned_adj— the burning rule;sum_burned_le_of_not_mem_burned— the converse rule, which is what turns "vis unburned" into a chip count;qReduced_iff_maximalLegal_eq_empty— the fire consumes everything exactly whenDisq-reduced;mem_maximalLegal_of_qReduced— Lemma 3.5(a) of van Dobben de Bruyn–Smit–van der Wegen, in full generality: aq-reduced divisor's ownqis never burned by a fire started anywhere else.
No algorithm, no termination proof, no fuel. maximalLegal is noncomputable
and is only ever used propositionally; never decide it (blueprint risk R2).
The maximal legal set #
The maximal legal subset of V \ {q}: the join of all of them. It is
legal because legal sets are closed under union (legal_set_union).
Equations
- Utilities.Gonality.maximalLegal G D q = {U ∈ (Finset.univ.erase q).powerset | legalSet G D U}.sup id
Instances For
The burned set of (G, D, q): the complement of the maximal legal set.
This is what Dhar's burning algorithm computes.
Equations
- Utilities.Gonality.burned G D q = (Utilities.Gonality.maximalLegal G D q)ᶜ
Instances For
The join of legal sets is legal.
Maximality: every legal set avoiding q is contained in maximalLegal.
The burned set #
The edges from v into the burned set, as an integer.
The fire consumes everything exactly on q-reduced divisors #
The q-reduced predicate of the chip-firing dependency says, verbatim, that
no nonempty subset of V \ {q} is legal. Hence: the fire started at q
consumes the whole graph exactly when D is q-reduced.
Lemma 3.5(a) of van Dobben de Bruyn–Smit–van der Wegen #
If the fire started at w leaves anything unburned, then a q-reduced
divisor's own base point q is among the survivors.
This is Lemma 3.5(a) of van Dobben de Bruyn–Smit–van der Wegen, in the
generality in which it is true: the maximal legal set is legal and nonempty, and
a q-reduced divisor admits no nonempty legal set avoiding q.
Lemma 3.5(a), assembled: for a positive-rank q-reduced divisor and a
chip-free vertex w, the vertex q is not burned by the fire started at w.
Opacity #
maximalLegal is a Finset.sup over the powerset of univ.erase q. Left
reducible, any isDefEq check between two x ∈ burned G D q types whose
vertices are closed terms (a Fin numeral, a Sum.inl, a Fin.mk) falls
through congruence and starts evaluating Finset.univ, List.erase and
instDecidableEqSum.decEq on the subdivision vertex type. Since the
whole point of the design is that maximalLegal is used propositionally only
sealing both definitions costs nothing and makes every such
comparison structural. Everything above this line is stated and proved before
the seal; nothing below may unfold either definition.