Documentation

Complexitylib.Classes.PCP.Internal.CloudCount

A cloud, by counting #

Degree reduction rotates inside a cloud through the cloud's enumeration: the half-edge it starts from is located by List.idxOf, and the one it lands on is read off by position. Neither operation is available to an algorithm, which can only count. This module replaces both by counts of half-edge numbers.

The cloud is enumerated in order of those numbers, so a half-edge's position is the number of smaller numbers in the cloud, and the half-edge at a position is the one whose number has that many smaller numbers below it.

Main definitions #

Main results #

The numbers of the half-edges attached to a vertex.

Equations
Instances For
    @[simp]
    theorem Complexity.ConstraintGraph.mem_cloudCodes {α : Type} (G : ConstraintGraph α) {v : Fin G.numVerts} {c : } :
    c G.cloudCodes v ∃ (p : G.HalfEdge), G.owner p = v G.halfCode p = c

    Counting the smaller numbers of a cloud is counting its smaller half-edges.

    A half-edge's position in its cloud is a count.

    The half-edge at a position is named by the count that reaches it.