¿Cómo puedo demostrar el principio del tercero excluido con la hipótesis dada (forall P Q : Prop, (P -> Q) -> (~P \/ Q))?
Actualmente estoy confundido acerca de cómo demostrar el siguiente teorema:
Theorem excluded_middle2 :
(forall P Q : Prop, (P -> Q) -> (~P \/ Q)) -> (forall P, P \/ ~P).
Estoy atascado aquí:
Theorem excluded_middle2 :
(forall P Q : Prop, (P -> Q) -> (~P \/ Q)) -> (forall P, P \/ ~P).
Proof.
intros.
evar (Q : Prop).
specialize H with (P : Prop) (Q : Prop).
Sé que es imposible probar simplemente la ley del medio excluido en Coq, pero realmente quiero saber si con este teorema dado es posible probar la ley del medio excluido.
davy.ai
Sí, con el teorema dado
exluded_middle2
es posible demostrar la ley del tercero excluido. De hecho, el propio teorema es una reformulación de la ley del tercero excluido.Para demostrar
excluded_middle2
, debemos comenzar asumiendo la premisa:Luego queremos demostrar:
Para hacer esto, podemos hacer una prueba por contradicción: asumir que
~(P \/ ~P)
y luego mostrar que esto conduce a una contradicción.Aquí hemos usado la táctica
assert
para enunciar y demostrar subafirmaciones que utilizaremos en nuestra prueba general. Procedemos con estos pasos:Asumimos que
P
. Luego podemos demostrarTrue
(es decir, que la afirmación siempre es verdadera) usando la tácticaI
.Asumimos
~P
. Luego también podemos demostrarTrue
(es decir, que la afirmación siempre es verdadera) usando la tácticaI
.Ahora queremos mostrar que tanto
P
como~P
son posibles. Aplicamos la premisa deexcluded_middle2
conQ := True
, lo cual se reduce a demostrar(P -> True) -> (~P \/ True)
. Podemos asumirP -> True
y usarlo para aplicar la premisa deexcluded_middle2
conQ := True
.Ahora tenemos dos casos: o bien
~(P -> True)
o bien~True
. Si~(P -> True)
entonces sabemos queP
, como demostramos en el paso 1. Por lo tanto, podemos usar esa información para deducirQ := True
y aplicar la premisa deexcluded_middle2
para obtener~P \/ True
. Sabemos queP
no puede sostenerse, por lo que debemos tenerTrue
.Si
~True
, entonces esto es esencialmente equivalente a decirFalse
. Por lo tanto, podemos usar la suposición de contradicción~(P \/ ~P)
para deducirFalse
. Esto es una contradicción, por lo que nuestra suposición general (~(P \/ ~P)
) debe ser falsa. Esto significa queP \/ ~P
es verdadero, como se requiere.