Documentation

TauCeti.KnotTheory.Grid.Rotation

Coordinate reversal of grid states and diagrams #

This file adds coordinate reversal on the toroidal grid to the grid-combinatorial lane of the Heegaard Floer roadmap, alongside the already-developed diagonal reflection (transpose) and marking swap (swapMarkings). Rotation reverses both the column and the row coordinate by the map (c, r) ↦ (cᵒ, rᵒ) with ·ᵒ = Fin.rev. It is the composition of the column and row relabelings by the coordinate reversal Fin.revPerm, so it reuses the existing relabeling API rather than introducing a new primitive. It carries a grid state to a grid state and a grid diagram to a grid diagram.

In the coordinate convention used here, GridState.rotate reverses grid-point coordinates, whereas GridDiagram.rotate reverses the lower-left-coordinate names of marking squares. These are half-turns about different centres on the torus. Thus the paired operations preserve the grading results below but not marking avoidance, and do not give a symmetry of the fully blocked complex. The operation on grid states that does match GridDiagram.rotate is the half-turn GridState.halfTurn, which negates both coordinates of a grid point modulo n; together with GridDiagram.rotate it is a symmetry of the grid complexes (TauCeti.KnotTheory.Grid.Differential.HalfTurn).

Only the basic state/diagram operation and its point-set lemmas live here, parallel to where transpose is developed; the invariance of the J-pairing of two grid states under coordinate reversal is in TauCeti.KnotTheory.Grid.JFunction.Basic (GridState.J_rotate). The gradings themselves are not rotation invariant: they pair a grid state against the markings, which sit at the centres of their squares, so the half-turn about a grid point that rotates a state and the half-turn about a square centre that rotates the markings are different maps of the torus. This distinction and its grading consequence follow the analysis in TauCeti pull request #3135.

Main definitions #

Main results #

References #

This advances TauCetiRoadmap/CombinatorialHeegaardFloer/README.md, Lane G item 8, "Symmetries and the genus bound": coordinate reversal is among the standard grid symmetries in Ozsváth--Stipsicz--Szabó, Grid Homology for Knots and Links, Chapter 3.

Coordinate reversal of a grid state.

This reverses both coordinates of the occupied grid points and is the composition of the column and row relabelings by Fin.revPerm. Geometrically it is a half-turn about a square center; the same operation on lower-left square names in GridDiagram.rotate is a half-turn about a grid point, so the two operations do not together preserve marking avoidance.

Instances For
    @[simp]
    theorem TauCeti.GridState.rotate_apply {n : ℕ} (x : GridState n) (c : Fin n) :

    The rotated state reads off a column by reversing it, applying the original state, and reversing the resulting row.

    A grid point lies in the rotated state exactly when its coordinate reversal lies in the original state.

    The point set of the rotated state is the coordinate reversal of the original point set.

    @[simp]

    Coordinate reversal is an involution on grid states.

    @[simp]

    Diagonal reflection commutes with coordinate reversal of a grid state.

    @[simp]

    Row relabeling before rotation becomes row relabeling by the conjugate permutation after rotation.

    @[simp]

    Column relabeling before rotation becomes column relabeling by the conjugate permutation after rotation.

    @[simp]
    theorem TauCeti.GridState.swapRows_rotate {n : ℕ} (a b : Fin n) (x : GridState n) :

    Swapping rows before rotation is the same as swapping the reversed rows after rotation.

    @[simp]

    Swapping columns before rotation is the same as swapping the reversed columns after rotation.

    The half-turn of a grid state that matches the half-turn GridDiagram.rotate of a grid diagram.

    It moves the grid point (c, r) to (finRotate n c.rev, finRotate n r.rev), negating both coordinates modulo n. This is the half-turn of the torus that moves the square named by its lower-left corner (c, r) to the square named by (c.rev, r.rev), which is how GridDiagram.rotate moves the markings. So, unlike GridState.rotate, it carries the rectangles of a grid diagram to the rectangles of the rotated diagram together with the markings they cover.

    Instances For

      The half-turn of a grid state sends the point in column c to the point in column finRotate n c.rev, negating both coordinates.

      theorem TauCeti.GridState.halfTurn_apply {n : ℕ} (x : GridState n) (c : Fin n) :

      The half-turn of a grid state, read off a column: the column and the row are both negated modulo n.

      @[simp]

      The half-turn is an involution on grid states.

      The half-turn of grid states is involutive.

      Coordinate reversal of a grid diagram's marking-square names.

      It is the composition of the column and row relabelings by the coordinate reversal Fin.revPerm, applied to both marking states at once. Each relabeling is again a grid diagram, so rotation preserves the condition that no square carries both an O and an X marking. Here Fin.rev acts on the lower-left-coordinate names of marking squares, so this operation and GridState.rotate do not together preserve marking avoidance.

      Instances For
        @[simp]

        The O-marking state of the rotated diagram is the rotation of the original O-state.

        @[simp]

        The X-marking state of the rotated diagram is the rotation of the original X-state.

        The O-markings of the rotated diagram are the coordinate reversal of the original O-markings.

        The X-markings of the rotated diagram are the coordinate reversal of the original X-markings.

        A square lies in the rotated diagram's O-marking set exactly when its coordinate reversal lies in the original O-marking set.

        A square lies in the rotated diagram's X-marking set exactly when its coordinate reversal lies in the original X-marking set.

        @[simp]

        Coordinate reversal is an involution on grid diagrams.

        @[simp]

        Diagonal reflection commutes with coordinate reversal of a grid diagram.

        @[simp]

        Row relabeling before rotation becomes row relabeling by the conjugate permutation after rotation.

        @[simp]

        Column relabeling before rotation becomes column relabeling by the conjugate permutation after rotation.

        @[simp]

        Swapping rows before rotation is the same as swapping the reversed rows after rotation.

        @[simp]

        Swapping columns before rotation is the same as swapping the reversed columns after rotation.

        @[simp]

        Exchanging the two marking states commutes with coordinate reversal.