Faces and planarity of PD-codes #
A TauCeti.PDCode lists the four half-edges at each crossing in counterclockwise order and pairs
the two ends of each arc, but nothing in the code forces these data to come from a diagram drawn
in the plane. This file supplies the face data that decides it. The half-edges of a code are the
darts of its underlying 4-valent graph, the counterclockwise rotation of the slots at each
crossing (TauCeti.PDCode.crossingRotation) is its rotation system, and the arc matching is its
edge involution. As for any rotation system, the orbits of the composite TauCeti.PDCode.facePerm,
which turns to the next slot counterclockwise and then runs along the arc from there, are the faces
of the closed oriented surface on which the graph is cellularly embedded
(Lando–Zvonkin, §1.3). For a connected diagram in the plane they are the regions of the diagram.
This is the permutation-triple encoding of the graph: TauCeti.PDCode.toPermutationTriple has
the crossing rotation and the arc matching as its first two components and the inverse face
permutation as the third. Its Euler characteristic counts n vertices, 2 * n edges and the
faces, so it is faceCount - n (TauCeti.PDCode.eulerChar_toPermutationTriple). Each connected
component of the graph contributes at most 2, with equality exactly for a sphere, so a code is
planar (TauCeti.PDCode.IsPlanar) when the Euler characteristic is twice the number of
connected components, the monodromy orbits of the triple. For a connected code this is Euler's
count of n + 2 regions (TauCeti.PDCode.isPlanar_iff_faceCount_eq_of_isConnected).
Throughout, the underlying graph is the one supported on the crossings: its vertices are the
crossings and its edges the arcs between them. The crossing-free circles of a code
(TauCeti.PDCode.crossinglessComponentCount) are not part of it, so they contribute neither faces
to TauCeti.PDCode.faceCount nor connected components to the monodromy orbits. They play no part
in planarity either, since a circle alone always lies in a sphere.
Planarity is invariant under mirroring and relabelling. The one-crossing kink is planar, while the
one-crossing code whose arcs join opposite slots, two circles meeting in a single crossing, is not
(TauCeti.PDCode.exists_not_isPlanar): its graph embeds only in the torus.
The face permutation locates the arcs that border a common region: two half-edges lie on the same
face exactly when TauCeti.PDCode.face agrees on them (TauCeti.PDCode.face_eq_face_iff). This
is the locality data that the second and third Reidemeister moves need beyond the algebraic
operation TauCeti.PDCode.insertClasp.
Main definitions #
TauCeti.PDCode.crossingRotation: the counterclockwise rotation of the slots at each crossing.TauCeti.PDCode.toPermutationTriple: the permutation triple of the underlying graph.TauCeti.PDCode.facePermandTauCeti.PDCode.faceCount: the face traversal and the number of faces of the underlying graph.TauCeti.PDCode.FaceandTauCeti.PDCode.face: the faces, as orbits of the face traversal, and the face at a half-edge.TauCeti.PDCode.IsPlanar: every connected component of the underlying graph is a sphere.
Main results #
TauCeti.PDCode.eulerChar_toPermutationTriple: the Euler characteristic isfaceCount - n.TauCeti.PDCode.faceCount_le: if the underlying graph hascconnected components, it has at mostn + 2 * cfaces, with equality exactly for planar codes (TauCeti.PDCode.isPlanar_iff_faceCount_eq).TauCeti.PDCode.mem_orbit_of_face_eq_face: half-edges on one face lie in one connected component, and so does a half-edgehwith every half-edge on the face at the far endD.edgePair.val hof its arc (TauCeti.PDCode.mem_orbit_of_face_edgePair_eq_face).TauCeti.PDCode.isPlanar_mirrorandTauCeti.PDCode.isPlanar_relabel: invariance.TauCeti.PDCode.isPlanar_kinkandTauCeti.PDCode.exists_not_isPlanar.
References #
- S. K. Lando, A. K. Zvonkin, Graphs on Surfaces and Their Applications, Encyclopaedia of Mathematical Sciences 141, Springer 2004, §1.3 (rotation systems and their faces) and §1.5.
- M. Mastin, Links and Planar Diagram Codes, Definitions 2--3 (the PD convention).
The crossing rotation #
The rotation of every half-edge to the next slot counterclockwise at its crossing.
Equations
- D.crossingRotation = (Equiv.permCongr D.halfEdge) ((TauCeti.PDCode.crossingSlotEquiv n).permCongr (Equiv.prodCongrRight fun (x : Fin n) => finRotate 4))
Instances For
The defining equation of the crossing rotation.
The crossing rotation moves the half-edge in a slot to the next slot counterclockwise.
Each crossing is one orbit of the crossing rotation.
Mirroring preserves the crossing rotation.
Every arc is an orbit of the arc matching, so a code with n crossings has 2 * n arcs.
Faces #
The face traversal: turn to the next slot counterclockwise, then run along the arc from there. Its orbits are the faces of the underlying graph.
Equations
- D.facePerm = ↑D.edgePair * D.crossingRotation
Instances For
The defining equation of the face traversal.
The face traversal rotates at the crossing and then crosses the arc.
The number of faces of the underlying graph: the orbits of the face traversal. Crossing-free circles are not part of this graph and contribute no faces.
Equations
Instances For
The number of faces is the number of orbits of the face traversal.
The faces of the underlying graph: the orbits of the face traversal.
Equations
Instances For
Every face is the face at some half-edge.
Relabelling preserves face incidence: two relabelled half-edges lie on the same face of the relabelled code exactly when the original half-edges lie on the same face of the code.
Two half-edges lie in one orbit of running along an arc and then turning exactly when the far ends of their arcs lie on one face: this traversal is conjugate to the face traversal by the arc matching.
The faces may equally be counted as the orbits of running along an arc and then turning to the next slot, which is conjugate to the face traversal.
The permutation triple #
The permutation triple of the underlying graph of a PD-code: the crossing rotation, the arc matching, and the inverse face traversal.
Equations
Instances For
The first component of the triple is the crossing rotation.
The second component of the triple is the arc matching.
The third component of the triple is the inverse face traversal.
Mirroring preserves the underlying graph.
Relabelling relabels the sheets of the permutation triple by the half-edge relabelling.
The crossing rotation lies in the monodromy group of the underlying graph.
The arc matching lies in the monodromy group of the underlying graph.
The face traversal lies in the monodromy group of the underlying graph.
Euler's formula for a PD-code. The underlying graph has n vertices and 2 * n edges,
so its Euler characteristic is the number of faces less the number of crossings.
If the underlying graph of a PD-code has c connected components, it has at most n + 2 * c
faces.
Planarity #
A PD-code is planar when every connected component of its underlying graph, with the
counterclockwise rotation at each crossing, is embedded in a sphere. Since each component has
Euler characteristic at most 2, with equality exactly for the sphere, this says that the Euler
characteristic is twice the number of components. Crossing-free circles are not part of the
underlying graph and do not affect planarity.
Equations
- D.IsPlanar = (D.toPermutationTriple.eulerChar = 2 * ↑(Nat.card D.toPermutationTriple.MonodromyOrbit))
Instances For
The defining equation of planarity.
A PD-code whose underlying graph has c connected components is planar exactly when the
graph has n + 2 * c faces, the largest possible number.
A PD-code with n crossings and connected underlying graph is planar exactly when the graph
has n + 2 faces.
A PD-code without crossings is planar.
One-crossing codes #
The underlying graph of a one-crossing code is connected: the rotation at its single crossing already moves every half-edge to every other.
The kink has three faces: the two sides of its loop and the region outside the strand.
Not every PD-code is planar. The one-crossing code whose two arcs join opposite slots consists of two circles meeting in a single crossing, which no diagram in the plane can have. Its face traversal is a single cycle, so its graph has one face and embeds in the torus but not in the sphere.