The Concrete Loopy Evaluator
Abstract
A concrete labelled evaluator realizes the ordinary Loopy polynomial and its source recursion laws.
A pending edge is an ordered endpoint pair used to encode an undirected edge occurrence. The edge list retains parallel occurrences. A self-pair is a pending loop, and the separate accumulator stores loops already consumed by the recursion. The definitions below all belong to this source module even though Lean uses the shared LoopyDegreeSequence namespace.
Definition 1.1 (Pending edge occurrences).
Formalization. D5/S3/Factorization/Combinatorics/LoopyEvaluator.Edge (✓ std3).
Source. Repository-derived.
Acknowledgement. Anatol Kirillov, Gleb Nenashev, Boris Shapiro, and Arkady Vaintrob (2026). The Loopy Polynomial: from Tutte’s Universal V-Function to Bizonotopal Geometry. URL: https://arxiv.org/abs/2609.07728v1.
Commentary.
Edge is Nat x Nat. The two coordinates are endpoint labels; orientation is representation data, not graph data.
Definition 1.2 (The ordinary Loopy polynomial ring).
Formalization. D5/S3/Factorization/Combinatorics/LoopyEvaluator.LoopyPolynomial (✓ std3).
Source. Repository-derived.
Acknowledgement. Anatol Kirillov, Gleb Nenashev, Boris Shapiro, and Arkady Vaintrob (2026). The Loopy Polynomial: from Tutte’s Universal V-Function to Bizonotopal Geometry. URL: https://arxiv.org/abs/2609.07728v1.
Commentary.
LoopyPolynomial is the multivariate polynomial ring, indexed by natural loop counts, over univariate integer polynomials in the deletion variable.
Definition 1.3 (Valid finite graph encodings).
Formalization. D5/S3/Factorization/Combinatorics/LoopyEvaluator.Valid (✓ std3).
Source. Repository-derived.
Acknowledgement. Anatol Kirillov, Gleb Nenashev, Boris Shapiro, and Arkady Vaintrob (2026). The Loopy Polynomial: from Tutte’s Universal V-Function to Bizonotopal Geometry. URL: https://arxiv.org/abs/2609.07728v1.
Commentary.
Valid V E ell says that both endpoints of every occurrence in E lie in V and that ell is zero outside V. It imposes no simplicity, connectedness, nonemptiness or looplessness condition.
Definition 1.4 (Contract one endpoint label).
Formalization. D5/S3/Factorization/Combinatorics/LoopyEvaluator.contractVertex (✓ std3).
Source. Repository-derived.
Acknowledgement. Anatol Kirillov, Gleb Nenashev, Boris Shapiro, and Arkady Vaintrob (2026). The Loopy Polynomial: from Tutte’s Universal V-Function to Bizonotopal Geometry. URL: https://arxiv.org/abs/2609.07728v1.
Commentary.
contractVertex a b sends b to a and fixes every other label.
Definition 1.5 (Contract a pending occurrence).
Formalization. D5/S3/Factorization/Combinatorics/LoopyEvaluator.contractEdge (✓ std3).
Source. Repository-derived.
Acknowledgement. Anatol Kirillov, Gleb Nenashev, Boris Shapiro, and Arkady Vaintrob (2026). The Loopy Polynomial: from Tutte’s Universal V-Function to Bizonotopal Geometry. URL: https://arxiv.org/abs/2609.07728v1.
Commentary.
contractEdge applies contractVertex a b to both endpoints, so remaining parallel copies and loops are transported occurrence by occurrence.
Definition 1.6 (Accumulate one pending loop).
Formalization. D5/S3/Factorization/Combinatorics/LoopyEvaluator.addLoop (✓ std3).
Source. Repository-derived.
Acknowledgement. Anatol Kirillov, Gleb Nenashev, Boris Shapiro, and Arkady Vaintrob (2026). The Loopy Polynomial: from Tutte’s Universal V-Function to Bizonotopal Geometry. URL: https://arxiv.org/abs/2609.07728v1.
Commentary.
addLoop ell a updates only coordinate a from ell(a) to ell(a)+1.
Definition 1.7 (Merge loop data during contraction).
Formalization. D5/S3/Factorization/Combinatorics/LoopyEvaluator.contractLoops (✓ std3).
Source. Repository-derived.
Acknowledgement. Anatol Kirillov, Gleb Nenashev, Boris Shapiro, and Arkady Vaintrob (2026). The Loopy Polynomial: from Tutte’s Universal V-Function to Bizonotopal Geometry. URL: https://arxiv.org/abs/2609.07728v1.
Commentary.
contractLoops ell a b puts ell(a)+ell(b)+1 at a, puts zero at discarded label b, and fixes all other coordinates. The added one retains the selected nonloop edge occurrence as a loop.
Definition 1.8 (Relabel one pending occurrence).
Formalization. D5/S3/Factorization/Combinatorics/LoopyEvaluator.relabelEdge (✓ std3).
Source. Repository-derived.
Acknowledgement. Anatol Kirillov, Gleb Nenashev, Boris Shapiro, and Arkady Vaintrob (2026). The Loopy Polynomial: from Tutte’s Universal V-Function to Bizonotopal Geometry. URL: https://arxiv.org/abs/2609.07728v1.
Commentary.
relabelEdge transports both endpoints along an ambient permutation.
Definition 1.9 (Relabel accumulated loops).
Formalization. D5/S3/Factorization/Combinatorics/LoopyEvaluator.relabelLoops (✓ std3).
Source. Repository-derived.
Acknowledgement. Anatol Kirillov, Gleb Nenashev, Boris Shapiro, and Arkady Vaintrob (2026). The Loopy Polynomial: from Tutte’s Universal V-Function to Bizonotopal Geometry. URL: https://arxiv.org/abs/2609.07728v1.
Commentary.
relabelLoops transports the accumulator contravariantly along the same permutation.
Definition 1.10 (Combine disjoint loop accumulators).
Formalization. D5/S3/Factorization/Combinatorics/LoopyEvaluator.unionLoops (✓ std3).
Source. Repository-derived.
Acknowledgement. Anatol Kirillov, Gleb Nenashev, Boris Shapiro, and Arkady Vaintrob (2026). The Loopy Polynomial: from Tutte’s Universal V-Function to Bizonotopal Geometry. URL: https://arxiv.org/abs/2609.07728v1.
Commentary.
unionLoops is pointwise addition; Valid and disjointness ensure that it represents the disjoint union.
Definition 1.11 (Deletion-contraction on occurrences).
Formalization. D5/S3/Factorization/Combinatorics/LoopyEvaluator.loopyAux (✓ std3).
Source. Repository-derived.
Acknowledgement. Anatol Kirillov, Gleb Nenashev, Boris Shapiro, and Arkady Vaintrob (2026). The Loopy Polynomial: from Tutte’s Universal V-Function to Bizonotopal Geometry. URL: https://arxiv.org/abs/2609.07728v1.
Commentary.
With no pending edges, loopyAux is the product over all retained vertices of x indexed by the accumulated loop count, including x_0 for an isolate. A pending loop is moved into the accumulator. A selected nonloop contributes the sum of its contraction branch and t times its deletion branch; contraction erases the second vertex and retains the selected occurrence as an accumulated loop.
Definition 1.12 (The concrete ordinary Loopy evaluator).
Formalization. D5/S3/Factorization/Combinatorics/LoopyEvaluator.loopy (✓ std3).
Source. Repository-derived.
Acknowledgement. Anatol Kirillov, Gleb Nenashev, Boris Shapiro, and Arkady Vaintrob (2026). The Loopy Polynomial: from Tutte’s Universal V-Function to Bizonotopal Geometry. URL: https://arxiv.org/abs/2609.07728v1.
Commentary.
loopy is loopyAux with the same finite carrier, occurrence list and loop accumulator; its default accumulator is identically zero.
Theorem 1.13 (Representation independence and the seven evaluator laws).
Proof. Machine-checked in Lean as D5/S3/Factorization/Combinatorics/LoopyEvaluator.loopy_spec (✓ std3). ∎
Source. Repository-derived.
Acknowledgement. Anatol Kirillov, Gleb Nenashev, Boris Shapiro, and Arkady Vaintrob (2026). The Loopy Polynomial: from Tutte’s Universal V-Function to Bizonotopal Geometry. URL: https://arxiv.org/abs/2609.07728v1.
Commentary.
The seven visible clauses are: permutation relabelling invariance; endpoint-orientation invariance under Valid; adjacent occurrence exchange under Valid; pending-loop transfer; invariance under any list permutation under Valid; the arbitrary selected-occurrence loop/deletion-contraction recurrence; and multiplication on disjoint unions. These clauses formalize Definition 1.1 and Proposition 2.1 in the labelled list representation. The proof of their representation bridge is repository-derived.
References
- Truth anchor:
D5/S3/Factorization/Combinatorics/LoopyEvaluator.Edge - Truth anchor:
D5/S3/Factorization/Combinatorics/LoopyEvaluator.LoopyPolynomial - Truth anchor:
D5/S3/Factorization/Combinatorics/LoopyEvaluator.Valid - Truth anchor:
D5/S3/Factorization/Combinatorics/LoopyEvaluator.addLoop - Truth anchor:
D5/S3/Factorization/Combinatorics/LoopyEvaluator.contractEdge - Truth anchor:
D5/S3/Factorization/Combinatorics/LoopyEvaluator.contractLoops - Truth anchor:
D5/S3/Factorization/Combinatorics/LoopyEvaluator.contractVertex - Truth anchor:
D5/S3/Factorization/Combinatorics/LoopyEvaluator.loopy - Truth anchor:
D5/S3/Factorization/Combinatorics/LoopyEvaluator.loopyAux - Truth anchor:
D5/S3/Factorization/Combinatorics/LoopyEvaluator.loopy_spec - Truth anchor:
D5/S3/Factorization/Combinatorics/LoopyEvaluator.relabelEdge - Truth anchor:
D5/S3/Factorization/Combinatorics/LoopyEvaluator.relabelLoops - Truth anchor:
D5/S3/Factorization/Combinatorics/LoopyEvaluator.unionLoops