33

For $n=2$, consider the free abelian group generated by polynomials corresponding to $\frac{(2 n)!}{2^n n!}=3$ partitions of $2n=4$ vertices into pairs (chords): $$ (x_1-x_3)(x_2-x_4),(x_1-x_2)(x_3-x_4),(x_1-x_4)(x_2-x_3) $$ Euler's Identity: $ (x_1-x_3)(x_2-x_4)=(x_1-x_2)(x_3-x_4)+(x_1-x_4)(x_2-x_3)$. enter image description here

So$$\{(x_1-x_2)(x_3-x_4),(x_1-x_4)(x_2-x_3)\}\tag1\label2$$ is a basis.

So the rank of the free abelian group is $2$.


For $n=3$, consider the free abelian group generated by polynomials corresponding to $\frac{(2 n)!}{2^n n!}=15$ partitions of $2n=6$ vertices into pairs (chords): \begin{array}r \{(x_1-x_2) (x_3-x_4) (x_5-x_6),\\(x_1-x_2) (x_3-x_5) (x_4-x_6),\\(x_1-x_2) (x_4-x_5) (x_3-x_6),\\(x_1-x_3) (x_2-x_4) (x_5-x_6),\\(x_1-x_3) (x_2-x_5) (x_4-x_6),\\(x_1-x_3) (x_4-x_5) (x_2-x_6),\\(x_2-x_3) (x_1-x_4) (x_5-x_6),\\(x_1-x_4) (x_2-x_5) (x_3-x_6),\\(x_1-x_4) (x_3-x_5) (x_2-x_6),\\(x_2-x_3) (x_1-x_5) (x_4-x_6),\\(x_2-x_4) (x_1-x_5) (x_3-x_6),\\(x_3-x_4) (x_1-x_5) (x_2-x_6),\\(x_2-x_3) (x_4-x_5) (x_1-x_6),\\(x_2-x_4) (x_3-x_5) (x_1-x_6),\\(x_3-x_4) (x_2-x_5) (x_1-x_6)\} \end{array} Using Euler's Identity we can decompose the product of intersecting chords into the sum of products of the non-intersecting chords. For example $(x_1-x_4)(x_2-x_5)(x_3-x_6)$ as in Fuhrmann's Theorem, enter image description here There are 5 partitions of 6 vertices into non-intersecting chords $$\tag2\label1\begin{array}l\{(x_1-x_6)(x_2-x_5)(x_3-x_4),\\ (x_1-x_6)(x_2-x_3)(x_4-x_5),\\ (x_1-x_4)(x_2-x_3)(x_5-x_6),\\(x_1-x_2)(x_3-x_6)(x_4-x_5),\\(x_1-x_2)(x_3-x_4)(x_5-x_6)\}\end{array}$$ Under lexicographic order, the leading terms of \eqref{1} are distinct: $\{x_1x_2x_3,x_1x_2x_4,x_1x_2x_5,x_1x_3x_4,x_1x_3x_5\}$. Suppose $c_1(x_1-x_6)(x_2-x_5)(x_3-x_4)+\dots+c_5(x_1-x_2)(x_3-x_4)(x_5-x_6)=0$ for some $c_1,\dots,c_5\in\mathbb{Z}$. Comparing coefficients of term $x_1x_2x_3$ to get $c_1=0$, comparing coefficients of term $x_1x_2x_4$ to get $c_2=0$, comparing coefficients of term $x_1x_2x_5$ to get $c_3=0$, comparing coefficients of term $x_1x_3x_4$ to get $c_4=0$, comparing coefficients of term $x_1x_3x_5$ to get $c_5=0$, so $c_1=\dots=c_5=0$, \eqref{1} is linearly independent. So the rank of the free abelian group is 5.


Here is a proof that the number of non-intersecting chords is Catalan number $\frac1{n+1}\binom{2n}n$.

Each polynomial in \eqref{1} can be written as a $2×n$ "non-intersecting tableaux" $$ \Biggl\{\begin{array}{|c|c|}\hline1&2&3\\\hline6&5&4\\\hline\end{array}, \begin{array}{|c|c|}\hline1&2&4\\\hline6&3&5\\\hline\end{array}, \begin{array}{|c|c|}\hline1&2&5\\\hline4&3&6\\\hline\end{array}, \begin{array}{|c|c|}\hline1&3&4\\\hline2&6&5\\\hline\end{array}, \begin{array}{|c|c|}\hline1&3&5\\\hline2&4&6\\\hline\end{array}\Biggr\} $$ To show that a "non-intersecting tableux" is determined by its first row, we give a procedure to fill in the second row. For example $\begin{array}{|c|c|}\hline1&2&5&7\\\hline?&?&?&?\\\hline\end{array}$ to fill $3,4,6,8$ in the second row such that there are no intersecting chords, we must put $3$ under the largest number less than $3:\begin{array}{|c|c|}\hline1&2&5&7\\\hline?&3&?&?\\\hline\end{array}$ then we must put $4$ under the largest remaining number less than $4:\begin{array}{|c|c|}\hline1&2&5&7\\\hline4&3&?&?\\\hline\end{array}$, then we must put $6$ under the largest remaining number less than $6:\begin{array}{|c|c|}\hline1&2&5&7\\\hline4&3&6&?\\\hline\end{array}$, then we must put $8$ under the largest remaining number less than $8:\begin{array}{|c|c|}\hline1&2&5&7\\\hline4&3&6&8\\\hline\end{array}$

