Contraction up to slot reversal #
RowProof.ClosedContraction derives a contracted row's open-orthant
obligation from a closed-orthant proof of the core it contracts from. Its
ContractionData matches slots with orientation: tail_eq and head_eq
demand that the contracted slot's tail is the tail, not the head.
That is the binding constraint in practice. Of the 94 non-trivalent genus-four rows, only 27 admit an orientation-exact contraction from a proved trivalent row; rows 010, 011, 031, 035 and 070 all sit under the proved row 099 yet need slots flipped. Reversing a slot does not change the subdivided graph at all — the path is the same, walked the other way — so this is pure bookkeeping, and this file removes it.
The route is the one Certificate/SubdivisionIso.lean already supports:
reorient the target spec, contract there, and transport back along the
identity relabeling whose reversed field records the flips.
Reverse a chosen set of slots of a core.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reversing slots preserves looplessness.
The same subdivision, with a chosen set of slots read backwards.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reorientation is an identity relabeling: same vertices, same slots, same
lengths, with reversed recording which slots were flipped.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Contraction up to slot reversal.
A closed-orthant row proof for core yields the open-orthant obligation for
any core' that contracts from it after reorienting some slots of core'.
This is what takes the census reduction from the 27 orientation-exact rows to
all 94.