Why do Shi regions know how cars park?
This explainer builds the Pak–Stanley picture from scratch. You’ll first learn the one-way-street parking model, then hyperplanes, then the special geometry of the Shi arrangement, and finally why the labels that come from crossing Shi walls are exactly parking functions.
How to read this
The side rail is always live. Drag the cars there. Every page reads the same state in a different way.
Roadmap
Cars on a one-way street
A parking function is a list of preferred starting spaces. Car \(i\) first tries space \(a_i\). If it is occupied, the car drives forward until it finds the next open space.
Manual parking simulator
Why the sorted condition is the right test
Suppose you sort the preferences to get \(b_1\le b_2\le \cdots\le b_n\). Then the first \(k\) cars in this sorted list must all fit into the first \(k\) parking spaces \(0,1,\dots,k-1\). So the \(k\)-th smallest preference must satisfy \(b_k \le k-1\).
First \(k\) cars versus first \(k\) spaces
A hyperplane is a wall
In the plane, a hyperplane is a line. In 3D, it is an ordinary plane. An arrangement is just a finite collection of these walls, cutting space into regions.
Drag the point. The sign of a linear expression tells you which side of the wall you are on.
One wall, two sides
Before Shi: only order matters
The braid arrangement consists of the walls \(x_i=x_j\). Crossing one of them swaps the vertical order of two cars.
Permutohedron / chamber graph
Add shifted walls
The Shi arrangement adds shifted walls \(x_i=x_j+1\) to the braid walls \(x_i=x_j\). For \(n=3\), we can draw the real planes in 3D.
3D Shi arrangement for \(n=3\)
The three-zone test
Fix a pair \(i<j\). The base region expects \(0<x_i-x_j<1\): car \(i\) is ahead of car \(j\), but by less than one unit. Leaving that strip creates one obstruction token.
Pair strip \(0 < x_i-x_j < 1\)
Crossing a plane changes exactly one coordinate
A wall crossing does not mean “a parking space became occupied.” Instead it means: one coordinate of the Pak–Stanley label changes by \(+1\), so one car starts one space later on the street.
Before → crossing → after
Every crossed wall gives one token
The Pak–Stanley label is obtained by starting at zero and adding one token for each separating wall, using the pair rule from the previous page.
Obstruction graph
Current event log
Pair table
Collapse the events into one vector
Forget which pairs caused the tokens. Remember only how many tokens each car received. That vector is the Pak–Stanley label.
Preference buckets
The label becomes parking preferences
Now read the Pak–Stanley label \(a=(a_1,\ldots,a_n)\) as parking preferences: car \(i\) starts at space \(a_i\).
Current label parking simulation
The parking condition is a consistency test
A vector is a parking function exactly when, after sorting, the \(k\)-th car does not start beyond space \(k-1\). Geometrically, impossible labels would demand too many obstructions too early.
Compare the current Pak–Stanley label to the sorted parking-function test.
Sorted-condition diagram
What survives for \(n=4,5,6,\ldots\)?
The full arrangement for \(n\) cars lives in effective dimension \(n-1\), so the literal picture fades. But the local pair rule, event log, label, and one-way-street parking still make sense.