For all $n$ we have shown the first rows of $\frac1{n+1}\binom{2n}n$ number of "non-intersecting tableaux" are distinct.

Under lexicographic order, the leading terms of \eqref{1} correspond to the first row of tableaux, so the leading terms are distinct, so the set of polynomials corresponding to "non-intersecting tableux" are linearly independent for all $n$.

So we have proved:

For all $n$, the rank of the above free abelian group in $2n$ variables is $\frac1{n+1}\binom{2n}n$.


For $n=4$, similarly decompose the product of intersecting chords into the sum of products of the non-intersecting chords. For example $(x_1-x_5)(x_2-x_6)(x_3-x_7)(x_4-x_8)$ enter image description here

enter image description here As you can see, there will be two identical pairs in the end, so after collecting terms there will be two terms with coefficient $2$ \begin{align} (x_1 - x_5)(x_2 - x_6)(x_3 - x_7)(x_4 - x_8)\\ = (x_1 - x_4)(x_2 - x_3)(x_5 - x_8)(x_6 - x_7)\\ + \color{red}{2}(x_1 - x_8)(x_2 - x_3)(x_4 - x_5)(x_6 - x_7)\\ + (x_1 - x_2)(x_3 - x_8)(x_4 - x_7)(x_5 - x_6)\\ + (x_1 - x_2)(x_3 - x_8)(x_4 - x_5)(x_6 - x_7)\\ + \color{red}{2}(x_1 - x_2)(x_3 - x_4)(x_5 - x_6)(x_7 - x_8)\\ + (x_1 - x_2)(x_3 - x_4)(x_5 - x_8)(x_6 - x_7)\\ + (x_1 - x_4)(x_2 - x_3)(x_5 - x_6)(x_7 - x_8)\\ + (x_1 - x_8)(x_2 - x_3)(x_4 - x_7)(x_5 - x_6)\\ + (x_1 - x_2)(x_3 - x_6)(x_4 - x_5)(x_7 - x_8)\\ + (x_1 - x_8)(x_2 - x_7)(x_3 - x_4)(x_5 - x_6)\\ + (x_1 - x_8)(x_2 - x_7)(x_3 - x_6)(x_4 - x_5)\\ + (x_1 - x_8)(x_2 - x_5)(x_3 - x_4)(x_6 - x_7)\\ + (x_1 - x_6)(x_2 - x_3)(x_4 - x_5)(x_7 - x_8)\\ + (x_1 - x_6)(x_2 - x_5)(x_3 - x_4)(x_7 - x_8)\end{align}

Conjecture. Express $(x_1-x_{n+1})(x_2-x_{n+2})\dots(x_n-x_{2n})$ as a linear combination of polynomials corresponding to the non-intersecting chords, then the term $(x_1-x_2)(x_3-x_4)\cdots(x_{2n-1}-x_{2n})$ and the term $(x_{2n}-x_1)(x_2-x_3)\cdots(x_{2n-2}-x_{2n-1})$ have largest coefficient in absolute value.

Mathematica code to compute the largest coefficients in absolute value

Needs["Combinatorica`"];
coeff[n_]:=Max[Abs[PolynomialReduce[Product[Indexed[x,i]-Indexed[x,n+i],{i,n}],Table[Module[{t1=t[[1]],t2=t[[2]],poly=1,i=1},Do[i=1;While[Length[t1]>i&&t1[[i+1]]<t2[[1]],i++];poly*=Indexed[x,t1[[i]]]-Indexed[x,t2[[1]]];t1=Delete[t1,i];t2=Rest[t2],n];poly],{t,Tableaux[Table[n,2]]}],Table[Indexed[x,i],{i,2n}]][[1]]]]

the terms $n=2,\dots,9$ in the sequence agree with A099960: \begin{array}{c|c} n&2&3&4&5&6&7&8&9\\\hline \text{largest abs coefficient}&1&1&2&3&8&17&56&155 \end{array}

hbghlyj
  • 6,799
  • The expansion of $(1-8x+21x^2-20x^3+5x^4)/(1-9x+28x^2-35x^3+15x^4-x^5)$ also produces $1,1,2,5,14,42$ as Catalan, but then $132,429$, which is not Catalan. Also $binomial(fibonacci(k) + 1, 2)$ produces $1,1,2,5,14,42,132$ and so on. – Dietrich Burde Aug 16 '20 at 11:42
  • @DietrichBurde The first example you gave only starts failing at the $x^{10}$ term. $132$ and $429$, as well as the two terms that follow $1430$ and $4862$, are Catalan numbers. The second example evaluates to $3$ when $k=3$. Though I do get your point that it's best not to be too confident about integer sequences when you only know the first few terms. – Elliot Yu Aug 16 '20 at 14:27

