Polygonal realization under independently reoriented faces #
Gallier--Xu treat a face and the same face read in the opposite direction interchangeably. This
file records that convention explicitly. An UnorientedPresentationIso may rename and reorient
edges, relabel faces, cyclically rotate their boundaries, and independently reverse the traversal
orientation of every face.
Unlike SignedPresentationIso, this broader comparison does not claim to preserve the current
orientation-sensitive IsSurfaceValid predicate. When both endpoints are ordinarily valid, it
does preserve their faithful polygonal realizations. This is the exact extra comparison needed by
the cross-cap pseudo-rewrite, whose common P2 refinement reads one of its two faces backwards.
Reflection of a polygon cell across the real axis.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reflection reverses both the cyclic side index and its interval parameter.
Presentation isomorphism up to independent choices of traversal orientation on target faces.
- edgeRelabeling : EdgeRelabeling P.Edge Q.Edge
The
edgeRelabelingdeclaration. The
faceEquivdeclaration.The
reverseFacedeclaration.- boundary_rotated (f : P.Face) : List.map self.edgeRelabeling.mapDart (P.boundary f) ~r Q.orientedBoundary { face := self.faceEquiv f, orientation := self.reverseFace f }
Instances For
The edgeEquiv declaration.
Equations
Instances For
Ordinary signed presentation isomorphisms are the orientation-preserving special case.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Corresponding stored boundaries have the same length.
Independent face reversal does not alter edge multiplicity in a corresponding face.
Total edge multiplicities are invariant under an unoriented presentation isomorphism.
Face adjacency is preserved when target faces may be read in either orientation.
Face-incidence connectivity is preserved by an unoriented presentation isomorphism.
Looking up the reversed signed word reverses the finite index and flips the dart.
The target-boundary rotation selected for an unoriented presentation isomorphism.
Equations
- e.faceRotation f = Classical.choose ⋯
Instances For
The side index in the chosen orientation of the target face.
Equations
- e.orientedSideIndex validQ f i = ⟨(↑i + e.faceRotation f) % (Q.orientedBoundary { face := e.faceEquiv f, orientation := e.reverseFace f }).length, ⋯⟩
Instances For
Convert an oriented target-side index to the stored boundary indexing.
Equations
- e.sideIndex validQ f i = if e.reverseFace f = true then (Fin.cast ⋯ (e.orientedSideIndex validQ f i)).rev else Fin.cast ⋯ (e.orientedSideIndex validQ f i)
Instances For
Reflection reverses the side parameter exactly when the target face is read backwards.
Equations
- e.sideParameter f t = if e.reverseFace f = true then unitInterval.symm t else t
Instances For
The rotated oriented target side carries the relabeled source dart.
The stored target occurrence carries the relabeled dart, flipped exactly when its face was read backwards.
The facewise disk homeomorphism: rotate to the selected cyclic spelling, then reflect if the target face is read backwards.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The facewise homeomorphism sends a source side to the corresponding stored target side, with the interval parameter reversed exactly for a reversed face.
A facewise homeomorphism of polygonal pre-realizations.
Equations
- e.preHomeomorph = IsHomeomorph.homeomorph (Sigma.map ⇑e.faceEquiv fun (f : P.Face) => ⇑(e.faceHomeomorph f)) ⋯
Instances For
Transport a boundary occurrence through the selected cyclic rotation and possible reflection.
Instances For
On a labelled side, the pre-realization map performs its selected cyclic shift and possible reflection.
Transport of all boundary occurrences is injective.
Ignoring the selected cyclic shifts and reflections, the occurrence types have equal cardinality.
Equations
- e.rawOccurrenceEquiv = e.faceEquiv.sigmaCongr fun (f : P.Face) => (Fin.castOrderIso ⋯).toEquiv
Instances For
Boundary-occurrence transport bundled as an equivalence.
Equations
- e.occurrenceEquiv validQ = Equiv.ofBijective (e.mapOccurrence validQ) ⋯
Instances For
Toggle a gluing direction when exactly one incident face is reflected.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The transported gluing parameter commutes with the two optional side reflections.
Transport a compatible source pairing, toggling its parameter direction precisely when one of the two incident faces is reflected.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The pre-realization map sends a pairing source point to its transported source side.
The pre-realization map sends a pairing target point to its transported target side.
Transported side parameters intertwine the source and target pairing maps.
The inverse pre-realization homeomorphism uses the same involutive side-parameter reflection.
The relabeled dart of a pulled-back occurrence is the target dart, flipped exactly when its source face was reflected.
The relabeled edge of a pulled-back occurrence is its target edge.
Pull a compatible target pairing back through the occurrence equivalence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The inverse pre-realization map sends a target pairing source to its pulled-back side.
The inverse pre-realization map sends a target pairing target to its pulled-back side.
Pulled-back gluing parameters commute with the two side reflections.
Independent edge and face reorientation preserves the faithful polygonal realization whenever both endpoint presentations satisfy ordinary incidence validity.
Equations
Instances For
Propositional realization-invariance form for face-reversing presentation comparisons.