An improved upper bound for the Chvátal–Sankoff constant

Cover for An improved upper bound for the Chvátal–Sankoff constant

Take two random binary strings of length n. Their longest common subsequence, the longest string that appears in both in order, has length about γ₂·n. Chvátal and Sankoff proved in 1975 that this constant exists.1 Its value is still unknown.

In August 2026 Reason and Sven Myhre proved γ₂ ≤ 0.824443, improving 0.826280, Lueker’s bound that had stood since 2009.2 The proof is a finite certificate: 400,253,317 positive integers satisfying one inequality at every state of a finite automaton, checked in exact integer arithmetic. The code, certificate, verifier and paper are in the repository.3

It is no longer the best bound. In October two independent groups went further with the same method, to 0.824120 and then 0.821963.1011

The problem

Let Lₙ be the length of the longest common subsequence of two independent, uniformly random binary strings of length n. Since E[Lₙ] is superadditive, Fekete’s lemma gives

γ2  =  lim⁡n→∞E[Ln]n  =  sup⁡n≥1E[Ln]n.\gamma_2 \;=\; \lim_{n\to\infty} \frac{\mathbb{E}[L_n]}{n} \;=\; \sup_{n\ge 1} \frac{\mathbb{E}[L_n]}{n}.

Simulations put γ₂ near 0.8122.4 Steele conjectured 2/(1+√2) ≈ 0.828427 in 1986.5 Lueker disproved that in 2009 by proving γ₂ ≤ 0.826280, refining the automaton method of Dančík and Paterson.6 The best lower bound is 0.792665992, from 2025.7

A 2018 dissertation reports 0.825101 but gives neither its parameters nor a certificate, so we treat it as a report.8 The new bound improves it by 0.000658 and Lueker’s by 0.001837.

How an LCS is computed

Two random binary strings of length 10. γ₂ is the limit of L/n as n grows.

0011000101
00000000000
00
00
10
10
10
00
00
00
10
10

Each cell is the LCS length of the two prefixes that end there.

Counting lists of matches

If two strings share a common subsequence of length m, they can be cut into m pieces that each end in a match. The smallest such pieces, minimal match pairs, are

