La Puerta AND No Filtra: Una Falla de Solidez en la Construcción de la Condición de Victoria
Nota Técnica N.º 15 de la IRF — una errata a la Sección 6 de Raumschach y Complejidad Computacional
El artículo consolidado (Raumschach y Complejidad Computacional, Sección 6) describe el mecanismo de puerta AND / condición de victoria de la siguiente manera: una Torre V se sitúa en el punto donde su propia línea de rango se cruza con una línea triagonal que llega hasta el Rey, con testigos de entrada booleanos más adelante en esa misma línea de rango, cada uno bloqueando la retirada de V cuando es Falso y desviándose de la línea cuando es Verdadero; la retirada de V es legal “si y solo si todos los testigos se han desviado”. Una vez legal, afirma el artículo, la retirada de V abre la línea triagonal para un Unicornio de jaque, que da jaque y cierra la última casilla de huida del Rey simultáneamente.
El trabajo computacional continuado, construyendo hacia el ensamblaje completo de una fórmula no trivial, puso a prueba este mecanismo contra un generador de movimientos legales real por primera vez con más de un testigo de entrada en secuencia genuina — un caso que la verificación original (Nota N.º 9 y las propias pruebas de la Sección 6 del artículo consolidado) no parece haber ejercitado, ya que todas las pruebas anteriores solo comprobaban si V podía alcanzar una única casilla de huida específica y totalmente retirada, bajo una única asignación preelegida. Esa comprobación encontró una falla de solidez genuina: el mecanismo, tal como está especificado, no implementa AND para más de un testigo de entrada. Entrega jaque mate en cuanto cualquier testigo individual más cercano a V se ha desviado, con independencia del estado de cualquier testigo más adelante en la línea. Esto es lo opuesto del comportamiento afirmado, y más cercano a OR que a AND.
La solidez de la puerta depende de una suposición que resulta no sostenerse: que V debe retirarse hasta el final a su casilla de huida designada antes de que se descubra el rayo del Unicornio de jaque. De hecho, el rayo del Unicornio de jaque atraviesa específicamente la casilla de origen de V — el único punto donde la línea de rango de V cruza la línea triagonal del Rey —, no la casilla de huida. En el instante en que V abandona esa única casilla de origen, por cualquier motivo y hacia cualquier destino, el rayo del Unicornio queda despejado y se entrega jaque descubierto. Esto se confirmó directamente: mover a V una sola casilla lejos de su posición de origen, con un Unicornio de jaque colocado en cualquier punto más alejado en la misma línea triagonal con un camino despejado, produce jaque mate inmediato — antes de que el propio Unicornio haya realizado movimiento alguno, y con independencia de qué tan lejos haya llegado realmente V.
Esto colapsa el AND multitestigo pretendido. Considérense dos testigos de entrada, T1 el más cercano a V y T2 a continuación, ambos inmediatamente adyacentes sin espacio entre ellos (la colocación más fuerte posible, probada directamente en lugar de asumida). Si x1 es Verdadero, T1 se desvía y desocupa la casilla adyacente a V. V ahora tiene un movimiento legal — una casilla, hacia la antigua posición de T1 — con independencia de si x2 es Verdadero o Falso, porque la legalidad de una Torre para realizar algún movimiento en una dirección depende únicamente de si el obstáculo más cercano está presente, no de ningún obstáculo más adelante en la línea. Ese movimiento de una casilla basta: desocupa la casilla de origen de V, y el jaque mate sigue de inmediato, tanto si T2 (que representa x2) se ha desviado como si no.
Esto se verificó directa y precisamente: con x1 = Verdadero y x2 = Falso, V tiene exactamente un movimiento legal (hacia la casilla que T1 desocupó); realizar ese movimiento produce una posición en la que el Rey está en jaque con cero respuestas legales — jaque mate —, aun cuando la conjunción x1 ∧ x2 es Falsa. Un caso de control (x1 = Falso, x2 = Verdadero) confirma que el testigo más cercano por sí solo basta para bloquear a V por completo, con independencia de los testigos más adelante: V tiene cero movimientos legales. Entre ambos casos, el patrón es inequívoco: el resultado sigue únicamente el estado del testigo más cercano a V. Todo otro testigo en la cadena es lógicamente inerte.
Toda prueba desde la propia verificación de la Sección 6 — a través del trabajo posterior de composición, sincronización de tiempos y árbol de juego de este proyecto — comprobó la legalidad de V preguntando si V podía alcanzar una única casilla de destino específica y totalmente retirada, con los testigos de entrada colocados (u omitidos) directamente según una asignación booleana preelegida. Esa comprobación da la respuesta de apariencia correcta siempre que la geometría nunca le dé a V un movimiento legal parcial y no terminal para tomar en su lugar — lo cual era cierto en toda configuración probada, generalmente porque los testigos se espaciaban con huecos, o porque solo había un único testigo en juego, o porque las pruebas de composición conectaban valores de verdad directamente en lugar de construir una cadena multitestigo genuina con colocación adyacente. El vacío solo emerge cuando (a) más de un testigo se sitúa en secuencia real sobre la línea de V, (b) el más cercano es capaz de desviarse independientemente de los demás, y (c) la comprobación de la condición de victoria formula la pregunta que el mecanismo realmente responde — “¿tiene V algún movimiento legal en absoluto?” — en lugar de la pregunta sustituta — “¿puede V alcanzar esta casilla específica?”. Ninguna prueba anterior a esta formuló (c) en presencia simultánea de (a) y (b).
No afectadas: las construcciones de corredor, cruce de nivel y puerta OR (Secciones 5 y 7), que no dependen del truco de casilla-de-origen/línea-triagonal de V. El hallazgo general de que la tercera dimensión del Raumschach elimina el obstáculo de cruce de cables del ajedrez plano (Sección 3) es un argumento estructural y geométrico independiente de este gadget, y tampoco se ve afectado.
Afectada: la construcción de puerta AND / condición de victoria de la Sección 6, específicamente su afirmación de filtrar correctamente un número arbitrario de entradas booleanas. La construcción es sólida para exactamente un testigo de entrada (no hay nada respecto de lo cual un segundo testigo pueda ser inerte). No es sólida, tal como está especificada, para dos o más.
También afectada, pendiente de reexamen: el escalado a tres entradas afirmado en la Sección 6 (“verificado que escala a tres entradas sin cambios”) y la propia solidez de la puerta OR bajo composición, ya que el mecanismo de escape de la puerta OR se conectó, en el trabajo de composición posterior de este proyecto, directamente a la misma línea de rango que una entrada de puerta AND, usando la lógica idéntica de desocupar-la-línea que ahora se demuestra no sólida para el filtrado secuencial multitestigo. Cualquier estructura compuesta construida sobre test_assembly_composite.py, test_double_composite.py, o test_single_token_composition.py de este proyecto hereda este vacío por la misma razón: cada una conectó un valor booleano calculado a la presencia o ausencia de un único testigo sustituto en la línea de V, que es exactamente el caso de un-testigo-a-la-vez que esta nota demuestra que es sólido — pero ninguna de ellas probó dos o más testigos independientemente móviles en la misma línea en secuencia real, que es donde realmente reside el vacío.
Actualización, añadida tras trabajo posterior: existe una solución sólida, aunque es más limitada que la afirmación original. No se necesitó ninguna de las dos direcciones nombradas anteriormente (puertas en cascada por pares, desacoplar el rayo de jaque de la casilla lejana de V); la corrección es más simple y tiene un costo en alcance. Se confirmó directamente contra el generador:
El costo: esta es una reparación genuina de la solidez, no de la ambición original. Ya no es cierto que una sola pieza física pueda cumplir doble o triple función — como testigo móvil propio de una subfórmula, como bloqueador de línea de rango, y como pieza situada en el rayo de jaque, todo a la vez — de la manera en que la Sección 6 y los propios test_single_token_composition.py y test_double_composite.py de este proyecto asumían. La composición ahora requiere un paso de conexión explícito y separado entre una subfórmula verificada y el único testigo que realmente importa para el mate. Si existe un diseño que recupere la composición de un solo testigo y sin conexión explícita, sin reintroducir la falla original de esta nota, sigue siendo una pregunta abierta; lo que ya no está abierto es si existe alguna construcción sólida para fórmulas arbitrarias de esta forma — sí existe, y se ha comprobado.
El mecanismo de puerta AND / condición de victoria de la Sección 6 del artículo consolidado, tal como fue especificado originalmente, no filtra correctamente más de una entrada booleana: el mate se entrega en cuanto el testigo más cercano a V se desvía, con independencia de cualquier otro testigo en la cadena, lo cual está más cerca de OR que del AND afirmado. Esto se verificó directamente contra el generador de movimientos legales con testigos colocados inmediatamente adyacentes a V — la disposición más fuerte disponible —, descartando la colocación como causa. El vacío no era visible en ninguna prueba anterior a esta porque toda prueba previa, incluido el propio trabajo de composición y árbol de juego de este proyecto, comprobaba una condición sustituta (si V puede alcanzar una casilla específica) que coincide con la condición de victoria real (si V tiene algún movimiento legal en absoluto) solo en el caso de una sola entrada. Se encontró y verificó una reparación sólida para fórmulas arbitrarias construidas con OR y AND: mantener la puerta propia de V a exactamente un testigo adyacente, y calcular toda la lógica de subfórmulas completamente fuera de la casilla de V, conectando el resultado. Esto restaura la corrección a costa de la composición de un solo testigo y triple función que este proyecto había estado persiguiendo; recuperar esa propiedad más fuerte, si acaso es posible, sigue siendo una cuestión abierta.