Conjecture on strong nodal domains of ternary Hamming graphs
Let be the Hamming graph with vertex set , where two vertices are adjacent when they differ in exactly one coordinate. Its Laplacian has eigenvalue corresponding to the index . For an eigenfunction , let denote its number of strong nodal domains.
Conjecture on ternary strong nodal domains. For any eigenfunction of , , with eigenvalue we have .
This is the last remaining open case for the analogous problem with in the paper. Numerical experiments for found minimum values , respectively, supporting the conjectured linear lower bound.
References
Primary source
Alexandr Valyuzhenich and Konstantin Vorob'ev, “On strong nodal domains for eigenfunctions of Hamming graphs”, arXiv:2502.14543 (2025).
Progress summary
A posted but independently unverified construction claims the conjecture is false in five dimensions, overturning the paper’s open-case status.
The conjecture, posed by Alexandr Valyuzhenich and Konstantin Vorob’ev in 2025, asserts that every eigenfunction of with eigenvalue has at least strong nodal domains. The paper identified this as its last unresolved ternary case and found minima for .
Known results
- Valyuzhenich and Vorob’ev (2025) prove that for and , some eigenfunction with eigenvalue has exactly two strong nodal domains.
- Their computation supports the conjectured lower bound for .
Posted attempt
An explicit integer-valued construction claims an eigenfunction on with eigenvalue and exactly strong nodal domains, violating . It includes an exact finite verification, but the counterexample has not been independently verified.
Current status (as of August 2026): The conjecture is not independently settled; the posted counterexample claim would disprove it if correct, while verification and the resulting status remain open.
Sources
Solutions 1
CounterexampleThis solution needs a summarySee full solution
The conjecture fails for . We construct an integer-valued eigenfunction of with Laplacian eigenvalue and exactly four strong nodal domains. The function has 28 zero vertices; these are excluded from strong nodal domains, as required by the definition in Valyuzhenich–Vorob’ev, Sections 1–2 and Conjecture 2.
The eigenfunction
Write vertices as . Define two functions on by
For , let be its binary digits, so that . Specify the 32 integers by the following matrix, whose entry in row and column is , with rows and columns starting at zero:
Set
This is nonzero: . Each sums to zero, so the sum of along every coordinate line is zero. Consequently, for each vertex and each coordinate, the values at the two neighbors obtained by changing that coordinate sum to . There are five coordinates and every vertex has degree ten. Therefore
This is also the usual tensor-product construction of eigenfunctions, recalled in Lemma 1 and Corollary 1 of the cited paper. No approximation of an eigenvalue or eigenvector is involved.
The four strong nodal domains
Let and . Define
and . The values of on the three listed vertices of are respectively , and its value on is . The four strong nodal domains are
with sizes , respectively. There are exactly 28 remaining vertices, all with value zero.
Here is a complete exact verification of this finite certificate. It evaluates the displayed definition on all vertices. The neighbor routine uses precisely adjacency in . For each proposed domain it checks both connectedness and the absence of edges to another vertex with the same strict sign. All arithmetic is integer arithmetic.
from itertools import product
c = (
0, 3, -7, 0, 1, 0, 4, 1,
-7, -1, 3, 0, 1, 1, 0, 0,
0, -6, -3, -1, 4, 0, -2, 0,
-1, 0, 1, 2, 4, 1, 1, -1,
)
V = tuple(product(range(3), repeat=5))
def value(x):
total = 0
for j, coefficient in enumerate(c):
term = coefficient
for i, a in enumerate(x):
if a == 2:
term = -term
elif a != ((j >> i) & 1):
term = 0
total += term
return total
def neighbors(x):
for i in range(5):
for a in range(3):
if a != x[i]:
yield x[:i] + (a,) + x[i+1:]
F = {x: value(x) for x in V}
assert F[(1, 0, 0, 0, 0)] == 3
for i in range(5):
for y in product(range(3), repeat=4):
assert sum(F[y[:i] + (a,) + y[i:]]
for a in range(3)) == 0
for x in V:
assert sum(F[x] - F[y] for y in neighbors(x)) == 15*F[x]
P = {x for x in V if F[x] > 0}
N = {x for x in V if F[x] < 0}
B = {(0, 2, 2, 1, 1), (1, 2, 2, 1, 1), (1, 2, 2, 2, 1)}
C = {(2, 2, 0, 2, 2)}
assert B <= P and C <= N
domains = (P - B, B, N - C, C)
assert [len(U) for U in domains] == [101, 3, 110, 1]
assert sum(F[x] == 0 for x in V) == 28
for U in domains:
root = min(U)
reached, pending = {root}, [root]
while pending:
x = pending.pop()
for y in neighbors(x):
if F[x]*F[y] > 0:
assert y in U
if y not in reached:
reached.add(y)
pending.append(y)
assert reached == U
print("243 vertices; eigenvalue 15; 28 zeros; 4 strong nodal domains")
Thus , contradicting Conjecture 2.