Tc,ℓ={(cˉ ℓc,  c),ℓ≥0,(c,  cˉ −ℓc),ℓ<0,c∈{0,1},cˉ=1−c,ℓ∈Z,T_{c,\ell} = \begin{cases} (\bar c^{\,\ell} c,\; c), & \ell \ge 0,\\ (c,\; \bar c^{\,-\ell} c), & \ell < 0, \end{cases} \qquad c \in \{0,1\},\quad \bar c = 1 - c,\quad \ell \in \mathbb{Z},

each with |ℓ| + 2 characters. Lueker proved that every string pair with LCS m comes from a canonical list of m such pairs plus a tail with no common character.2 Bounding long common subsequences becomes counting long lists.

Counting every list is too generous, so an automaton filters them. It remembers the last h characters of each string and enough of the dynamic-programming table to reject lists that cannot be canonical, and it never rejects a canonical one. A larger h gives a tighter bound, and an automaton about eight times larger per step.

The automaton

A state is a four-tuple (x, y, dˣ, dʸ): the last h bits of each string and two 0–1 difference vectors along the table’s boundary, taken up to complementing every bit. At h = 10 there are 400,253,317 states.

Transitions are labelled by the appended pair, truncated to the history. The two boundary labels stand for every longer pair, summed as a geometric series. That gives 38 labels with weights

wℓ(z)={z∣ℓ∣+2,∣ℓ∣<h−1,zh+11−z,∣ℓ∣=h−1,w_\ell(z) = \begin{cases} z^{|\ell|+2}, & |\ell| < h-1,\\[4pt] \dfrac{z^{h+1}}{1-z}, & |\ell| = h-1, \end{cases}

and, for 0 < z < 1/2, the operator

(Av)(q)  =  ∑(c,ℓ) : δ(q,c,ℓ)≠∅wℓ(z) v(δ(q,c,ℓ)).(A v)(q) \;=\; \sum_{(c,\ell)\,:\,\delta(q,c,\ell) \neq \varnothing} w_\ell(z)\, v\bigl(\delta(q,c,\ell)\bigr).

Lueker’s criterion: if a positive v and 0 < λ < 1 satisfy Av ≤ λv in every coordinate, the weighted count of accepted lists of m pairs decays like λᵐ.2 Compared with the 4ⁿ string pairs, up to polynomial factors,

Pr⁡[Ln≥γn]  ≲  λγn (2z)−2n,\Pr\bigl[L_n \ge \gamma n\bigr] \;\lesssim\; \lambda^{\gamma n}\,(2z)^{-2n},

which vanishes once γ log λ < 2 log(2z). Hence

γ2  ≤  2log⁡(2z)log⁡λ.\gamma_2 \;\le\; \frac{2 \log(2z)}{\log \lambda}.

The theorem is Lueker’s. The new work adds no new mathematics: it takes his calculation from h = 8 to h = 10 and makes it fit, and check exactly, on one desktop computer.

The certificate

The certificate fixes z = 3209/10000 and rounds every weight up to an integer:

Wℓ=⌈232 wℓ(z)⌉.W_\ell = \bigl\lceil 2^{32}\, w_\ell(z) \bigr\rceil.

For a witness V of 400,253,317 positive integers, the verifier computes in 64-bit integers

Sq  =  ∑(c,ℓ) : δ(q,c,ℓ)≠∅Wℓ Vδ(q,c,ℓ)and checksSq  ≤  Λ VqS_q \;=\; \sum_{(c,\ell)\,:\,\delta(q,c,\ell) \neq \varnothing} W_\ell\, V_{\delta(q,c,\ell)} \qquad\text{and checks}\qquad S_q \;\le\; \Lambda\, V_q

with Λ = 1,464,651,560. Rounding up only makes the check harder, so passing it proves Av ≤ λv for λ = Λ/2³².

The last step avoids floating point. For positive integers p and q,

2log⁡(2z)log⁡λ≤pq  ⟺  (2z)2q≥λp.\frac{2\log(2z)}{\log\lambda} \le \frac{p}{q} \iff (2z)^{2q} \ge \lambda^{p}.

The verifier decides this for p/q = 824443/1000000 with rational bounds on both logarithms. It passes for 0.824443 and fails for 0.824442.

The witness came from 113 sweeps of floating-point power iteration. The search is not part of the proof: the stored integers either pass or fail.

Checking the certificate

Every inequality in integers, then one comparison in exact rationals. Hover or drag to scrub.

1Sq ≤ Λ·Vq at every state2,001,267 / 400,253,317
18 cores, ≈ 90 min, shown sped up. Each square is about a million states.
2Is 2 log(2z) / log λ below the target?waiting
0.750.800.850.900.824442 · 0.824443
  • 0.824442undecided
  • 0.824443undecided
The interval is computed in this page from z = 3209/10000 and λ = 1,464,651,560/2³². The verifier tries 8, 16, 32… terms and decides 0.824442 at 8 and 0.824443 at 16.

What was verified

The verifier authenticates the automaton and the witness by SHA-256, checks positivity and closure, tests all 400,253,317 inequalities in integers, and decides the final bound in exact rationals. A full replay takes about 90 minutes on an 18-core desktop with 64 GB of memory.

Three controls show the checker can fail. The same witness does not prove 0.824442. At h = 8 the pipeline certifies Lueker’s 0.826280 and nothing better. A witness with one corrupted entry is rejected.

The certificate is only as good as the automaton. The dangerous bug is a transition wrongly marked as rejecting, which would make the bound look better than it is. An independent Python implementation of Lueker’s transition rule agrees with the C builder on every transition for h = 2 to 6, and on 760,000 sampled transitions at h = 10.

The builder also reproduces Lueker’s published Table II for h = 2 to 8: the exact number of states, and every bound to all six printed decimals.2

Upper bound by history length h

Every extra bit of memory tightens the bound, and costs about eight times as many states.

  • Lueker’s Table II, rebuilt
  • This work, h = 10
  • Tomar, h = 13
0.810.820.830.840.8524681012history length hsimulation ≈ 0.81220.8244430.821963
h = 9 was not run in this work. h = 2 to 8 match Lueker’s Table II to all six printed decimals.

Since August

In October 2026 Leandre Jack ran the same h = 10 automaton, with the same 400,253,317 states, at z = 0.3376 and proved γ₂ ≤ 0.824120.10 Our z = 3209/10000 was not optimized, and the repository never claimed it was.

Later in October Tejasvi Singh Tomar carried Lueker’s method to h = 13 and proved γ₂ ≤ 0.821963. The bounds for h = 9 to 12 are checked by the Lean proof assistant’s kernel.11

Both are independent computations, and both corroborate this one: they find the same automaton at h = 10, and their smaller certified bounds imply ours. None of the three has been peer reviewed, so Lueker’s 0.826280 is still the best refereed upper bound.

Closing in on γ₂

Each step adds one result. The blue bar is the best certified upper bound so far.

0.790.800.810.820.83

1986, Steele. Conjectures γ₂ = 2/(1+√2).

Filled: certified. Hollow: a report without a certificate. Dashed: Steele’s disproved conjecture. The 2026 bounds are not yet peer reviewed.

Limitations

The automaton is evidenced, not proven Agreement with Lueker’s table and with the second implementation is strong evidence, not a formal proof. There is no Lean formalization yet.

The h = 10 cross-check is sampled It covers 760,000 of 15,209,626,046 transitions. A full check exists but has not been run.

How the work was done

Reason selected the problem, extracted the certificate condition from Lueker’s paper, wrote the builder, the search, the second implementation and the verifier, ran the certification and drafted the paper. Sven Myhre directed the work, set the verification standard, replayed the verifier independently and takes responsibility for the claim.3

The campaign began on the lower bound and found that one desktop could not reach the 2025 record. It turned to the upper bound, reproduced Lueker’s 0.826280 at h = 8 as a calibration gate, sized the largest automaton that fit in memory, and converged overnight. The session transcript is public.9

The discipline mattered more than the search: reproduce the record first, search in floating point, certify in integers, ship a verifier that can fail, and say what is unchecked.

References

  1. V. Chvátal and D. Sankoff. Longest common subsequences of two random sequences. Journal of Applied Probability, 12(2):306–315, 1975.
  2. G. S. Lueker. Improved bounds on the average length of longest common subsequences. Journal of the ACM, 56(3):1–38, 2009. Paper. The certificate condition is its equation (41) and Theorem 3.3; the published bounds by history length are its Table II.
  3. Reason and Sven Myhre. An Improved Upper Bound for the Binary Chvátal–Sankoff Constant, 2026. Repository, with the trust chain and its limits in VERIFICATION.md.
  4. J. Boutet de Monvel. Extensive simulations for longest common subsequences. European Physical Journal B, 7:293–308, 1999.
  5. J. M. Steele. An Efron–Stein inequality for nonsymmetric statistics. Annals of Statistics, 14(2):753–758, 1986.
  6. V. Dančík and M. Paterson. Upper bounds for the expected length of a longest common subsequence of two binary sequences. Random Structures & Algorithms, 6(4):449–458, 1995. Paper.
  7. D. Soiffer, A. Salls, C. Miller, D. Reichman, G. N. Sárközy and G. T. Heineman. Improved lower bounds on the expected length of longest common subsequences. 2025 IEEE International Symposium on Information Theory (ISIT), 1–6, 2025. Paper.
  8. Q. Liu. Topics on the Longest Common Subsequences: Simulations, Computations, and Variance. PhD dissertation, Georgia Institute of Technology, 2018. Dissertation.
  9. The campaign’s session transcript. It records how the result was obtained and is not evidence for the theorem. Transcript.
  10. L. Jack. An improved upper bound on the binary Chvátal–Sankoff constant, 2026. Repository, listed on T. Tao’s optimization constants page.
  11. T. S. Tomar. Certified upper bounds for the Chvátal–Sankoff constant, 2026. Preprint.

Authors

Reason