≠∧∨¬n 1.9mod6compuertas que no pueden resolver SAT (en términos simples, es posible que exista un algoritmo paralelo de tiempo constante con un número polinómico de procesadores que resuelve SAT y cada proceso computa solo una de estas compuertas). Los mejores límites inferiores que tenemos para las máquinas de Turing que resuelven SAT ni siquiera pueden mostrar que no hay un algoritmo cuyo tiempo de ejecución multiplicado por el espacio que usa es . Puedo continuar un poco sobre el estado bastante vergonzoso de probar los límites inferiores (pero tenga en cuenta que también tenemos resultados de barrera que explican por qué es tan difícil probar los límites inferiores). Algunos expertos creen que el programa GCT de Ketan Mulmuley es el más probable para resolver P vs. NP y el propio Mulmuley ha dicho repetidamente que cree que probablemente tomará más de cien años llegar allí.n1.9
Sin embargo, ha habido algunos trabajos recientes de Ryan Williams y otros que muestran que existen vínculos intrínsecos entre probar los límites inferiores y encontrar algoritmos. Por ejemplo, demostró que un algoritmo ligeramente mejor que el algoritmo de fuerza bruta para un problema SAT restringido en particular implica límites inferiores del circuito y luego diseñó dicho algoritmo. Así que creo que las personas son un poco menos pesimistas y tampoco parecen desarrollar algoritmos y probar límites inferiores tan separados como solían pensar que son.
Ahora volvamos a la pregunta y tratemos de verla un poco más religiosamente. Para responder a la pregunta necesitamos formalizar lo que queremos decir con dificultad de probar una declaración. Para esto, podemos usar la teoría de la prueba y la complejidad de la prueba que examina exactamente varias formas de definir la dureza de probar una declaración. Permítanme dar una breve explicación de qué trata la complejidad de la prueba. Un sistema de prueba es esencialmente un algoritmo verificador para pruebas. Le damos una cadena y una cadena y preguntamos si es una prueba deφ π φπφπφy el algoritmo devuelve sí o no. Puede pensar en cualquier comprobador de pruebas de esta manera. También puede pensar en pruebas en un sistema matemático como ZFC como tal. El proceso de verificación en sí se puede realizar en tiempo polinómico en el tamaño de la prueba porque es una tarea sintáctica.
Ahora considere una fórmula . ¿Qué significa que sea difícil de probar? Una posibilidad es que la prueba más corta de sea muy grande. Si es demasiado grande, digamos que el número de bits necesarios para representarlo es mayor que entonces ni siquiera podemos establecer la prueba. Una segunda posibilidad es que la prueba no es demasiado grande pero es difícil de encontrar. Déjame explicarte esto un poco: piensa en un algoritmo de búsqueda de pruebas. La mayoría de las reglas son deterministas en un sistema como LKφ φ 2 65536φφφ265536en el sentido de que puede determinar las líneas anteriores de la línea actual en la prueba y la regla. Una excepción importante a esto es la regla de corte. Es importante porque, aunque no necesitamos la regla de corte para probar declaraciones, puede reducir considerablemente el tamaño de la prueba más corta. Sin embargo, la regla de corte no es determinista: hay una fórmula de corte que debemos adivinar. Puedes pensar en la regla de corte como probar lemas y usarlas. La fórmula de corte es como un lema. Pero, ¿qué lema deberíamos demostrar que nos ayudará? Esa es la parte difícil. A menudo, un resultado se prueba en matemáticas al encontrar un buen lema. Además, cuando usa resultados probados previamente, esencialmente está usando la regla de corte. Otro componente importante en las declaraciones de prueba son las definiciones. A menudo definimos un nuevo concepto, luego probamos declaraciones al respecto, y finalmente aplicarlo en nuestro caso particular. El uso de definiciones reduce el tamaño de las fórmulas (intente expandir alguna fórmula matemática al lenguaje teórico de conjunto puro expandiendo las definiciones para tener una idea de cuán importantes son las definiciones). Nuevamente, ¿qué nuevas definiciones debemos usar? No lo sabemos Esto me lleva al tercer significado de una declaración que es difícil de probar. Una declaración puede ser difícil de probar porque necesita axiomas fuertes. Tomar eg Una declaración puede ser difícil de probar porque necesita axiomas fuertes. Tomar eg Una declaración puede ser difícil de probar porque necesita axiomas fuertes. Tomar egCH . No se puede probar en ZFC ni se puede refutar en ZFC. Este es un caso extremo, pero ocurre con más frecuencia de lo que piensas. Por ejemplo, ¿necesitamos grandes axiomas cardinales (para poder trabajar en los universos de Grothendieck ) para probar FLT o podemos probarlo en una teoría mucho más débil como la AP ? Este es otro concepto con respecto a la dificultad de probar declaraciones.
Ahora volvamos a P vs. NP. No tenemos resultados que indiquen que el problema no puede resolverse de una forma u otra en teorías aritméticas más bien débiles. Alexander Razborov escribió un artículo en 1995 titulado "Imposibilidad de límites más bajos en el tamaño del circuito en ciertos fragmentos de aritmética limitada" que mostró que no es posible probarlo en alguna teoría débil, pero la teoría es realmente muy débil. Que yo sepa, no ha habido mucho progreso en extender eso a teorías considerablemente más fuertes como las teorías aritméticas limitadas de Sam Buss e incluso si el resultado se extiende a ellos, todavía están muy lejos de algo como PA o ZFC. En resumen, no solo no podemos probar que SAT no está en clases de complejidad muy pequeñas, ni siquiera podemos probar que no podemos probar P≠ ≠ ≠≠NP en teorías muy débiles. La razón formal que tenemos acerca de por qué es difícil probar P NP son los resultados de barrera que indican que tales y tales técnicas no pueden probar por sí mismas que P NP. Son buenos resultados, pero ni siquiera descartan la posibilidad de combinar esas técnicas para mostrar P NP.≠≠≠