Directed perfect matchings and the rotation of their union #
A directed perfect matching is a fixed-point-free involution together with a choice of tail at each edge. Two of them on the same set have a union in which every point carries one arc of each, so the union decomposes into alternating cycles.
When the union is Eulerian — at every point one arc enters and one
leaves — the cycles are coherently directed, and following the arc
that leaves is a permutation whose cycles are exactly the union's
components. That permutation carries the second matching to the
first, direction and all, and its sign is (-1) to the number of
components, because every component has even length.
This is the sign lemma the Gram identity for mixed partition
functions runs on: the product of two matchings' signs is (-1) to
the number of components of their union.
A directed perfect matching: a fixed-point-free involution with a chosen tail at each edge.
- edge : α → α
The matched partner.
The partner map is an involution.
No point is its own partner.
- tail : α → Bool
Whether the arc at this point leaves it.
Each arc leaves exactly one of its two ends.
Instances For
The union is Eulerian: at every point exactly one of the two matchings' arcs leaves it.
Instances For
Along an Eulerian union the second matching's tails are the first's, flipped.
The rotation lands on the other end of the arc it followed.
The rotation is undone by the backward step.
And undoes it.
The rotation of an Eulerian union, as a permutation.
Instances For
The rotation permutation acts by following the arc that leaves.
The rotation reaches the first matching's partner. Together with the next lemma this is the statement that the rotation's orbits are exactly the connected components of the union: one step of the rotation, forwards or backwards, crosses each of the two arcs at a point.
The rotation reaches the second matching's partner.
A directed perfect matching forces an even ground set: the partner map exchanges the tails with the heads.
The partner map exchanges tails and heads.
Equations
Instances For
The ground set is twice the tails.
Symmetries of a directed matching are even #
A permutation commuting with the partner map and preserving the tails is determined by its restriction to the tails, and the restriction to the heads is that same permutation conjugated by the partner map. The two restrictions therefore have equal sign, and their product — the whole permutation — has sign one.
A symmetry of a directed matching: it commutes with the partner map and fixes each point's direction.
It commutes with the partner map.
It preserves the tails.
Instances For
A symmetry of a directed matching is even.
The rotation carries one matching to the other #
The rotation conjugates the second matching into the first.
The rotation carries the second matching's directions to the first's.
Its sign counts the components #
The rotation's sign is (-1) to its number of orbits. The
orbits are the components of the union, and each has even length, so
this is the sign lemma for a matching pair.
Every carrier has the rotation's sign #
A permutation carrying one directed matching to the other differs from the rotation by a symmetry of the target, so all carriers share the rotation's sign — and that sign counts the union's components. This is the matching-sign lemma the Gram identity uses.
A permutation carrying one directed matching onto another.
It intertwines the two partner maps.
It matches the directions.
Instances For
A carrier's inverse intertwines the partner maps the other way.
The rotation carries.
Any two carriers have the same sign. They differ by a symmetry of the target, and symmetries are even. No Eulerian hypothesis is needed: this is what makes a directed matching's sign well defined.
A carrier always exists #
RS21 speaks of "a permutation that sends M(ω,κ) to the standard
matching" without exhibiting one. Any bijection between the two
matchings' tails extends over the partner maps to a carrier, and
the tails are half the ground set on both sides, so such a
bijection exists whenever the ground sets agree.
The carrier built from a bijection of tails: send a tail where the bijection does, and a head to the partner of its tail's image.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The tail bijection's extension carries.
A carrier exists between any two directed matchings on the same set.
The sign of a directed matching #
RS21 fixes a reference matching — the one with arcs
(i₁,i₂),…,(i_{|S|−1},i_{|S|}) — and takes a matching's sign to be
that of any permutation carrying it to the reference. Well
definedness is sign_eq_of_carries_pair. What the Gram identity
uses is not the sign itself but the product of two of them, and
that product is the sign of a carrier between them — independent of
which reference was fixed.
Carriers compose.
Carriers invert.
The sign of a directed matching against a reference.
Equations
- R.sgnRel M = Equiv.Perm.sign (Classical.choose ⋯)
Instances For
The sign is that of any carrier to the reference.
The product of two matchings' signs is the sign of a carrier between them, whatever reference was fixed.
The interface matching #
Composing two fragments identifies each label of the first with the same label of the second. On the labels that is a directed perfect matching in its own right — the one RS21 pairs with the chord matching to form the union whose components count the circuits the gluing closes.
The interface matching: each label of one side paired with the same label of the other.
Equations
- RS.DirMatching.interfaceMatching γ = { edge := Sum.swap, edge_invol := ⋯, edge_ne := ⋯, tail := Sum.isLeft, tail_flip := ⋯ }
Instances For
The interface matching pairs a label with its copy on the other side.
Its arcs are directed out of the left side.
The standard matching #
RS21 fixes the matching with arcs (i₁,i₂),…,(i_{|S|−1},i_{|S|})
on S = {i₁ < ⋯ < i_{|S|}}. On Fin (2m) that is the pairing of
2j with 2j+1, directed upward; on any linearly ordered set of
even size it is that one transported along the order isomorphism.
Transport a directed matching along an equivalence.
Equations
Instances For
The standard directed matching on Fin (2m): 2j paired
with 2j+1, directed upward.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The standard directed matching on a linearly ordered set of even size.
Equations
- RS.DirMatching.stdMatching hcard = RS.DirMatching.map (monoEquivOfFin α hcard).toEquiv (RS.DirMatching.finStd m)
Instances For
Transporting a matching #
The two fragments of a composition carry matchings on their own used labels. Comparing them means transporting one along the bijection the shared labelling gives, and the sign against a transported reference is unchanged.
A carrier transports along a bijection.
The sign is unchanged by transport.
The standard matching is natural in the order.
The two fragments' signs, on a common reference. With the second matching transported along an order isomorphism of the two used-label sets, the product of the two signs is the sign of a carrier between them — reference-free, as RS21's Lemma 11 needs.
RS21's Lemma 11 for a composition: with the union of the two
fragments' matchings Eulerian, the product of their signs is (-1)
to the number of components of that union.
Reversing one arc #
RS21's invariance (12) turns on the observation that inverting a
directed trail changes M(ω,κ) by reversing the direction of one
arc, and that this flips the matching's sign. Reversing an arc
composes any carrier with the transposition of that arc's two ends.
Reverse the direction of one arc, leaving the pairing alone.
Equations
Instances For
The reversed matching's directions, pointwise.
The arc-reversing transposition commutes with the pairing.
A carrier for the reversed matching: compose with the transposition of the reversed arc's two ends.
Reversing an arc flips the sign — RS21's
sgn(M(ω,κ)) = -sgn(M(ω′,κ′)).
Lemma 11 in general #
RS21's Lemma 11 reads the sign of a permutation carrying one
directed matching to another as (-1)^{c(M∪N)+o(M∪N)}, where
o(M∪N) is the parity of the number of arcs that must be reversed
to make the union Eulerian. The Eulerian case above is o = 0;
RS21 reduces to it by (12), which is available for a directed trail
but not for an edge joining two labels directly, so the general
case is what a fragment's matchings need.
The general case follows from the Eulerian one by reversing arcs. Two matchings with the same pairing differ on a set of points closed under that pairing — a set of whole arcs — and reversing those arcs one at a time carries one to the other, flipping the sign each time.
Reversing an arc removes it from the disagreement set and leaves the rest alone.
Repairing a union to Eulerian position #
RS21 puts the union of two matchings into Eulerian position before
applying Lemma 11, by reversing arcs of each. Such a repair always
exists: reversing arcs is free to choose a direction at each point,
subject only to the two arcs at a point pointing opposite ways, so a
repair is exactly a two-colouring of the union — a T : α → Bool
flipped by both pairings.
The union of two fixed-point-free involutions is a disjoint union of
cycles of even length, so it is two-colourable, and the colouring is
built here without decomposing into cycles. Write p for the
composite of the two pairings. A colouring is a function constant on
p-cycles that the first pairing flips, so it is a choice of one
cycle from each pair {C, e₁C} — and those two cycles are always
distinct, by the dihedral relation e₁ p e₁ = p⁻¹ together with the
fixed-point-freeness of both pairings.
The pairing of a matching, as a permutation.
Instances For
The pairing permutation acts by the partner map.
A pairing is its own inverse.
The cycle of a point and the cycle of its partner are distinct. Were they the same, the dihedral relation would place a fixed point of one of the two pairings on that cycle: at the midpoint of the displacement when it is even, one step further when it is odd. This is the even length of the union's cycles, in the only form the repair needs.
The cycle of a point, as a finset.
Equations
- RS.DirMatching.cycleOf p a = {x : α | p.SameCycle a x}
Instances For
Membership in a cycle: being on the same cycle as the base point.
A point lies on its own cycle.
Points on one cycle have the same cycle.
The key of a cycle: the least index of a point on it.
Equations
- RS.DirMatching.cycleKey p a = (Finset.image (⇑(Fintype.equivFin α)) (RS.DirMatching.cycleOf p a)).min' ⋯
Instances For
Points on the same cycle have the same key, so the key names the cycle.
Distinct cycles have distinct keys: a key is attained on its own cycle, and two cycles sharing a point coincide.
Any two matchings admit a common repair to Eulerian
position — RS21's σ₁ and σ₂. The repair leaves both pairings
alone and makes the union alternating.
The direction hypothesis is automatic along an arc of the interface matching: the union being Eulerian at the two identified labels is exactly what the contraction needs.
Contracting a matching at an identified pair #
Gluing one interface pair identifies two labels. On the chord matching that is a contraction: the two labels are removed and their partners are matched to one another, which is the same rewiring the flag model performs on the edge pairing.
The contraction is defined when the two identified labels are not already partners. When they are, gluing closes a circuit instead, and the two labels simply disappear — that dichotomy is what makes the circuit count go up by one exactly once per component of the union.
Directions contract only when the two identified labels carry opposite ones, which is RS21's requirement that the two Eulerian orientations induce an Eulerian orientation of the glued subset.
An excursion through the identified pair has length two.
The contracted partner map: the partners of the two identified points are matched to one another.
Equations
Instances For
The contracted partner map reads only the pairing.
The contracted partner map avoids the two identified points: they are gone from the contracted set.
It is an involution on the survivors.
And fixed-point-free, so it is again a perfect matching.
The contraction of a matching at an identified pair. The two identified points must carry opposite directions, which is what makes the contracted directions consistent — RS21's requirement that the two Eulerian orientations induce an Eulerian orientation of the glued subset.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The interface matching after one identification #
Gluing one interface pair consumes one arc of the interface matching and contracts the chord matching at its two ends. The remaining interface arcs restrict to the surviving labels, and the union of the two matchings stays Eulerian, so the step can be iterated.
The interface matching restricted to the labels surviving the identification of one of its own arcs.
Equations
- N.restrict hN = { edge := fun (x : RS.DirMatching.Surviving i j) => ⟨N.edge ↑x, ⋯⟩, edge_invol := ⋯, edge_ne := ⋯, tail := fun (x : RS.DirMatching.Surviving i j) => N.tail ↑x, tail_flip := ⋯ }
Instances For
The union stays Eulerian after one identification.
One step of the contracted rotation #
One step of the contracted rotation is one or three steps of the original: the contraction short-circuits the two identified labels, so a step that would have landed on one of them instead continues past both. Either way the step stays inside a single orbit of the original rotation, which is what carries orbits across the contraction.
A contracted step stays in one orbit of the original rotation.
The contraction's orbits map to the original's.
The contracted rotation is the original, short-circuited #
A survivor whose rotation step lands on a surviving point takes the same step in the contraction. A survivor whose step lands on one of the two identified points is carried three steps instead: through both of them and out the far side. Those are the only two cases, and together they say the contracted rotation is the original with the identified pair skipped.
The rotation's step at a survivor, in the contraction.
A step landing on a survivor is unchanged.
A step landing on an identified point runs three steps.
The converse: the contraction loses no orbits #
A rotation path between two survivors passes through the identified pair only in excursions of length two, and the contraction takes each such excursion in a single step. So survivors joined by the original rotation are joined by the contracted one, and together with the forward direction the two rotations have the same orbits.
The survivor standing for a point: itself where it survives, and otherwise the partner of the first identified label, which lies on the same orbit as both of them.
Instances For
A point and the survivor standing for it lie on the same cycle of the rotation, so the choice does not move between components.
Survivors joined by the original rotation are joined by the contracted one.
An open glue step preserves the orbit count #
The two directions together say the contraction's orbits are the original's, so gluing a pair whose two labels are not already partners changes neither the components of the union nor their number. That is the half of RS21's circuit-count bookkeeping in which no circuit closes.
The contraction has the same orbits.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An open glue step preserves the number of components.
A closed glue step closes one circuit #
When the two identified labels are already partners in the chord matching, they form a component of the union by themselves: the rotation carries each to the other and nothing else meets them. Gluing that pair closes it into a circuit and removes it, so the number of components drops by exactly one. This is the other half of RS21's circuit-count bookkeeping, and the only half in which a circuit appears.
The restricted rotation is the rotation restricted.
The identified pair is invariant under the rotation, and so is its complement.
The rotation restricted to the identified pair has one orbit.
A closed glue step closes exactly one circuit.
The component count ignores the directions #
The rotation depends on which arc leaves each point, but its orbits do not: one step of either rotation crosses one of the two arcs at a point, and both arcs are visible to the other rotation as well. So the number of components of the union is a function of the two pairings alone.
This is what lets a matching be transported across a construction that changes the directions — a glue, say, which can turn a label into a through-label and so flip the convention that fixes its direction — as long as the pairings correspond.
The number of components does not depend on the directions.
The glue steps, stated on the pairings alone #
The transport from a fragment supplies matchings whose pairings are the contraction's but whose directions come from whatever convention the glued object uses. Since the component count ignores the directions, the two steps can be stated that way, and the transport then has only the pairings to check.
An open glue step, with arbitrary directions.
A closed glue step, with arbitrary directions.
Transporting a pair of matchings along a bijection conjugates the rotation, so the component count is unchanged.
The transported matching's partner map, conjugated by the equivalence.
Transporting a pair of matchings preserves the Eulerian condition.
At a closed pair the contraction is the plain restriction: no surviving point has either identified label as its partner.
The component count of a union #
RS21's c(M ∪ N) is the number of connected components of the union
of two directed matchings, and the union has those components
whatever the directions are: the repair to Eulerian position exists
and the count does not depend on which one is taken. Naming the
count that way removes the Eulerian position from every statement
that only reads it — and that is most of them, the position mattering
only where the signs do.
The number of components of the union of two matchings —
RS21's c(M ∪ N), read at any repair to Eulerian position. It
carries no decidability instance: on a sum type the ambient one is
the sum's own, which is not the one a linear order supplies, and the
two would not match where the recursion compares them.
Equations
- M.unionCount N = RS.orbitCount (⋯.choose.rotPerm ⋯.choose ⋯)
Instances For
The count is what any Eulerian pair with the same pairings counts.
The count depends on the pairings alone.
An empty ground set has no components.
The count survives a relabelling of the ground set.
Lemma 11 across an identification: two matchings whose
directions are opposite along an order isomorphism have signs
multiplying to (-1) to the number of components of their union.
The union read across a two-sided interface #
RS21 reads M(ω₁,κ₁) ∪ M(ω₂,κ₂) on one copy of the label set S,
the two fragments' arcs sharing their ends. The flag model keeps the
two fragments' labels apart, so the same union is read on the sum:
the two chord matchings side by side, against the matching that
identifies the two copies. The two readings count the same
components — one step of the one-copy rotation is one or three steps
of the two-copy one, and the two copies of a label always lie on a
common component.
Two matchings, side by side.
Equations
Instances For
The interface matching across an identification of the two sides' labels.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The union on two copies counts what the union on one copy counts.