Suffix-prefix avoidance: |A|·|B| ≤ q^(2n)/(e n) (Zakharov 2026) #
If A and B are sets of words of length n over q letters and no nonempty suffix of a word in
A equals a prefix of a word in B, then |A| · |B| ≤ q^(2n)/(e n); more precisely
n · |A| · |B| ≤ q^(2n) (n/(n+1))^(n+1) (D. Zakharov, arXiv:2602.20143, Theorem 1.1). The statement
and definitions are those of google-deepmind/formal-conjectures (suffix_prefix_avoidance_bound,
stated there with sorry). Proof: the overlap sets of all lengths decompose into disjoint pieces,
giving the renewal-type inequality γ_j ≤ Σ γ_i δ_{j−i}; weighting by ρ^{j−1} with
Σ δ_i ρ^i = 1 gives α γ_n ≤ (ρ−1)/ρ^(n+1), and AM-GM bounds the right side.
Main results #
SuffixPrefixAvoidance.zakharov_sharp: sharp form: n·|A|·|B| ≤ q^(2n)·(n/(n+1))^(n+1)SuffixPrefixAvoidance.zakharov_bound: |A|·|B| ≤ q^(2n)/(e n) (the formal-conjectures statement)
References #
- D. Zakharov, «An isoperimetric inequality for word overlap», arXiv:2602.20143 v2 (2026), Thm 1.1.
- google-deepmind/formal-conjectures, FormalConjectures/Other/SuffixPrefixAvoidance.lean (Apache-2.0).
Two sets of words $A, B$ over Fin q of length n are suffix-prefix avoiding if no
nonempty suffix of any word in $A$ equals any prefix of any word in $B$ of the same length.
Equations
- SuffixPrefixAvoidance.IsSuffixPrefixAvoiding A B = ∀ a ∈ A, ∀ b ∈ B, ∀ (k : Fin n), SuffixPrefixAvoidance.wordSuffix a k ≠ SuffixPrefixAvoidance.wordPrefix b k
Instances For
Real-analysis lemmas #
Qs ρ δ k = ∑_{i<k} ρ^i δ(i+1).
Equations
- SuffixPrefixAvoidance.Qs ρ δ k = ∑ i ∈ Finset.range k, ρ ^ i * δ (i + 1)
Instances For
identity (3a) of Zakharov, section 2.
Words as lists #
All words of length j, as lists.
Equations
Instances For
Suffixes none of whose proper nonempty prefixes is again a suffix of that length.
Equations
- SuffixPrefixAvoidance.Dd n A i = {u ∈ SuffixPrefixAvoidance.sfx n A i | ∀ (k : ℕ), 1 ≤ k → k < i → List.take k u ∉ SuffixPrefixAvoidance.sfx n A k}
Instances For
Words of length n with no prefix u.take k (1 ≤ k ≤ n) among the suffixes of length k.
Equations
- SuffixPrefixAvoidance.Ufin n A = {u ∈ SuffixPrefixAvoidance.Wd q n | ∀ (k : ℕ), 1 ≤ k → k ≤ n → List.take k u ∉ SuffixPrefixAvoidance.sfx n A k}
Instances For
Words of length n whose prefix of length i+1 is in D_{i+1}.
Equations
- SuffixPrefixAvoidance.Xs n A i = Finset.image (fun (p : List (Fin q) × List (Fin q)) => p.1 ++ p.2) (SuffixPrefixAvoidance.Dd n A (i + 1) ×ˢ SuffixPrefixAvoidance.Wd q (n - 1 - i))
Instances For
Bridge from functions to lists #
The combinatorial facts.
The analytic core #
Zakharov's argument, section 2, on real sequences:
α_j (suffix densities), e_j = |D_j| / q^j, u the density of the avoiding set.