Recursive reduction of finite cyclic one-face words #
The face-merging recursion deliberately retains each deleted separator as a cyclically adjacent inverse pair. This file supplies the next normalization phase: repeatedly cancel every such pair while preserving a validity-bundled normalization chain. If the final pair is the whole word, the result is the agreed ordinary-valid two-monogon sphere presentation.
The unique face of a presentation whose stored face list has length one.
Equations
Instances For
Rewrite an arbitrary one-face presentation using its unique stored boundary word.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every presentation with one stored face is signed-isomorphic to its explicit one-word spelling.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Relabel a finished Fin-indexed one-face word directly to the existing typed one-face
adapter. This is the final bridge used by canonical normalization; it does not introduce a
second spelling of any Lean-Eval representative.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Signed version of the finished one-face adapter. In addition to renaming edge names, this allows each finished block edge to be reversed independently before landing at the single project-owned canonical word.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A finished orientable word, up to its explicit edge relabeling and cyclic rotation, gives a normalization result at the exact existing orientable canonical presentation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A finished nonorientable word, up to its explicit edge relabeling and cyclic rotation, gives a normalization result at the exact existing nonorientable canonical presentation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Signed finished orientable word adapter, permitting independent orientation normalization of every handle and boundary-loop edge.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Signed finished nonorientable word adapter, permitting independent orientation normalization of every crosscap and boundary-loop edge.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The two possible signed spellings of an adjacent inverse pair.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Data exposing a cyclically adjacent inverse pair in a one-face word.
- edge : Fin n
The
edgedeclaration. - tail : List (SurfaceCellComplex.SignedDart (Fin n))
The
taildeclaration. - negativeFirst : Bool
The
negativeFirstdeclaration.
Instances For
A one-face word has no cyclically adjacent inverse pair.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A word with fewer than two darts cannot contain a cyclically adjacent inverse pair.
Validity forces the displayed inverse pair's edge to be absent from its remaining tail.
If deleting a displayed pair leaves the empty word, there were no other edge names.
A reduced non-spherical endpoint reached after inverse-pair cancellation.
- edgeCount : ℕ
The
edgeCountdeclaration. - word : List (SurfaceCellComplex.SignedDart (Fin self.edgeCount))
The
worddeclaration. - valid : (Dyck.oneFace self.word).IsSurfaceValid
- reduced : IsPairReduced self.word
- equivalent : NormalizationEquivalent P { presentation := Dyck.oneFace self.word, valid := ⋯ }
Instances For
Cancellation either reaches the canonical sphere presentation or a pair-reduced one-face word.
- sphere {P : ValidPresentation} (equivalent : NormalizationEquivalent P { presentation := twoMonogonSphere, valid := twoMonogonSphere_isSurfaceValid }) : CancellationResult P
- reduced {P : ValidPresentation} (result : ReducedWordResult P) : CancellationResult P
Instances For
Transport a cancellation result backward through a normalization equivalence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Finish a cancellation result once pair-reduced one-face words have a canonical normalizer.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Fuel-bounded implementation of repeated inverse-pair cancellation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Repeatedly cancel cyclically adjacent inverse pairs in an ordinary-valid one-face word.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Merge a connected valid presentation to one face, rewrite that face explicitly as a cyclic word, and cancel every adjacent inverse pair.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The remaining proof obligation after face merging and inverse-pair cancellation: normalize an arbitrary pair-reduced valid one-face word.
- normalize {n : ℕ} (word : List (SurfaceCellComplex.SignedDart (Fin n))) (valid : (Dyck.oneFace word).IsSurfaceValid) : IsPairReduced word → NormalizationResult { presentation := Dyck.oneFace word, valid := valid }
The
normalizedeclaration.
Instances For
A normalizer for pair-reduced words completes the faithful finite-cyclic Gallier--Xu normalization theorem for every connected valid presentation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Certified occurrence decompositions for the remaining pairing reduction #
A signed dart with its orientation represented by a Boolean.
Equations
- LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.dart a false = LeanEval.Topology.ClassificationOfSurfaces.SurfaceCellComplex.SignedDart.pos a
- LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.dart a true = LeanEval.Topology.ClassificationOfSurfaces.SurfaceCellComplex.SignedDart.neg a
Instances For
Boolean orientation of a signed dart.
Equations
- LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.dartNegative (LeanEval.Topology.ClassificationOfSurfaces.SurfaceCellComplex.SignedDart.pos a) = false
- LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.dartNegative (LeanEval.Topology.ClassificationOfSurfaces.SurfaceCellComplex.SignedDart.neg a) = true
Instances For
An edge equivalence equipped with an explicit source-orientation normalization function.
Equations
- LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.signedRelabeling edgeEquiv reverse = { edgeEquiv := edgeEquiv, reverse := reverse }
Instances For
A signed relabeling whose reversal bit is the displayed dart orientation sends that dart to the positive orientation of its renamed edge.
The opposite displayed orientation is normalized to the negative renamed dart.
Exact signed spelling of one boundary loop before final edge-name and sign normalization.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Independent sign normalization sends an arbitrary boundary-loop spelling to the positive carrier, positive hole, negative carrier convention used by the canonical representatives.
Ordinary surface validity reflects through a P1 expansion.
Unoriented edge count is the sum of its positive and negative dart counts.
The four occurrence patterns allowed for one edge of a valid one-face word.
- boundary {n : ℕ} {word : List (SurfaceCellComplex.SignedDart (Fin n))} {a : Fin n} (total : List.count a (List.map edgeOfDart word) = 1) : EdgePattern word a
- positiveCrosscap {n : ℕ} {word : List (SurfaceCellComplex.SignedDart (Fin n))} {a : Fin n} (positive : List.count (SurfaceCellComplex.SignedDart.pos a) word = 2) (negative : List.count (SurfaceCellComplex.SignedDart.neg a) word = 0) : EdgePattern word a
- negativeCrosscap {n : ℕ} {word : List (SurfaceCellComplex.SignedDart (Fin n))} {a : Fin n} (positive : List.count (SurfaceCellComplex.SignedDart.pos a) word = 0) (negative : List.count (SurfaceCellComplex.SignedDart.neg a) word = 2) : EdgePattern word a
- opposite {n : ℕ} {word : List (SurfaceCellComplex.SignedDart (Fin n))} {a : Fin n} (positive : List.count (SurfaceCellComplex.SignedDart.pos a) word = 1) (negative : List.count (SurfaceCellComplex.SignedDart.neg a) word = 1) : EdgePattern word a
Instances For
Every edge name actually used by a residual word still has a surface multiplicity. Unlike
IsSurfaceValid, this predicate permits the ambient Fin type to contain already-grouped edge
names which no longer occur in the residual word.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Ordinary one-face validity implies valid multiplicity for every used edge.
Residual surface multiplicities force the edge of a displayed inverse pair to occur nowhere else in its tail.
Deleting a displayed inverse pair preserves the count of every edge which remains in the tail.
Residual surface multiplicities survive deletion of a displayed inverse pair.
Proof-relevant trace of the residual inverse-pair recursion. Keeping the selected pair at each step is essential when the same reduction is later lifted through an ambient marked word: the erased residual endpoint alone does not say which protected token interval the pair crossed.
- done {n : ℕ} {word : List (SurfaceCellComplex.SignedDart (Fin n))} (reduced : IsPairReduced word) : ResidualPairReductionTrace word word
- cancel {n : ℕ} {word target : List (SurfaceCellComplex.SignedDart (Fin n))} (pair : CancellablePair word) (tail : ResidualPairReductionTrace pair.tail target) : ResidualPairReductionTrace word target
Instances For
Certified result of repeatedly deleting adjacent inverse pairs from a residual word. The ambient edge type is intentionally retained: names belonging to already-extracted blocks may be absent from both the input and output residual words. Its trace records the exact recursion choices for subsequent marked execution.
- reducedWord : List (SurfaceCellComplex.SignedDart (Fin n))
The
reducedWorddeclaration. - trace : ResidualPairReductionTrace sourceWord self.reducedWord
The
tracedeclaration. - multiplicities : HasValidUsedMultiplicities self.reducedWord
- reduced : IsPairReduced self.reducedWord
- count_eq_of_mem (e : Fin n) : e ∈ List.map edgeOfDart self.reducedWord → List.count e (List.map edgeOfDart sourceWord) = List.count e (List.map edgeOfDart self.reducedWord)
Instances For
The endpoint recorded by a residual cancellation trace is pair-reduced.
Residual cancellation never increases word length.
Fuel-bounded residual inverse-pair cancellation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Repeatedly delete every adjacent inverse pair from a residual word while retaining its ambient edge namespace and the surface multiplicities of all surviving names.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every name surviving residual cancellation occurred in the input residual word.
A known surface multiplicity classifies the two signed counts of an edge.
Surface validity classifies every edge as boundary, equally oriented, or oppositely oriented.
A list in which a occurs exactly once can be split at that occurrence, with certified
absence on both sides.
Cyclic data exposing the two occurrences of a twice-used edge.
- firstNegative : Bool
The
firstNegativedeclaration. - secondNegative : Bool
The
secondNegativedeclaration. - between : List (SurfaceCellComplex.SignedDart (Fin n))
The
betweendeclaration. - remainder : List (SurfaceCellComplex.SignedDart (Fin n))
The
remainderdeclaration. - rotated : word ~r dart a self.firstNegative :: self.between ++ dart a self.secondNegative :: self.remainder
- edge_not_mem_between : a ∉ List.map edgeOfDart self.between
- edge_not_mem_remainder : a ∉ List.map edgeOfDart self.remainder
Instances For
Every edge of multiplicity two in a one-face word has a certified cyclic two-occurrence decomposition.
Surface validity supplies a double-occurrence form for every twice-used edge.
Equations
Instances For
In a pair-reduced word, oppositely oriented occurrences cannot be cyclically adjacent.
A twice-used edge displayed with equal orientations.
- negative : Bool
The
negativedeclaration. - between : List (SurfaceCellComplex.SignedDart (Fin n))
The
betweendeclaration. - remainder : List (SurfaceCellComplex.SignedDart (Fin n))
The
remainderdeclaration. - edge_not_mem_between : a ∉ List.map edgeOfDart self.between
- edge_not_mem_remainder : a ∉ List.map edgeOfDart self.remainder
Instances For
An oppositely used edge displayed positive first and negative second.
- between : List (SurfaceCellComplex.SignedDart (Fin n))
The
betweendeclaration. - remainder : List (SurfaceCellComplex.SignedDart (Fin n))
The
remainderdeclaration. - rotated : word ~r SurfaceCellComplex.SignedDart.pos a :: self.between ++ SurfaceCellComplex.SignedDart.neg a :: self.remainder
- edge_not_mem_between : a ∉ List.map edgeOfDart self.between
- edge_not_mem_remainder : a ∉ List.map edgeOfDart self.remainder
Instances For
An orientation-symmetric directed arc between the two opposite occurrences of an edge.
Unlike OppositeOccurrenceForm, this form permits either sign at the beginning, which is the
right induction invariant when descending to a shorter nested pair.
- firstNegative : Bool
The
firstNegativedeclaration. - between : List (SurfaceCellComplex.SignedDart (Fin n))
The
betweendeclaration. - remainder : List (SurfaceCellComplex.SignedDart (Fin n))
The
remainderdeclaration. - edge_not_mem_between : a ∉ List.map edgeOfDart self.between
- edge_not_mem_remainder : a ∉ List.map edgeOfDart self.remainder
Instances For
Forget the positive-first convention of an opposite occurrence form.
Equations
Instances For
Pair reduction makes the directed interval of every opposite arc nonempty.
Two oppositely oriented edge pairs whose endpoints interleave cyclically. The first
distinguished pair is displayed positive then negative. The Boolean records whether the
occurrence of b inside that pair is negative; a signed relabeling will reverse b when
necessary before applying handle extraction.
- bNegativeInside : Bool
The
bNegativeInsidedeclaration. - beforeB : List (SurfaceCellComplex.SignedDart (Fin n))
The
beforeBdeclaration. - beforeNegA : List (SurfaceCellComplex.SignedDart (Fin n))
The
beforeNegAdeclaration. - beforeOutsideB : List (SurfaceCellComplex.SignedDart (Fin n))
The
beforeOutsideBdeclaration. - remainder : List (SurfaceCellComplex.SignedDart (Fin n))
The
remainderdeclaration. - rotated : word ~r SurfaceCellComplex.SignedDart.pos a :: self.beforeB ++ dart b self.bNegativeInside :: self.beforeNegA ++ SurfaceCellComplex.SignedDart.neg a :: self.beforeOutsideB ++ (dart b !self.bNegativeInside) :: self.remainder
- a_not_mem_beforeB : a ∉ List.map edgeOfDart self.beforeB
- a_not_mem_beforeNegA : a ∉ List.map edgeOfDart self.beforeNegA
- a_not_mem_beforeOutsideB : a ∉ List.map edgeOfDart self.beforeOutsideB
- a_not_mem_remainder : a ∉ List.map edgeOfDart self.remainder
- b_not_mem_beforeB : b ∉ List.map edgeOfDart self.beforeB
- b_not_mem_beforeNegA : b ∉ List.map edgeOfDart self.beforeNegA
- b_not_mem_beforeOutsideB : b ∉ List.map edgeOfDart self.beforeOutsideB
- b_not_mem_remainder : b ∉ List.map edgeOfDart self.remainder
Instances For
A positive crosscap edge has an equally oriented occurrence form.
A negative crosscap edge has an equally oriented occurrence form.
An opposite edge has a cyclic spelling with its positive occurrence first.
A once-used boundary edge displayed at the cyclic head.
- negative : Bool
The
negativedeclaration. - remainder : List (SurfaceCellComplex.SignedDart (Fin n))
The
remainderdeclaration. - edge_not_mem_remainder : a ∉ List.map edgeOfDart self.remainder
Instances For
A pairing feature on which the normalization recursion can immediately act.
- boundary {n : ℕ} {word : List (SurfaceCellComplex.SignedDart (Fin n))} (a : Fin n) (form : BoundaryOccurrenceForm word a) : ActionablePairReductionFeature word
- crosscap {n : ℕ} {word : List (SurfaceCellComplex.SignedDart (Fin n))} (a : Fin n) (form : CrosscapOccurrenceForm word a) : ActionablePairReductionFeature word
- handle {n : ℕ} {word : List (SurfaceCellComplex.SignedDart (Fin n))} (a b : Fin n) (form : InterleavedOccurrenceForm word a b) : ActionablePairReductionFeature word
Instances For
Delete the darts of the extracted block, retaining the exact residual order produced by the proof-generating rewrite endpoint.
Equations
- One or more equations did not get rendered due to their size.
- (LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ActionablePairReductionFeature.boundary a form).residualWord = form.remainder
Instances For
Every actionable extraction strictly shortens its residual word.
Counts of every edge still used by the residual word agree with their counts in the source word.
Every edge name retained by an actionable feature occurred in its source word.
Used-edge surface multiplicities survive deletion of an extracted block.
Lower an edge name after moving a distinguished, unused name to the last position.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Re-embed a lowered edge into the old namespace, undoing the move-to-last relabeling.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The lowerDart declaration.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Re-embed a lowered dart into the old namespace.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Lower a word which avoids a distinguished edge, preserving its exact dart order.
Equations
Instances For
Lowering a word explicitly agrees with moving the removed name last and applying P1 contraction.
Removing an absent ambient edge name does not turn a nonempty word into the empty word.
Re-embedding all names in a lowered word recovers the source edge-name list exactly.
The combinatorial block contributed by one actionable extraction. Orientations on boundary and crosscap blocks are retained until the final signed relabeling; handle extraction has already normalized both distinguished edge orientations.
- boundary {n : ℕ} (a : Fin n) (negative : Bool) : ExtractedBlock n
- crosscap {n : ℕ} (a : Fin n) (negative : Bool) : ExtractedBlock n
- handle {n : ℕ} (a b : Fin n) : ExtractedBlock n
Instances For
Ambient edge names consumed by an extracted block.
Equations
- (LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ExtractedBlock.boundary a negative).edges = [a]
- (LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ExtractedBlock.crosscap a negative).edges = [a]
- (LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ExtractedBlock.handle a b).edges = [a, b]
Instances For
Exact signed word contributed by an extracted block.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Block obtained by reading an extracted block backwards with every dart reversed.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Relabel every ambient edge name in an extracted block.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Remove an ambient edge name known not to occur in an extracted block.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A boundary singleton is positive after reversing precisely its recorded input orientation.
A crosscap square is positive after reversing precisely its recorded input orientation.
An extracted handle already has the canonical commutator orientation whenever neither of its two edge names is reversed by the final signed relabeling.
Expanding a lowered block agrees with renaming its old spelling and contracting the unused last edge.
Re-embedding the edge names of a lowered block recovers its original edge list.
Concatenate a sequence of extracted blocks into its exact signed boundary word.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reverse a block sequence in the order induced by reversing its full signed word.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A completed normalization block. Boundary singletons are absent: a boundary block enters this type only after a residual carrier pair has closed it into the three-dart loop required by the canonical representatives.
- crosscap {n : ℕ} (a : Fin n) (negative : Bool) : CompletedBlock n
- handle {n : ℕ} (a b : Fin n) : CompletedBlock n
- boundary {n : ℕ} (carrier hole : Fin n) (carrierNegative holeNegative : Bool) : CompletedBlock n
Instances For
Exact signed word represented by a completed block.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Ambient edge names used by a completed block.
Equations
- (LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.CompletedBlock.crosscap a negative).edges = [a]
- (LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.CompletedBlock.handle a b).edges = [a, b]
- (LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.CompletedBlock.boundary carrier hole carrierNegative holeNegative).edges = [carrier, hole, carrier]
Instances For
Distinct-name spine of a completed block. Unlike edges, this records a boundary carrier
once rather than once per dart occurrence.
Equations
- (LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.CompletedBlock.crosscap a negative).names = [a]
- (LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.CompletedBlock.handle a b).names = [a, b]
- (LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.CompletedBlock.boundary carrier hole carrierNegative holeNegative).names = [carrier, hole]
Instances For
Reverse a completed block as one atomic cyclic-word segment.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Relabel every edge of a completed block.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Remove an ambient edge name known not to occur in a completed block.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Expanding a lowered completed block agrees with word-level cancellation lowering.
Re-embedding the edge names of a lowered completed block recovers the old edge list.
Re-embedding the distinct names of a lowered block recovers its old name spine.
Concatenate a completed block sequence into its exact signed one-face word.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Concatenate the distinct-name spines owned by a completed block sequence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Number of completed crosscap blocks.
Equations
- One or more equations did not get rendered due to their size.
- LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.CompletedBlock.crosscapCount [] = 0
Instances For
Number of completed handle blocks.
Equations
- One or more equations did not get rendered due to their size.
- LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.CompletedBlock.handleCount [] = 0
Instances For
Number of completed boundary-loop blocks.
Equations
- One or more equations did not get rendered due to their size.
- LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.CompletedBlock.boundaryCount [] = 0
Instances For
Normal-form parameters selected by a completed block sequence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every completed block belongs to exactly one normal-form block class.
A nonempty completed block sequence selects an Eval-admissible normal form.
A completed positive-carrier boundary loop lying inside an opposite residual pair.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Move the completed loop outside the residual pair, leaving the residual pair around the strictly shorter protected interval.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The same contextual loop with its carrier displayed negative first.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Negative-carrier target spelling.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Positive-carrier boundary-loop commuting is exactly one LoopGrouping rewrite between two
cyclic rotations.
Reversing only the loop carrier identifies the negative and positive source spellings.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reversing only the loop carrier identifies the negative and positive target spellings.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Negative-carrier boundary-loop commuting reduces to the positive theorem by a signed presentation isomorphism at each endpoint.
A raw boundary dart already lying between adjacent opposite carrier occurrences, followed by two contextual tails.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Close the raw boundary dart into a completed loop and move the remaining protected interval past that loop.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Positive-carrier contextual boundary closure is exactly one LoopGrouping rewrite.
Reversing the carrier identifies negative- and positive-carrier contextual sources.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reversing the carrier identifies negative- and positive-carrier contextual targets.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Negative-carrier contextual boundary closure reduces to the positive theorem through signed presentation isomorphisms at both endpoints.
A raw boundary atom followed by a nonempty protected interval inside an opposite pair.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Move the raw boundary atom to the end of the protected interval, exposing its next atom.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Rotating a raw boundary atom through a protected interval is one signed Dyck rewrite.
A positive completed crosscap lying at the head of a positive/negative residual pair.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Commute the completed crosscap through the residual pair. The old residual carrier becomes the completed crosscap, while the old crosscap carrier becomes the residual pair around the strictly shorter protected interval.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Contextual crosscap source with arbitrary orientations on both distinguished edges.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Arbitrarily oriented contextual crosscap target.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reverse exactly the displayed orientations of the two distinguished edges.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The two-edge orientation normalization fixes every word avoiding both distinguished names.
Independent sign normalization identifies the generic and positive source spellings.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Independent sign normalization identifies the generic and positive target spellings.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The positive contextual crosscap commute is an adjacent-crosscap rewrite followed by an ordinary crosscap grouping, with cyclic rotations between the displayed spellings.
Contextual crosscap commuting supports arbitrary orientations on both distinguished edges.
A completed handle at the head of a positive/negative residual pair.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The same completed handle commuted outside the residual pair.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The contextual handle source with its residual carrier displayed negative first.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Negative-residual-carrier target spelling.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Contextual handle source with arbitrary residual-carrier orientation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Contextual handle target with arbitrary residual-carrier orientation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reversing only the residual carrier identifies negative and positive handle sources.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reversing only the residual carrier identifies negative and positive handle targets.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Commuting a completed handle through a residual pair is a four-Dyck chain.
Contextual handle commuting supports either orientation of the residual carrier.
Two consecutive extracted boundary darts with arbitrary independent orientations.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Contract the second boundary edge and retain one positively normalized boundary dart.
Equations
- One or more equations did not get rendered due to their size.
Instances For
P1 expansion is just edge-name retention on a word avoiding the subdivided edge.
Independent sign normalization identifies the generic and positive adjacent-boundary spellings.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The positive adjacent-boundary spelling is exactly a P1 expansion after moving the second edge to the fresh-last name.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Contracting two adjacent once-used boundary darts is a signed isomorphism followed by one inverse P1 move.
A one-face word before a fresh opposite carrier pair is introduced.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The fresh carrier name in the enlarged edge type.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Enclose a retained word in a fresh positively oriented carrier pair.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The target declaration.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The one-sided source split creates the carrier as a face separator.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Split the enveloped target between its two carrier occurrences.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The separator edge selected for P1 expansion in the source split.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The retained half of the expanded source separator.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reverse the retained separator when identifying the two common subdivisions.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The subdivisionFaceEquiv declaration.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Expanding the source separator and splitting the enveloped target give signed-isomorphic two-face presentations.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The enveloping carrier adds one twice-used name and retains all old multiplicities.
Add a fresh opposite carrier pair around a nonempty one-face word. A one-sided P2 split followed by P1 has the same subdivision as a genuine split of the enveloped target.
One non-residual atom allowed in a classified marked execution state.
- boundary {n : ℕ} (hole : Fin n) (negative : Bool) : ProtectedAtom n
- completed {n : ℕ} (block : CompletedBlock n) : ProtectedAtom n
Instances For
Exact signed word represented by one classified protected atom.
Equations
- One or more equations did not get rendered due to their size.
- (LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ProtectedAtom.completed block).word = block.word
Instances For
Edge names protected by one classified atom.
Equations
Instances For
Distinct protected names owned by one classified atom.
Equations
Instances For
Retain a completed block when one fresh ambient carrier name is added.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Retain a protected atom when one fresh ambient carrier name is added.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reverse one protected atom.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Concatenate a protected atom sequence into its exact signed word.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Concatenate the distinct-name spines owned by a protected atom sequence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reverse a protected atom sequence at atom granularity.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Number of raw once-used boundary darts. Terminal normalization groups and contracts every such dart to one representative of the remaining outer boundary component.
Equations
- One or more equations did not get rendered due to their size.
- LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ProtectedAtom.rawBoundaryCount [] = 0
Instances For
Number of boundary components already displayed as completed carrier loops.
Equations
- One or more equations did not get rendered due to their size.
- LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ProtectedAtom.completedBoundaryCount [] = 0
Instances For
Number of boundary components selected by a terminal atom sequence. Completed loops are already distinct boundary components. All remaining raw boundary darts lie on the one outer boundary component and therefore contribute one component collectively, rather than one each.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Number of completed crosscap blocks.
Equations
- One or more equations did not get rendered due to their size.
- LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ProtectedAtom.crosscapCount [] = 0
Instances For
Number of completed handle blocks.
Equations
- One or more equations did not get rendered due to their size.
- LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ProtectedAtom.handleCount [] = 0
Instances For
Normal-form parameters selected by a terminal protected-atom sequence. Completed boundary loops contribute individually; any remaining raw boundary darts collectively contribute the one outer boundary component and will be grouped during terminal normalization.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every protected atom is raw boundary data or belongs to exactly one completed block class.
A nonempty terminal protected-atom sequence selects an Eval-admissible normal form.
A protected atom sequence with no raw boundary singleton consists entirely of completed blocks.
A marked normalization word. Residual darts are still available to subsequent pairing reductions; extracted blocks are atomic tokens whose exact dart succession must be preserved.
- residual {n : ℕ} (dart : SurfaceCellComplex.SignedDart (Fin n)) : ReductionToken n
- extracted {n : ℕ} (block : ExtractedBlock n) : ReductionToken n
- completed {n : ℕ} (block : CompletedBlock n) : ReductionToken n
Instances For
Embed a classified protected atom as one marked token.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Number of still-raw boundary singleton tokens in a marked word.
Equations
- One or more equations did not get rendered due to their size.
- LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ReductionToken.rawBoundaryCount [] = 0
Instances For
Exact signed word represented by one marked token.
Equations
- (LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ReductionToken.residual dart).word = [dart]
- (LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ReductionToken.extracted block).word = block.word
- (LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ReductionToken.completed block).word = block.word
Instances For
Residual contribution of one marked token.
Equations
- (LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ReductionToken.residual dart).residualWord = [dart]
- (LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ReductionToken.extracted block).residualWord = []
- (LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ReductionToken.completed block).residualWord = []
Instances For
Edge names protected inside one extracted-block token.
Equations
- (LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ReductionToken.residual dart).extractedEdges = []
- (LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ReductionToken.extracted block).extractedEdges = block.edges
- (LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ReductionToken.completed block).extractedEdges = block.edges
Instances For
One occurrence of every protected edge name represented by a token.
Equations
- (LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ReductionToken.residual dart).extractedNames = []
- (LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ReductionToken.extracted block).extractedNames = block.edges
- (LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ReductionToken.completed block).extractedNames = block.names
Instances For
Structural grammar of marked execution states. Extracted crosscaps and handles are promoted
immediately to completed blocks; only a boundary singleton may remain in the intermediate
extracted constructor.
Equations
- One or more equations did not get rendered due to their size.
- (LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ReductionToken.residual dart).IsClassified = True
- (LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ReductionToken.extracted block).IsClassified = False
- (LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ReductionToken.completed block).IsClassified = True
Instances For
Every token in a marked execution state obeys the classified-token grammar.
Equations
- LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ReductionToken.AllClassified tokens = ∀ token ∈ tokens, token.IsClassified
Instances For
Reverse a token while preserving an extracted block as one atomic token.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Relabel every edge name represented by a marked token.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Lower a marked token known not to use the removed ambient edge.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Lowering one marked token agrees with word-level cancellation lowering.
Re-embedding residual edge names after lowering one token recovers the old residual names.
Re-embedding protected edge names after lowering one token recovers the old protected names.
Re-embedding a lowered token's distinct protected names recovers its old name spine.
Expand a marked word to the exact signed word on which normalization moves act.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Erase extracted blocks and retain only the darts still available to pairing reduction.
Equations
- One or more equations did not get rendered due to their size.
Instances For
All edge names protected inside extracted block tokens.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Distinct-name spine of all protected tokens. Each token contributes each of its edge names
once, so global Nodup expresses disjoint ownership of protected names.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Residual darts and already-extracted blocks use disjoint ambient edge names.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reverse a marked word at token granularity.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Initially every dart is still residual.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A finished marked word contains only extracted block tokens.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A classified token list with no residual darts is exactly a list of typed protected atoms.
Canonical atom-level view of a classified marked word whose residual contribution is empty.
Equations
- LeanEval.Topology.ClassificationOfSurfaces.FiniteCyclicPresentation.WordReduction.Pairing.ReductionToken.terminalAtoms tokens classified residual_nil = Classical.choose ⋯
Instances For
The distinct-name spine and occurrence-level protected list have identical membership.
Cancellation lowering distributes over concatenation.
Lower every token in a marked word which avoids the removed edge.
Equations
Instances For
Marked cancellation lowering distributes over token concatenation.
Expanding a lowered marked word gives exactly the ordinary cancellation target word.
Re-embedding all residual edge names after lowering a marked word recovers the source residual namespace exactly.
Lowering an absent ambient edge preserves the number of residual darts.
Re-embedding all protected edge names after lowering a marked word recovers the source protected namespace exactly.
Re-embedding all distinct protected names after lowering recovers the source name spine.
Injective cancellation lowering preserves separation of residual and protected names.
An edge occurs in the expanded word exactly when it is residual or protected in an extracted block token.
A name absent from a token's protected part has the same multiplicity in its exact word and its residual contribution.
A name absent from every protected token has the same multiplicity in the expanded word and the erased residual word.
Flattening preserves a cyclic rotation of a list of lists.
Expanding atomic marked tokens preserves cyclic rotation.
Protected edge names rotate with their atomic marked tokens.
Distinct protected-name spines rotate with their atomic marked tokens.
Residual edge names rotate with their atomic marked tokens.
Separation of residual and protected edge names is invariant under cyclic rotation.
Separation depends only on the multiset of atomic marked tokens.
Permuting atomic marked tokens permutes their distinct protected-name spines.
Duplicate-freeness of protected names depends only on the multiset of marked tokens.
Permuting marked tokens preserves nonemptiness of the protected-name spine.
Permuting atomic marked tokens preserves the number of residual darts.
Lowering an absent ambient edge preserves duplicate-freeness of all protected names.
A separated marked word cannot protect an edge that still occurs residually.
Lift a displayed residual dart occurrence to an exact split of the marked token list.
Lift an arbitrary residual-word cut to a cut of the marked token list.
Every cyclic rotation of the residual darts is induced by a cyclic rotation of the marked tokens.
Lift a residual rotation which displays one dart at its head to a marked-token rotation with that exact residual token at its head.
Type-valued packaging of a marked split, suitable for recursive normalization data.
- tokenLeft : List (ReductionToken n)
The
tokenLeftdeclaration. - tokenRight : List (ReductionToken n)
The
tokenRightdeclaration.
Instances For
Type-valued packaging of a marked split at one displayed residual dart.
- tokenLeft : List (ReductionToken n)
The
tokenLeftdeclaration. - tokenRight : List (ReductionToken n)
The
tokenRightdeclaration.
Instances For
Choose a marked split above a displayed residual-word split.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Choose a marked split at a displayed residual dart.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Type-valued packaging of a marked rotation with one residual dart at its head.
- tokenRemainder : List (ReductionToken n)
The
tokenRemainderdeclaration.
Instances For
Choose the marked rotation above a residual rotation with one displayed head dart.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reversing a marked token sequence preserves its multiset of distinct protected names.