Documentation

TauCeti.KnotTheory.Grid.Rectangle.Count

A two-rectangle bound for oriented rectangles between grid states #

An oriented rectangle R : GridRectangleBetween x y is determined by its two side columns R.left, R.right: away from those columns the two states agree, and at those columns they exchange rows (RectangleSwap.lean). This file pins down the uniform two-rectangle upper bound between two fixed grid states, and the exact count once one such rectangle exists.

The key observation is purely about the side columns. A column c is a side column of R exactly when the two states differ there: if c is neither R.left nor R.right then y c = x c, and at a side column the states genuinely disagree because the source permutation is injective. So the unordered pair of side columns is forced — it is the set of columns where x and y differ — and a rectangle between x and y is determined up to the order of its two side columns. Reversing the two side columns gives the other oriented rectangle (swapSides), so there are at most two oriented rectangles, and exactly two whenever at least one exists. The separate RectangleSwap.lean file records the transposition/existence criterion.

This is the finiteness backbone of the grid differential: the coefficient of y in the fully blocked differential of x counts a sub-collection of these at-most-two rectangles, so the differential of a generator is supported on the column-transposition neighbours of that generator.

Main results #

References #

The count of rectangles between two states is the finiteness fact underlying the grid differential. The statement that exactly two rectangles connect two states differing by a transposition follows Ozsváth--Stipsicz--Szabó, Grid Homology for Knots and Links, Chapter 4.

theorem TauCeti.GridRectangleBetween.apply_ne_iff {n : ℕ} {x y : GridState n} (R : GridRectangleBetween x y) (c : Fin n) :
y.toPerm c ≠ x.toPerm c ↔ c = R.left ∨ c = R.right

A column is a side column of the rectangle exactly when the two states read different rows there. Away from the two side columns the states agree, and at a side column the source permutation is injective on the two distinct side columns, so the read rows differ.

The states differ at the initial side column.

The states differ at the terminal side column.

Any oriented rectangle between the same two states is R or its side swap R.swapSides. Its two side columns are exactly the two columns where x and y differ, which are R.left and R.right, so its ordered side pair is one of the two orderings of that pair.

Given one oriented rectangle between two states, the oriented rectangles between them are exactly the pair {R, R.swapSides}.

When there is at least one oriented rectangle between two states, there are exactly two: the chosen one and its side swap.

Any finite subcollection of oriented rectangles between two states has cardinality at most two.

There are at most two empty oriented rectangles between two grid states.