I was reading this review by Kenyon on the dimer model, and there's a lemma at the beginning that I'm struggling to prove.
Here's the set-up. We have a finite 2D square lattice graph, bounded by a simple closed curve in the dual $\mathbb{Z}^2$, where the horizontal edges are weighted $1$, and the vertical ones are weighted $i$. We wish to find the number of possible matchings for this bipartite graph.
Kenyon reduces the problem to the statement given in this lemma, which is said to have an "easy" inductive proof.
Lemma. Let $C = \{v_0, \ldots, v_{2k-1}, v_{2k} = v_0\}$ be a simple closed curve in $\mathbb{Z}^2$. Let $m_1$ be the product of the weights on edges of the form $v_{2j}v_{2j+1}$ and $m_2$ the product of the weights on the remaining edges $v_{2j+1}v_{2j+2}$. Then, $m_1 = (−1)^{n+k+1} m_2$, where $n$ is the number of vertices strictly enclosed by $C$.
How do I prove this? I'm struggling with the fact that $k$ and $n$ aren't independent: when you increase the length of the simple curve, you inevitably increase $n$. Also, $n < O(k^2)$, so it's not like you can induct on $n$ independently either? There's also no mention of which edges are horizontal vs. vertical, except that it's a closed curve, so I don't even see why $m_1$ and $m_2$ are either both real or both complex.
I figured it out just after I posted this question, so I'm posting it here.
The idea is to build up the simple closed loop $C$ by a single $1\times 1$ cell at a time. The induction step only needs two cases. The first case is where the new cell you're adding shares an edge with only one other cell on the boundary of the loop from the previous case. The second case is where it shares edges with two previous cells.