3

Call a language $L$ Hamming connected iff, for every pair of strings $x, y \in L^2$, where $|x|=|y|$, $x$ may be transformed into $y$ by a sequence of single symbol in-place replacements, so that after every replacement, the resulting string is in $L$.

Is Hamming connectivity a decidable property for regular languages? Note that the brute-force algorithm of checking all string lengths fails, as $L$ may contain infinitely many strings.

Example:

Define $L$ on the binary alphabet to be the set of strings that do not contain $101$ or $010$ as a substring. $L$ is regular. We now show that $L$ is Hamming connected.

Informal Proof: We can grow internal "runs" out to the ends to transform any string in $L$ into the all 1's or all 0's string without creating a forbidden substring, e.g., 001100 -> 011100 -> 111100 -> 111110 -> 111111. This transformation can also be done in reverse to reach any string. Thus, $L$ is Hamming connected.

Skynet_0
  • 131
  • 2
  • Can the diameter of this graph be exponential? (It feels like so, though I couldn't prove it; I was thinking about remembering the pair $(n,n+1)$ in binary.) – sdcvvc Sep 08 '19 at 13:32
  • What graph are you referring to? Also, I don't think that languages using that pair for all $n$ would be regular - as $n \to \infty$, the memory required for that pair goes to infinity, and we're working with finite automata. – Skynet_0 Sep 08 '19 at 14:23
  • Also, an NFA's corresponding DFA is exponential in size – Skynet_0 Sep 08 '19 at 14:25
  • I'm wondering whether it's always possible to go between two words in a linear number of steps, or whether there are some languages which require exponential number of steps. (I was referring to the graph where vertices are words of a fixed length, and edges connect single symbol replacements. In this problem, the goal is to decide whether this graph is connected for all $n$.) – sdcvvc Sep 08 '19 at 15:50
  • I don't think so? Clearly can't get a $2^n$ path, since that would touch every vertex in the hypercube. Going a bit further, we're essentially trying to select a sequence of vertices so that only consecutive pairs of vertices share an edge (otherwise you could take the shorter replacement path). – Skynet_0 Sep 08 '19 at 19:55

0 Answers0