Creo que hay un buen caso, aunque no muy popular, para rechazar la ley del medio excluido:
[matemáticas]
\ forall x. x \ lor \ lnot x
[/matemáticas]
Esta ley establece que cada proposición es verdadera o falsa. Otra forma de pensar al respecto es que si [matemáticas] x [/ matemáticas] conduce a una contradicción, [matemáticas] x [/ matemáticas] no puede sostenerse. Encarna la prueba por contradicción y, más generalmente, “pruebas de existencia” en las que demostramos que algo tiene que existir sin proporcionar un ejemplo.
La alternativa a las pruebas de existencia son las pruebas constructivas en las que probamos que algo existe al construir (o al menos proporcionar un procedimiento para construir) un ejemplo. Eliminar la ley del medio excluido da lugar a una lógica constructiva , también llamada lógica intuicionista , que solo permite pruebas constructivas. No podemos demostrar que algo existe sin construir, o al menos dar un procedimiento para construir, un ejemplo.
Ahora, las pruebas de existencia son muy útiles. Pero, en un sentido muy profundo, no son tan satisfactorios como las pruebas constructivas. Por ejemplo, podrías probar que algo existe pero, al mismo tiempo, ¡ser completamente incapaz de encontrar un ejemplo! Eso se siente como una forma más débil de “existente” que tener un ejemplo en la mano. Es por eso que la lógica constructiva es preferible en un sentido filosófico.
- ¿Cuáles son los defectos en la lógica que compara la acción afirmativa académica con la acción afirmativa atlética?
- ¿Cuáles son algunos buenos algoritmos para las compañías de radio taxis / taxis?
- ¿Qué es lo opuesto al tiempo?
- ¿Cuáles son algunos aspectos de las matemáticas y la lógica de Lewis Carroll en sus obras literarias?
- ¿Es “alguna vez” el antónimo de “nunca”? ¿O es “siempre”?
Sin embargo, la lógica constructiva es estrictamente más débil que la lógica clásica. Hay teoremas clásicos que no puedes probar de manera constructiva pero no al revés. Esta es una consideración práctica importante: muchos resultados útiles no serían posibles de manera puramente constructiva. Creo que esta es la razón principal por la que la lógica constructiva es menos popular.
Sin embargo, hay una forma diferente de pensar al respecto que en realidad hace que la lógica constructiva sea más poderosa, no en los teoremas que puede probar, sino en la forma en que puede distinguir ciertos teoremas. Déjame elaborar.
Algo a tener en cuenta sobre la lógica constructiva: la eliminación de la doble negación no es una tormenta. En otras palabras, no siempre es cierto que
[matemáticas]
\ lnot \ lnot x \ Rightarrow x
[/matemáticas]
Sin embargo, puedes ir a la inversa:
[matemáticas]
x \ Rightarrow \ lnot \ lnot x
[/matemáticas]
La intuición aquí es que [matemática] x [/ matemática] es una prueba constructiva: usted proporciona un ejemplo de [matemática] x [/ matemática]. Por otro lado, [math] \ lnot \ lnot x [/ math] es una prueba de que “[math] x [/ math] no conduce a una contradicción”, que es más débil porque no implica necesariamente producir un ejemplo de [matemáticas] x [/ matemáticas].
Esta es la forma clave en que la lógica constructiva es en realidad “más poderosa” que la lógica clásica: podemos diferenciar [matemática] x [/ matemática] de [matemática] \ lnot \ lnot x [/ matemática]. O, dicho de otra manera, podemos diferenciar una prueba de [matemáticas] x [/ matemáticas] de una prueba más débil de que [matemáticas] x [/ matemáticas] no conduce a ninguna contradicción.
Esta intuición puede formalizarse incorporando realmente la lógica clásica en la lógica constructiva. Podemos hacer esto mapeando cada teorema clásico [matemática] \ phi [/ matemática] a un teorema constructivo [matemática] \ lnot \ lnot \ phi [/ matemática]. Resulta que si podemos probar [math] \ phi [/ math] de forma clásica, siempre podemos probar [math] \ lnot \ lnot \ phi [/ math] de manera constructiva. ¡Intuitivamente, podemos pensar en la prueba clásica como un ejemplo construido de cómo [matemáticas] \ phi [/ matemáticas] no conduce a una contradicción!
No estoy seguro de cómo los matemáticos prueban que esta traducción es válida. Sin embargo, resulta ser realmente fácil al caer en CS a través del isomorfismo de Curry-Howard. Esta “traducción de doble negación” corresponde a la transformación del código en “estilo de paso de continuación” (CPS). Una transformación CPS es bastante fácil de implementar, lo que muestra que la traducción funciona.
Resulta que podemos usar una lógica constructiva como una lógica clásica más precisa . Siempre que queramos probar [math] x [/ math] de forma clásica, podemos intentar probar [math] x [/ math] o [math] \ lnot \ lnot x [/ math] de forma constructiva. Cualquiera de los resultados es igual a una prueba clásica, pero también sabemos que una prueba para [math] \ lnot \ lnot x [/ math] es más débil de una manera muy específica.