The closure of two fragments, read on the base #
The connection pairing evaluates the mixed partition function at
pairClose F G, which is the interface glue of the two fragments'
disjoint union, relabelled to the empty label type. Composing the
closed identification with the colouring recursion writes that value
as the base's summands, summed over its subsets and over the
interface colours.
The lexicographic order on the interface's label type.
Equations
- RS.EdgeSubset.assemblyBaseOrder n = RS.sumLexLinearOrder (Fin (0 + n)) (Fin (n + 0))
Instances For
The same order one stage up.
Equations
- RS.EdgeSubset.assemblyOrderSucc n = RS.sumLexLinearOrder (Fin (0 + n + 1)) (Fin (n + 1 + 0))
Instances For
The order a stage's surviving labels carry.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The order the composition's own label type carries.
Equations
Instances For
The two fragments, moved onto the interface's label type.
Instances For
The closure is the interface glue, relabelled.
The closure's value is the interface glue's constrained value.
The tensor side, split over subsets #
The closing display of RS21's Theorem 6 sums the identity (13) over the Eulerian subsets of the two fragments. Splitting the fragment tensors into their per-subset terms and exchanging the four sums puts the pairing in that form.
A fragment tensor's term at one subset.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The fragment tensor is the sum of its terms.
A tensor term at a good subset is the normalised tensor.
The pair term when the two subsets use the same labels. This is RS21's (13), read on the two fragment tensors' per-subset terms: the pairing is the two circuit-and-matching signs times the colouring sum of the two subsets' agreement.
The diagonal state on the two sides #
The interface colours enter the base as one state on the disjoint
union. Restricting it to either summand and pulling back along that
fragment's relabel gives the colours themselves, which is the form
relabel_edgeSum and edgeSum_disjUnion consume.
The base's colouring sum, split into the two fragments' #
The base is the two fragments' disjoint union, so its colouring sum factors; each factor then comes down to its own fragment along that fragment's relabel.
The base's colouring sum factors.
A half's colouring sum comes down to its own fragment.
The base's colouring sum is the pair's agreement value. This is the composition's side of RS21's (13): the base subset's colouring sum at a diagonal state is exactly the object the pairing identity produces.
Transports of a subset along a relabel #
The colouring recursion and the ledger recursion carry their subsets along equalities of fragments taken at different points: one before the stage's relabel, one after. The two agree.
The base's subsets, split into the two fragments' #
A subset of a disjoint union is a pair of subsets, so the sum over the base's subsets is the double sum the tensor side carries.
The sum over the base's subsets is the double sum.
The base subset a pair of subsets makes.
Equations
- RS.EdgeSubset.closeJoin s₁ s₂ = RS.joinParts s₁ s₂
Instances For
The base subset is interface-paired exactly when the two fragments' subsets use the same labels. This is (14)'s hypothesis, read on the pair.
The matchings under a relabel #
RS21's (13) produces its matchings on the fragments' own subsets;
(14) asks for them on the halves of the base subset, which live one
relabel away. The used labels correspond (usedLabRelabelEquiv) and
the chord matching shifts with them (cutMatching_relabelUp_edge);
what is left is the sign.
A matching's sign survives a transport. The two fragments' matchings may therefore be read on the base subset's halves, where (14) wants them.
The interface identification acts by the interface map. It
is therefore the same identification exists_eulerianPosition uses,
read on the two halves.
The pair's transition data, read on the base #
(14) asks for the two systems on the halves of the base subset. The fragments' own systems get there by the relabel and the half identification, and neither move changes the open circuit count.
The first fragment's system, read on the base subset's left half.
Equations
- RS.EdgeSubset.pairRelLeft hc₁ hc κ₁ = RS.EdgeSubset.relOfEq ⋯ κ₁
Instances For
The second fragment's system, read on the base subset's right half.
Equations
- RS.EdgeSubset.pairRelRight hc₂ hc κ₂ = RS.EdgeSubset.relOfEq ⋯ κ₂
Instances For
Reading the first system on the half leaves its circuit count alone.
Reading the second system on the half leaves its circuit count alone.
A matching with the chord pairings is the chord matching, on pairings. RS21's (13) records its matchings pointwise; (14) wants them as an equality of pairing maps.
The used labels are untouched by an equality of subsets, as an order isomorphism — the form the sign transport wants.
Equations
Instances For
The used labels shift through a relabel, as an order isomorphism.
Equations
- RS.EdgeSubset.usedLabRelabelOrderIso e F = { toEquiv := RS.usedLabRelabelEquiv e F, map_rel_iff' := ⋯ }
Instances For
The left relabel, as an order isomorphism.
Equations
Instances For
The right relabel, as an order isomorphism.
Equations
Instances For
The base subset's left half has the first subset's used labels.
Equations
- RS.EdgeSubset.usedLabLeftCloseJoin hc hc₁ = (RS.EdgeSubset.usedLabOrderIsoOfEq ⋯).trans (RS.EdgeSubset.usedLabRelabelOrderIso (RS.EdgeSubset.leftIso t) { flags := s₁, pairing_mem := hc₁ })
Instances For
The base subset's right half has the second subset's used labels.
Equations
- RS.EdgeSubset.usedLabRightCloseJoin hc hc₂ = (RS.EdgeSubset.usedLabOrderIsoOfEq ⋯).trans (RS.EdgeSubset.usedLabRelabelOrderIso (RS.EdgeSubset.rightIso t) { flags := s₂, pairing_mem := hc₂ })
Instances For
The base subset's left half has as many used labels as the first subset.
The base subset's right half has as many used labels as the second subset.
The chord involution on the base subset's left half is the first subset's, shifted by the relabel.
The chord involution on the base subset's right half is the second subset's, shifted by the relabel.
The subset-equality transport keeps the label.
The left transport acts by the relabel on labels.
The right transport acts by the relabel on labels.
The left transport's inverse acts by the relabel.
The right transport's inverse acts by the relabel.
The transported matching keeps the chord record, on the base subset's left half.
The transported matching keeps the chord record, on the base subset's right half.
The two interface identifications agree. (14) states its alternation against the base subset's halves, (13) against the two fragments' own subsets; the transports carry one to the other.
The stage data a pair of subsets makes #
Everything (14) reads off the composition is a function of this one object: the base subset, its interface pairing, and the two systems carried over from the fragments.
The stage data a pair of subsets makes.
Equations
- One or more equations did not get rendered due to their size.
Instances For
RS21's (14), read on a pair of subsets. The two fragments' circuit-and-matching signs multiply to the composition's own sign, with one extra factor for each closing cut the subsets carry.
The pair term, with its constant named. RS21's (13) read against (14): the pairing of the two fragments' terms at a pair of subsets is the composition's own circuit sign, one factor for each cut the pair closes, times the colouring sum of their agreement.
Restricting the composition's data to the two fragments #
The base's own transition data restrict to its two halves and descend to the fragments; these are the data RS21's (13) is applied at, so that the orientations on the two sides are the composition's own.
The base's system, restricted to the first fragment.
Equations
- RS.EdgeSubset.pairRelLeftDown hc hc₁ κ = RS.relabelTransDown (RS.EdgeSubset.leftIso t).toEquiv { flags := s₁, pairing_mem := hc₁ } (RS.EdgeSubset.relOfEq ⋯ (RS.leftRel κ))
Instances For
The base's system, restricted to the second fragment.
Equations
- RS.EdgeSubset.pairRelRightDown hc hc₂ κ = RS.relabelTransDown (RS.EdgeSubset.rightIso t).toEquiv { flags := s₂, pairing_mem := hc₂ } (RS.EdgeSubset.relOfEq ⋯ (RS.rightRel κ))
Instances For
Replacing an orientation off the internal flags. The two laws bind only internal flags, so the directions elsewhere may be given by any function at all.
Equations
Instances For
At an internal flag the replacement keeps the direction.
Off the internal flags the replacement is the given function.
The colouring sum sees only the internal directions #
RS21's colouring sum is built from the in-flag list at each vertex, and a flag is on that list only if it is attached to the vertex — that is, only if it is internal. So the sum does not see how an orientation directs a labelled end, and in particular is unchanged by the port flips (13) performs.
The in-flag list sees only the internal directions.
The odd sign at a vertex sees only the internal directions.
The odd list at a vertex sees only the internal directions.
RS21's colouring sum sees only the internal directions. It is therefore unchanged by a port flip.
Replacing off the internal flags costs the colouring sum nothing.
The composition's value at any canonical family #
The composition's constrained value does not depend on which canonical data compute it, so the colouring recursion may be run from whichever family is convenient — in particular from one built out of the two fragments' own data.
The composition's constrained value at an arbitrary canonical family.
At the composition every orientation is path-canonical. So any family of transition data there is a canonical one.
The composition's constrained value at an arbitrary family. No canonicality hypothesis is needed: at an empty label type there are no chords to order.
The alternation, in chain-direction form #
(13) reports its alternation on the chord matchings' tails; the glue reads it on the chain directions. At a chain label the two are the same thing, negated.
The chord matching's tail at a chain label is that label's chain direction, reversed.
Lifting a data family across an open cut #
The downward direction is unglueDataOpen; this is its upward
counterpart. Where the family's own orientation directs the two
rewired ends oppositely — which is what RS21's step 1 arranges — the
glue applies; elsewhere the value is junk the identity never reads.
The upward glue of a data family, at an open cut.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The upward glue of a data family, at a closing cut. A closing cut rewires no directions, so no compatibility is needed; what it does need is the lift's bit, since a glued subset has two lifts and they are different subsets of the base.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A data family under a relabel, upward. The counterpart of
relabelDataDown.
Equations
- One or more equations did not get rendered due to their size.
Instances For
One stage of the upward lift. The mirror of
stepDataDown: dispatch on whether the stage's cut closes, glue the
family across it, and relabel up.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The upward lift over the whole interface. The mirror of
pushData, carrying one bit for each stage — the lift the closing
cuts leave undetermined.
Equations
- RS.EdgeSubset.liftData 0 x_4 x_5 𝒟 = RS.EdgeSubset.relabelDataUp RS.EdgeSubset.baseIso 𝒟
- RS.EdgeSubset.liftData n.succ V bits 𝒟 = RS.EdgeSubset.liftData n (RS.EdgeSubset.stepFragment n V) (fun (a : Fin n) => bits a.castSucc) (RS.EdgeSubset.stepDataUp n V (bits (Fin.last n)) 𝒟)
Instances For
The colouring sum under a matching-equal system #
The single-cut round trips rebuild the system rather than storing
it, so they hold only up to MatchEq. The colouring sum reads the
system only through the partner of an internal flag, so it does not
tell the difference.
The odd sign function sees only the internal partners.
The odd pair function sees only the internal partners.
The in-flag list sees only the internal directions, across two systems: it is cut out by the directions at the flags attached to the vertex, and those are internal.
The odd sign at a vertex, under a matching-equal system, from the internal directions alone.
The odd list at a vertex, under a matching-equal system, from the internal directions alone.
RS21's colouring sum under a matching-equal system, from the internal directions alone. The sum reads the directions only at the flags attached to a vertex, so two orientations that agree there compute it alike.
The summand under a change of family #
Two families whose data at a subset are matching-equal at the same directions give that subset the same summand. This is the form in which the round trip is read.
A transported system has the same partner map.
A transported orientation has the same directions.
The open glue's value where it applies. Stated with the lifted subset's own proofs, so that the call site may supply them rather than reconstruct the definition's.
The closing glue's directions. A closing cut rewires nothing, so the glued orientation reads a surviving flag exactly as the family at the lift does.
The open glue's directions where it applies.
A family at equal subsets has the same partner map. The two values have different types, so the equality is read on the partner map rather than on the data.
A family at equal subsets has the same directions.
The single-cut round trip, at an open cut. Lifting a family
across the cut and pushing it back returns the system up to
MatchEq — the glue rebuilds it rather than storing it.
The single-cut round trip on directions, at an open cut. At a surviving flag the round trip returns the direction on the nose.
The single-cut round trip, at a closing cut. With the bit
the subset itself determines, lifting and pushing back returns the
system up to MatchEq.
The single-cut round trip on directions, at a closing cut.
The relabel round trip is the identity on families.
The transport round trip is the identity on families.