1 Answers1

2

The conjecture posits that the largest absolute coefficient in the expansion of the polynomial $\prod_{k=1}^{n} (x_k - x_{n+k})$ in the basis of $C_n$ non-crossing matching is given by the sequence A099960(n+1), where A099960 is the interleaving of Genocchi numbers of the first and second kinds and no direct connection to matching polynomials is noted in OEIS descriptions (which instead relate A099960 to ascent sequences and Genocchi numbers).

For verification, the coefficient of the term $(x_{2n}-x_1)(x_2-x_3)...(x_{2n-2}-x_{2n-1})$ is computed via recursive resolution of crossings, counting the number of paths (each contributing +1) that resolve the initial matching to the target non-crossing matching. This is derived by adapting the identity for crossing pairs, branching at each step, and memoizing the subtotal for the target. Computational verification confirms the coefficients match A099960($n+1$) up to $n=12$.

import itertools,time,sys

sys.setrecursionlimit(10000) # Increase if needed for higher n

def is_non_crossing(matching): for pair1, pair2 in itertools.combinations(matching, 2): p1, p2 = pair1 q1, q2 = pair2 if p1 < q1 < p2 < q2 or q1 < p1 < q2 < p2: return False return True

def find_crossing(matching): min_crossing = None for pair1, pair2 in itertools.combinations(matching, 2): p1, p2 = pair1 q1, q2 = pair2 if p1 < q1 < p2 < q2: candidate = (p1, q1, p2, q2) if min_crossing is None or candidate < min_crossing: min_crossing = candidate elif q1 < p1 < q2 < p2: candidate = (q1, p1, q2, p2) if min_crossing is None or candidate < min_crossing: min_crossing = candidate return min_crossing

def compute_specific_coeff(n): # Target: the rotated matching corresponding to (x_{2n}-x_1)(x_2-x_3)...(x_{2n-2}-x_{2n-1}) target_pairs = [(1, 2n)] + [(2k, 2*k+1) for k in range(1, n)] initial_pairs = [(k, n + k) for k in range(1, n + 1)] memo = {} target_key = tuple(sorted(target_pairs)) def coeff(matching): key = tuple(sorted(matching)) if key in memo: return memo[key] if is_non_crossing(matching): res = 1 if key == target_key else 0 memo[key] = res return res crossing = find_crossing(matching) if crossing is None: return 0 a, c, b, d = crossing pair1 = (a, b) pair2 = (c, d) new_nested = [p for p in matching if p != pair1 and p != pair2] + [tuple(sorted([a, c])), tuple(sorted([b, d]))] new_swapped = [p for p in matching if p != pair1 and p != pair2] + [tuple(sorted([a, d])), tuple(sorted([c, b]))] res = coeff(new_nested) + coeff(new_swapped) memo[key] = res return res return coeff(initial_pairs)

for n in range(2, 13): start = time.time() res = compute_specific_coeff(n) end = time.time() print(f"n={n}, largest abs coeff={res}, time={end - start:.2f}s")

n=2, largest abs coeff=1, time=0.00s
n=3, largest abs coeff=1, time=0.00s
n=4, largest abs coeff=2, time=0.00s
n=5, largest abs coeff=3, time=0.00s
n=6, largest abs coeff=8, time=0.00s
n=7, largest abs coeff=17, time=0.02s
n=8, largest abs coeff=56, time=0.02s
n=9, largest abs coeff=155, time=0.18s
n=10, largest abs coeff=608, time=0.95s
n=11, largest abs coeff=2073, time=5.31s
n=12, largest abs coeff=9440, time=31.86s
user1673562
  • 304
  • 11
  • The time complexity of the algorithm is $O(S \cdot n^2)$, where $S$ is the number of unique perfect matchings (states) encountered and memoized during the recursion. Each state requires $O(n^2)$ time to check for crossings and identify the lexicographically smallest one (via examining all $\binom{n}{2}$ pairs of edges). – user1673562 Aug 16 '25 at 23:36
  • Empirically, based on computations for $n=2$ to $n=10$, $S$ grows exponentially: 3, 9, 29, 100, 363, 1406, 5669, 24012, 105496. The growth ratio $S_n / S_{n-1}$ increases from approximately 3 to 4.4, suggesting $S = \Theta(r^n)$ for some base $r \approx 4$ (though not exactly fitting a constant base). Thus, the overall time complexity is exponential in $n$. – user1673562 Aug 16 '25 at 23:36
  • The complexity analysis decomposes the algorithm into the number of states processed (each visited exactly once due to memoization) multiplied by the per-state cost. The empirical $S$ values were obtained by executing the algorithm and counting the size of the memo dictionary for each $n$. – user1673562 Aug 16 '25 at 23:36