Skip to content
Juan Gonzalez-Gomez edited this page Jan 28, 2025 · 389 revisions

LOG

Log personal para aprender sobre lógica. Aquí documento experimentos y pruebas mías. No es un tutorial ni una guía. Las ideas están desordenadas y desorganizadas. En el futuro, cuando haya aprendido más, escribiré tutoriales sobre el tema

2024-12-26

Estoy usando metamath para aprender lógica desde sus fundamentos. Tengo más información sobre el tema en mi log personal (privado), pero poco a poco lo migraré a la wiki pública

El primer objetivo es construir fórmulas válidas (Well formulate formulas, wff) a partir de las reglas de construcción. Metamath parte de una sintáxis para definir las fórmulas y sus deducciones, y poder comprobar automáticamente si la fórmula efectivamente se puede deducir de su demostración. Quiero reproducir algo similar, aunque mucho más limitado, usando el lenguaje forth

Voy a empezar primero usando un alfabeto muy limitado:

  • Alfabeto: {p,q}

p y q son variables proposicionales, que representan dos proposiciones genéricas

Ahora definimos las reglas de construcción:

  • Regla 1: p es una fórmula bien construida: wff p
  • Regla 2: q es una fórmula bien construida: wff q

Para usar p y q en forth, definimos sus palabras. Lo que hace cada una es que mete su carácter ascii en la pila

\ -- Variables. Definidas con su codigo ascii  ok
CHAR p CONSTANT p
CHAR q CONSTANT q

Eso lo defino en el fichero logic.fs. Arrancamos gforth con el siguiente comando: gforth logic.fs. Ejecutamos los comandos p y q, y mostramos la pila

obijuan@JANEL:~/Develop/Learn-logic/Log/2024-12-26$ gforth logic.fs
Gforth 0.7.3, Copyright (C) 1995-2008 Free Software Foundation, Inc.
Gforth comes with ABSOLUTELY NO WARRANTY; for details type `license'
Type `bye' to exit
p  ok
q  ok
.s <2> 112 113  ok
bye 

¡Ya tenemos los símbolos p y q definidos! Y los podemos usar directamente en forth

Ahora necesitamos una palabra forth para mostrar los símbolos que hay en la pila. Voy a empezar por la palabra .symbol que simplemente imprime en la consola el carácter que hay en la pila

\ -- Imprimir un simbolo desde la pila
: .symbol ( n -- ) EMIT SPACE ;

Ahora podemos meter diferentes símbolos en la pila y mostrarlos

obijuan@JANEL:~/Develop/Learn-logic/Log/2024-12-26$ gforth logic.fs
Gforth 0.7.3, Copyright (C) 1995-2008 Free Software Foundation, Inc.
Gforth comes with ABSOLUTELY NO WARRANTY; for details type `license'
Type `bye' to exit
p  ok
.symbol p  ok
p q  ok
.symbol .symbol q p  ok
.s <0>  ok
bye 

Si en la pila no hay nada se produce un desbordamiento de la pila. Así que vamos a modificar .symbol para chequear la pila y que sólo se imprima el símbolo si la pila NO está vacia. En caso de estar vacía se imprime, de momento, la palabra "EMPTY!"

Así queda la nueva palabra .symbol

\ -- Imprimir un simbolo desde la pila
: .symbol depth 0=  \ -- Pila vacia?
   IF 
     ." EMPTY! "   \ -- Si esta vacia, imprimir mensaje 
   ELSE 
     emit space     \ -- Si no, imprimir el simbolo 
   THEN 
;

Lo probamos:

obijuan@JANEL:~/Develop/Learn-logic/Log/2024-12-26$ gforth logic.fs
Gforth 0.7.3, Copyright (C) 1995-2008 Free Software Foundation, Inc.
Gforth comes with ABSOLUTELY NO WARRANTY; for details type `license'
Type `bye' to exit
  ok
.symbol EMPTY!  ok
.symbol EMPTY!  ok
p q  ok
.symbol .symbol .symbol q p EMPTY!  ok
bye

Cuando utilizamos p en realidad hay una ambiguedad.... ¿Se refiere al símbolo del alfabeto p? ¿O se está refiriendo a la fórmula lógica formada sólo por el símbolo p? Para eliminar esta ambiguiedad se utiliza el símbolo wff, que significa que los símbolso que están a continuación pertenecen a una fórmula válida, que está bien construida

Por tanto, nuestro alfabeto para construir fórmulas de la lógica lo ampliamos ahora para incluir wff:

  • Alfabeto = {p, q, wff}

En nuestro sistema forth, el símbolo wff lo representaremos mediante el código 1. Este será el código que se guarda en la pila al introducir la palabra wff:

\ -- Alfabeto: wff. Formula correcta!
01 CONSTANT wff

Ahora hay que ampliar .symbol para que se imprima la cadena wff si el símbolo leido de la pila es 1. Para hacerlo más genérico y podelo extender en el futuro, creamos la palabra interna ._symbol que imprime el símbolo de la pila, asumiendo que hay un símbolo en la pila (y que no está vacía). Utilizamos un CASE, que de momento sólo tiene dos casos, wff y default:

\ -- Imprimir el siguiente simbolo de la pila
\ -- Se asume que la pila no esta vacia
: ._symbol
  CASE \ -- Segun el valor que haya en la pila
    wff OF ." wff " ENDOF \ -- Es el simbolo wff
    \ -- Si no es wff, imprimir el simbolo ascii
    emit space \ -- Imprimir el simbolo
    0 \ -- valor dummy para que lo elimina enccase
  ENDCASE 
;

Y ahora modificamos .symbol para llamar a ._symbol cuando la pila NO está vacía:

\ -- Imprimir un simbolo desde la pila
\ -- Se comprueba si la pila esta vacia o no
: .symbol depth 0=  \ -- Pila vacia?
   IF 
     ." EMPTY! "   \ -- Si esta vacia, imprimir mensaje 
   ELSE 
     ._symbol     \ -- Si no, imprimir el simbolo 
   THEN 
;

Lo probamos:

obijuan@JANEL:~/Develop/Learn-logic/Log/2024-12-26$ gforth logic.fs
redefined nl  Gforth 0.7.3, Copyright (C) 1995-2008 Free Software Foundation, Inc.
Gforth comes with ABSOLUTELY NO WARRANTY; for details type `license'
Type `bye' to exit
wff p q  ok
nl .symbol .symbol .symbol 
q p wff  ok
bye 

Lo siguiente es definir la palabra .formula que imprime TODOS los símbolos que hay en la pila. Da igual si la fórmula está bien formada o no. Se imprime tal cual está. Esto nos permitirá comprobar si las fórmulas las estamos introduciendo bien en la pila

\ -- Imprimir la formula que hay en la pila
: .formula 
  BEGIN
    depth 0= \ -- Pila vacia?
    IF
      EXIT \ -- Si esta vacia, salir del bucle
    THEN
    .symbol \ -- Imprimir el simbolo
  AGAIN
;

Lo probamos:

obijuan@JANEL:~/Develop/Learn-logic/Log/2024-12-26$ gforth logic.fs
redefined nl  Gforth 0.7.3, Copyright (C) 1995-2008 Free Software Foundation, Inc.
Gforth comes with ABSOLUTELY NO WARRANTY; for details type `license'
Type `bye' to exit
.formula 
 ok
p q wff  ok
.formula 
wff q p  ok
bye

Ahora ya podemos crear las reglas de construcción de fórmulas. De momento sólo se pueden construir las fórmulas p y q:

\ -- Reglas de construccion de formulas
: wp p wff ; \ -- Construir la formula p
: wq q wff ; \ -- Construir la formula q

Las construimos y luego comprobamos la pila:

obijuan@JANEL:~/Develop/Learn-logic/Log/2024-12-26$ gforth logic.fs
redefined nl  Gforth 0.7.3, Copyright (C) 1995-2008 Free Software Foundation, Inc.
Gforth comes with ABSOLUTELY NO WARRANTY; for details type `license'
Type `bye' to exit
wp  ok
.formula 
wff p  ok
wp   ok
.formula 
wff p  ok
bye

Lo siguiente sería construir la negación, pero los teoremas iniciales sólo usan la implicación, así que hay que pasar a la construcción de la implicación... esto es algo que no tengo claro cómo implementarlo en forth...

02 CONSTANT ->
CHAR ) CONSTANT ) \ -- Meter ')' en la pila
CHAR ( CONSTANT ( \ -- Meter '(' en la pila

También he modificado la palabra ._symbol para imprimir los nuevos símbolos

obijuan@JANEL:~/Develop/Learn-logic/Log/2024-12-26$ gforth logic.fs
redefined )  redefined (  redefined nl  Gforth 0.7.3, Copyright (C) 1995-2008 Free Software Foundation, Inc.
Gforth comes with ABSOLUTELY NO WARRANTY; for details type `license'
Type `bye' to exit
  ok
p q ( ) -> wff  ok
.formula 
wff -> ) ( q p  ok
  ok
\ --  Crear la formula wff ( p -> q )  ok
) q -> p ( wff  ok
.formula 
wff ( p -> q )  ok
bye 

Vamos a crear la siguiente fórmula: wff ( p -> q )

\ --- Palabras para hacer pruebas
: fi ) q -> p ( wff ; \ -- Formula wff ( p -> q )

La probamos:

obijuan@JANEL:~/Develop/Learn-logic/Log/2024-12-26$ gforth logic.fs
redefined )  redefined (  redefined nl  Gforth 0.7.3, Copyright (C) 1995-2008 Free Software Foundation, Inc.
Gforth comes with ABSOLUTELY NO WARRANTY; for details type `license'
Type `bye' to exit
  ok
fi  ok
.formula 
wff ( p -> q )  ok
fi fi .formula 
wff ( p -> q ) wff ( p -> q )  ok

Ahora en la pila podemos tener diferentes fórmulas. Necesitamos una función para leer la siguiente fórmula, y sacarla de la pila. Comenzamos primero por .wff que lo que hace es imprimir la siguiente fórmula. Al imprimirla se sacan sus caracteres de la pila.

Esta es la implementación:

\ -- Imprimir la formula que hay en la pila
: .wff
    wff> \ -- Consumir el simbolo wff
  BEGIN

    depth 0= \ -- Pila vacia?
    IF
      EXIT \ -- Si esta vacia, salir del bucle
    THEN

    dup wff = \ -- Es el simbolo wff?
    IF
      EXIT  \ -- Terminar
    THEN

    .symbol \ -- Imprimir el simbolo

    AGAIN
;

Lo probamos:

obijuan@JANEL:~/Develop/Learn-logic/Log/2024-12-26$ gforth logic.fs
redefined )  redefined (  redefined nl  Gforth 0.7.3, Copyright (C) 1995-2008 Free Software Foundation, Inc.
Gforth comes with ABSOLUTELY NO WARRANTY; for details type `license'
Type `bye' to exit
fi wp wq  ok
.wff 
wff q  ok
.wff 
wff p  ok
.wff 
wff ( p -> q )  ok
.wff 
EMPTY! 
  ok 
bye 

El siguiente paso es implementar la palabra w2 para construir una fórmula bien formada de la forma A -> B. Esta palabra debe funcionar de la siguiente manera. Supongamos que queremos construir la fórmula wff ( p -> q ), hacemos lo siguiente:

wp wq w2

En la pila lo que ocrre es lo siguiente:

  1. Ejecucion de wp
-----| wff p |------
     ---------
  1. Ejecución de wq
-----| wff q |-----
     | wff p |
     |-------|
  1. Ejecucion de w2
-----| wff ( p -> q ) |------
     |----------------|

La implementación de w2 debe hacer lo siguiente:

  • El esquema es A -> B. Primero se lee B de la pila, y se mete en la pila R, pero sin wff
                            Pila R
-----| wff p |----    ----| q (B)    |-----
     |-------|            |----------|
  • Luego se leep A y se mete en una zona de memoria (sin wff)
                             Pila R            Mem
-----|-------|----    -----|  q (B)|-------   p (A)
                           |       |
                           |-------|
  • Guardar ) en la pila
                            Pila R           Mem
-----|  )    |----    -----| q(B) |------   p (A)
     |-------|             |------|
                           
  • Meter B en la pila (desde la pila R)
                         Pila R         Mem
------| q ) |---    ----|-----|-----    p (A)
      |-----|
  • Meter el simbolo ->
                          Mem
------| -> q ) |---       p (A)
      |--------|
  • Meter A en la pila desde memoria
------| p -> q ) |----
      |----------|
  • Meter ( y wff en la pila
-----| wff ( p -> q ) |----
     |----------------|

Listo! La fórmula está construida!!

Primero tengo que lograr hacerlo "manualmente", y por último se crea la palabra w2

La primera palabra es wff>R: llevar una formula bien formada a la pila R... He estado investigando... y la pila R se puede usar dentro de una palabra.... pero no entre palabras... por lo que en vez de la pila R hay que llevarlo a una variable de memoria...

2025-01-07

Antes de continuar con lo dejado pendiente en el apartado anterior, quiero entender bien los fundamentos y metamath... Quiero comprender perfectamente la demostración de este teorema:

  • idALT: ⊢ (𝜑 → 𝜑)

Quiero centrarme en los fundamentos del primer paso. Parte del axioma 1: ax-1

  • ax-1: ⊢ (𝜑 → (𝜓 → 𝜑)). Se afirma que la fórmula (wff) (𝜑 → (𝜓 → 𝜑)) es un teorema
  • Pero en el primer paso de la demostración, al aplicar el axioma 1, ponen: ⊢ (𝜑 → (𝜑 → 𝜑)). Es decir, que hacen una sustitución: 𝜓=𝜑. Para mí la lógica es: Partes del axioma 1, haces la sustitución, y lo que obtienes es la epresión de ese primer paso... pero en metamath no se menciona la regla de sustitución por ningún lado... y por eso no tengo clara esta parte... ni tampoco los fundamentos de esta "sustitución"

Por eso quiero examinar la prueba directamente desde el metamath, analizando todos los pasos detalladamente, a ver si doy con ello

El repositorio donde está el ejecutable de metamath es este: https://github.com/metamath/metamath-exe. Clono este repositorio y ejecuto el script build para compilar:

obijuan@JANEL:~/Develop/metamath/metamath-exe$ ./build.sh
[...]

Utiliza las autotools (que ya tengo instaladas) y tras unos segundos obtendo el ejecutable. Este es el aspecto del directorio:

obijuan@JANEL:~/Develop/metamath/metamath-exe$ ls
aclocal.m4      config        CONTRIBUTING.md  Makefile.am  src
autom4te.cache  config.h.in   doc              Makefile.in  tests
build           configure     Doxyfile.diff    metamath     tools
build.sh        configure.ac  LICENSE.TXT      README.TXT

Se ha creado el ejecutable metamath. Lo ejecutamos para probar:

obijuan@JANEL:~/Develop/metamath/metamath-exe$ ./metamath 
Metamath - Version 0.199.pre 29-Jan-2022      Type HELP for help, EXIT to exit.
MM> help
Welcome to Metamath.  Here are some general guidelines.

To make the most effective use of Metamath, you should become familiar
with the Metamath book.  In particular, you will need to learn
the syntax of the Metamath language.

For help using the command line, type HELP CLI.
For help invoking Metamath, type HELP INVOKE.
For a summary of the Metamath language, type HELP LANGUAGE.
For a summary of comment markup, type HELP VERIFY MARKUP.
For help getting started, type HELP DEMO.
For help exploring the data base, type HELP EXPLORE.
For help creating a LaTeX file, type HELP TEX.
For help creating Web pages, type HELP HTML.
For help proving new theorems, type HELP PROOF_ASSISTANT.
For a list of help topics, type HELP ? (to force an error message).
For current program settings, type SHOW SETTINGS.
For a simple but general-purpose ASCII file manipulator, type TOOLS.
To exit Metamath, type EXIT (or its synonym QUIT).

Copyright (C) 2020 Norman Megill  License terms:  GPL 2.0 or later

MM> exit

En este repo se encuentran las bases de datos con todos los teoremas y sus demostraciones: https://github.com/metamath/set.mm

La que yo necesito es el fichero set.mm. Lo bajo con wget en el mismo directorio donde tengo el ejecutable de metamath:

obijuan@JANEL:~/Develop/metamath/metamath-exe$ wget https://github.com/metamath/set.mm/raw/refs/heads/develop/set.mm
--2025-01-07 10:44:11--  https://github.com/metamath/set.mm/raw/refs/heads/develop/set.mm
Resolving github.com (github.com)... 140.82.121.4
Connecting to github.com (github.com)|140.82.121.4|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://raw.githubusercontent.com/metamath/set.mm/refs/heads/develop/set.mm [following]
--2025-01-07 10:44:12--  https://raw.githubusercontent.com/metamath/set.mm/refs/heads/develop/set.mm
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.109.133, 185.199.111.133, 185.199.110.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.109.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 46266390 (44M) [text/plain]
Saving to: ‘set.mm’

set.mm             100%[=============>]  44.12M  21.1MB/s    in 2.1s    

2025-01-07 10:44:16 (21.1 MB/s) - ‘set.mm’ saved [46266390/46266390]

obijuan@JANEL:~/Develop/metamath/metamath-exe$

Lo leemos desde metamath:

obijuan@JANEL:~/Develop/metamath/metamath-exe$ ./metamath 
Metamath - Version 0.199.pre 29-Jan-2022      Type HELP for help, EXIT to exit.
MM> read set.mm
Reading source file "set.mm"... 46266390 bytes
46266390 bytes were read into the source buffer.
The source has 224730 statements; 2854 are $a and 43911 are $p.
No errors were found.  However, proofs were not checked.  Type VERIFY PROOF *
if you want to check them.
MM>

Lo verificamos, según indica en el propio metamath:

MM> verify proof *
0 10%  20%  30%  40%  50%  60%  70%  80%  90% 100%
..................................................
All proofs in the database were verified in 3.49 s.
MM>

Le pedimos que nos muestre el teorema idALT:

MM> show statement idALT
120 idALT $p |- ( ph -> ph ) $= ... $.
MM> 

Ahí lo tenemos!!

Con este comando obtenemos más información:

MM> show statement idALT
120 idALT $p |- ( ph -> ph ) $= ... $.
MM> show statement idALT / full
Statement 120 is located on line 878 of the file "set.mm".  Its statement
number for HTML pages is 23.
"Alternate proof of ~ id .  This version is proved directly from the axioms
     for demonstration purposes.  This proof is a popular example in the
     literature and is identical, step for step, to the proofs of Theorem 1 of
     [Margaris] p. 51, Example 2.7(a) of [Hamilton] p. 31, Lemma 10.3 of
     [BellMachover] p. 36, and Lemma 1.8 of [Mendelson] p. 36.  It is also "Our
     first proof" in Hirst and Hirst's _A Primer for Logic and Proof_ p. 17
     (PDF p. 23) at ~ http://www.appstate.edu/~~hirstjl/primer/hirst.pdf .
     Note that the second occurrences of ` ph ` in Steps 1 to 4 and the sixth
     in Step 3 may be simultaneously replaced by any wff ` ps ` , which may
     ease the understanding of the proof.  For a shorter version of the proof
     that takes advantage of previously proved theorems, see ~ id .
     (Contributed by NM, 30-Sep-1992.)  (Proof modification is discouraged.)
     Use ~ id instead.  (New usage is discouraged.)"
120 idALT $p |- ( ph -> ph ) $= ... $.
Its mandatory hypotheses in RPN order are:
  wph $f wff ph $.
Its optional hypotheses are:  wps wch wth wta wet wze wsi wrh wmu wla wka
The statement and its hypotheses require the variables:  ph
These additional variables are allowed in its proof:  ps ch th ta et ze si rh
      mu la ka
The variables it contains are:  ph
MM> 

Lo vemos desde el vscode en la líne indicada, esto es lo que vemos:

$( Alternate proof of ~ id .  This version is proved directly from the axioms
     for demonstration purposes.  This proof is a popular example in the
     literature and is identical, step for step, to the proofs of Theorem 1 of
     [Margaris] p. 51, Example 2.7(a) of [Hamilton] p. 31, Lemma 10.3 of
     [BellMachover] p. 36, and Lemma 1.8 of [Mendelson] p. 36.  It is also "Our
     first proof" in Hirst and Hirst's _A Primer for Logic and Proof_ p. 17
     (PDF p. 23) at ~ http://www.appstate.edu/~~hirstjl/primer/hirst.pdf .
     Note that the second occurrences of ` ph ` in Steps 1 to 4 and the sixth
     in Step 3 may be simultaneously replaced by any wff ` ps ` , which may
     ease the understanding of the proof.  For a shorter version of the proof
     that takes advantage of previously proved theorems, see ~ id .
     (Contributed by NM, 30-Sep-1992.)  (Proof modification is discouraged.)
     Use ~ id instead.  (New usage is discouraged.) $)
  idALT $p |- ( ph -> ph ) $=
    ( wi ax-1 ax-2 ax-mp ) AAABZBZFAACAFABBGFBAFCAFADEE $.

No entiendo lo que significa el código que hay antes del $. : AAABZBZFAACAFABBGFBAFCAFADEE

La prueba desde el metamath se ve con este comando:

MM> show proof idALT
 9   min=ax-1    $a |- ( ph -> ( ph -> ph ) )
20     min=ax-1    $a |- ( ph -> ( ( ph -> ph ) -> ph ) )
24     maj=ax-2    $a |- ( ( ph -> ( ( ph -> ph ) -> ph ) ) -> ( ( ph -> ( ph
                                                  -> ph ) ) -> ( ph -> ph ) ) )
25   maj=ax-mp   $a |- ( ( ph -> ( ph -> ph ) ) -> ( ph -> ph ) )
26 idALT=ax-mp $a |- ( ph -> ph )
MM> 

Pero básicamente es lo mismo que hay en la web... Voy a buscar información sobre los comandos para encontrar más detalles...

Así es como se muestran TODOS los pasos: show proof idALT / all

MM> show proof idALT / all
 1     wph=wph     $f wff ph
 2       wph=wph     $f wff ph
 3       wps=wph     $f wff ph
 4   4:wps=wi      $a wff ( ph -> ph )
 5 5:wph=wi      $a wff ( ph -> ( ph -> ph ) )
 6   wps=4       $a wff ( ph -> ph )
 7     wph=wph     $f wff ph
 8     wps=wph     $f wff ph
 9   min=ax-1    $a |- ( ph -> ( ph -> ph ) )
10       wph=wph     $f wff ph
11         wph=4       $a wff ( ph -> ph )
12         wps=wph     $f wff ph
13       wps=wi      $a wff ( ( ph -> ph ) -> ph )
14     wph=wi      $a wff ( ph -> ( ( ph -> ph ) -> ph ) )
15       wph=5       $a wff ( ph -> ( ph -> ph ) )
16       wps=4       $a wff ( ph -> ph )
17     wps=wi      $a wff ( ( ph -> ( ph -> ph ) ) -> ( ph -> ph ) )
18       wph=wph     $f wff ph
19       wps=4       $a wff ( ph -> ph )
20     min=ax-1    $a |- ( ph -> ( ( ph -> ph ) -> ph ) )
21       wph=wph     $f wff ph
22       wps=4       $a wff ( ph -> ph )
23       wch=wph     $f wff ph
24     maj=ax-2    $a |- ( ( ph -> ( ( ph -> ph ) -> ph ) ) -> ( ( ph -> ( ph
                                                  -> ph ) ) -> ( ph -> ph ) ) )
25   maj=ax-mp   $a |- ( ( ph -> ( ph -> ph ) ) -> ( ph -> ph ) )
26 idALT=ax-mp $a |- ( ph -> ph )
MM>

Con esta notación encuentro mas información:

MM> show proof idALT /all /lemmon
 1 wph           $f wff ph
 2 wph           $f wff ph
 3 wph           $f wff ph
 4 2,3 wi    @4: $a wff ( ph -> ph )
 5 1,4 wi    @5: $a wff ( ph -> ( ph -> ph ) )
 6 @4            $a wff ( ph -> ph )
 7 wph           $f wff ph
 8 wph           $f wff ph
 9 7,8 ax-1      $a |- ( ph -> ( ph -> ph ) )
10 wph           $f wff ph
11 @4            $a wff ( ph -> ph )
12 wph           $f wff ph
13 11,12 wi      $a wff ( ( ph -> ph ) -> ph )
14 10,13 wi      $a wff ( ph -> ( ( ph -> ph ) -> ph ) )
15 @5            $a wff ( ph -> ( ph -> ph ) )
16 @4            $a wff ( ph -> ph )
17 15,16 wi      $a wff ( ( ph -> ( ph -> ph ) ) -> ( ph -> ph ) )
18 wph           $f wff ph
19 @4            $a wff ( ph -> ph )
20 18,19 ax-1    $a |- ( ph -> ( ( ph -> ph ) -> ph ) )
21 wph           $f wff ph
22 @4            $a wff ( ph -> ph )
23 wph           $f wff ph
24 21,22,23 ax-2  $a |- ( ( ph -> ( ( ph -> ph ) -> ph ) ) -> ( ( ph -> ( ph ->
                                                     ph ) ) -> ( ph -> ph ) ) )
25 14,17,20,24 ax-mp  $a |- ( ( ph -> ( ph -> ph ) ) -> ( ph -> ph ) )
26 5,6,9,25 ax-mp  $a |- ( ph -> ph )
MM>

Me voy a fijar en el paso 4... ahí ya hacen la sustitución... Con este otro comando encuentro más información sobre ese paso:

MM> show proof idALT /detailed_step 4
Proof step 4:  1:wps=wi $a wff ( ph -> ph )
This step assigns source "wi" ($a) to target "wps" ($f).  This step also
declares the local label 1, which is used later on.  The source assertion
requires the hypotheses "wph" ($f, step 2) and "wps" ($f, step 3).  The parent
assertion of the target hypothesis is "wi" ($a, step 5).
The source assertion before substitution was:
    wi $a wff ( ph -> ps )
The following substitutions were made to the source assertion:
    Variable  Substituted with
     ph        ph
     ps        ph
The target hypothesis before substitution was:
    wps $f wff ps
The following substitution was made to the target hypothesis:
    Variable  Substituted with
     ps        ( ph -> ph )
MM> 

Tengo que estudiar esto a fondo... aquí ya están hablando de sustituciones

Lo estoy leyendo a fondo... pero todavía hay cosas que no tengo claras... voy a leer el libro de metamath. Ahí es donde debe estar todo el turrón...

El libro está en Latex, en este repositorio: https://github.com/metamath/metamath-book. El PDF no tengo claro dónde está alojado... Voy a intentar generarlo yo siguiendo las instrucciones:

Joder... cómo odio Latex... como era de esperar da errores... y es imposible saber a qué son debidos...

He encontrado el libro en PDF en este enlace: https://us.metamath.org/downloads/metamath.pdf

Voy a leerlo con calma...

He encontrado cómo decodificar las pruebas. Por defecto vienen codificadas con letras (que no entendía). En el libro he visto que dicen cómo decodificarlas:

MM> save proof idALT /normal    
The proof of "idALT" has been reformatted and saved internally.
Remember to use WRITE SOURCE to save changes permanently.
MM> write source set.mm
The input file will be renamed set.mm~1.
Writing "set.mm"...
224730 source statement(s) were written.
MM>

Ahora si miro la prueba lo que aparece es esto:

idALT $p |- ( ph -> ph ) $=
    wph wph wph wi wi wph wph wi wph wph ax-1 wph wph wph wi wph wi wi wph wph
    wph wi wi wph wph wi wi wph wph wph wi ax-1 wph wph wph wi wph ax-2 ax-mp
    ax-mp $.

Que ya tiene un poco más de sentido... ahora lo puedo ir entendiendo poco a poco... Ahora hay 40 pasos...

  1. wph
--| (1) wff ph |--
  |------------|
  1. wph
--| (2) wff ph |--
  | (1) wff ph |
  |------------|
  1. wph
--| (3) wff ph |--
  | (2) wff ph |
  | (1) wff ph |
  |------------|
  1. wi

Esta operación espera recibir el antecedente y el consecuente (que son wff genericos). Supone que se han introducido en ese orden en la pila: Primero el antecedente (wph), y luego el consecuente (wps). Es decir, que lo que hay en la pila ahora se interpreta así:

--| (wps) (3) wff ph |--
  | (wph) (2) wff ph |
  | (1) wff ph |
  |------------|

wi Lee por tanto el primer elemento de la pila (el consecuente), y lo mete en su variable local del consecuente, que se denota por wps:

  • wps = wff ph (De ahí la sustitución wps por wff)

Ahora se lee el antecedente y se mete en su variable local wph

  • wph = wff ph

Y ahora se mete el resultado en la pila. Lo hacemos en dos pasos para dejarlo CRISTALINO:

Primero ponemos la expresión general que mete wi:

--| wff (ph -> ps) |--
  | (1) wff ph     |
  |----------------|

Y ahora con sus valores sustituidos (antecedente: ph, consecuente: ph)

--| (4) wff (ph -> ph) |--
  | (1) wff ph   |
  |--------------|

En la cima de la pila tenemos: wff (𝜑 → 𝜑). Es cierto que para construirla no hemos necesitado el concepto de "sustitución"

  1. wi

Ahora repetimos con lo que hay en la pila. Así es como lo interpreta wi: En la cima de la pila está wps (el consecuente), y luego el antecedente (wph), porque se han introducido en orden inverso:

--| (wps) (4) wff (ph -> ph) |--
  | (wph) (1) wff ph       |
  |------------------------|

wi lee el primer elemento de la pila (consecuente) y lo almacena en wps:

  • wps = wff (ph -> ph)

wi lee el segundo elemento de la pila (antecedente) y lo almacena en wph:

  • wph = wff ph

wi ahora mete en la pila el resultado: (antecedente) -> (consecuente): (wph) -> (wph)

--| (5) wff ( wph -> wps )--
  |----------------------|

Que al sustituirlo queda:

--| (5) wff ( ph -> (ph -> ph)) |--
  |-----------------------------|
  1. wph
--| (6) wff ph                  |--
  | (5) wff ( ph -> (ph -> ph)) |
  |-----------------------------|
  1. wph
--| (7) wff ph                  |--
  | (6) wff ph                  |
  | (5) wff ( ph -> (ph -> ph)) |
  |-----------------------------|
  1. wi

Interpretacion de la pila antes de ejecutar wi. En la cima el consecuente (wps), y después el antecedente (wph)

--| (wps) (7) wff ph            |--
  | (wph) (6) wff ph            |
  | (5) wff ( ph -> (ph -> ph)) |
  |-----------------------------|
  • wps = wff ph
  • wph = wff ph

Ahora se mete en la pila wff (wps -> wph)

--| (8) wff ( ph -> ph )        |--
  | (5) wff ( ph -> (ph -> ph)) |
  |-----------------------------|
  1. wph
--| (9) wff ph                  |
  | (8) wff ( ph -> ph )        |
  | (5) wff ( ph -> (ph -> ph)) |
  |-----------------------------|
  1. wph
--| (10) wff ph                 |--
  | (9) wff ph                  |
  | (8) wff ( ph -> ph )        |
  | (5) wff ( ph -> (ph -> ph)) |
  |-----------------------------|
  1. ax-1

Este no tengo claro qué es lo que hace... lo tengo que analizar paso a paso...

Este axioma tiene 2 variables, ph (la primera) y ps (la segunda). Las variables se refieren a wffs. Por tanto, el axiona lo que dice es algo como: la primera wff implica que la segunda wff implica la primera wff... Es decir, que el axioma en realidad es como un "operador", similar a wi, pero con otra estructura

La pila se interpreta así:

--| (segunda wff) (10) wff ph   |--
  | (primera wff) (9) wff ph    |
  | (8) wff ( ph -> ph )        |
  | (5) wff ( ph -> (ph -> ph)) |
  |-----------------------------|

El axioma lee primero de la cima de la pila la segunda wff:

  • wps = wff ph
--| (primera wff) (9) wff ph    |--
  | (8) wff ( ph -> ph )        |
  | (5) wff ( ph -> (ph -> ph)) |
  |-----------------------------|

Ahora se lee la primera variable:

  • wph = wff ph
--| (8) wff ( ph -> ph )        |--
  | (5) wff ( ph -> (ph -> ph)) |
  |-----------------------------|

Y ahora se deposita en la pila el axioma con los valores de sus wffs que hemos leido de la pila

--| (11) |- ( ph -> ( ph -> ph )) |--
  | (8) wff ( ph -> ph )          |
  | (5) wff ( ph -> (ph -> ph))   |
  |-------------------------------|

A partir de ahora, para que ocupe menos y sea más legible, voy a usar las letras griegas para los resultados almacenados en la pila

--| (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 )) |--
  | (8) wff ( 𝜑 → 𝜑 )       |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))  |
  |--------------------------|
  1. wph
--| (12) wff 𝜑              |--
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 )) |
  | (8) wff ( 𝜑 → 𝜑 )       |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))  |
  |--------------------------|
  1. wph
--| (13) wff 𝜑              |--
  | (12) wff 𝜑              |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 )) |
  | (8) wff ( 𝜑 → 𝜑 )       |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))  |
  |--------------------------|

14.wph

--| (14) wff 𝜑              |--
  | (13) wff 𝜑              |
  | (12) wff 𝜑              |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 )) |
  | (8) wff ( 𝜑 → 𝜑 )       |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))  |
  |--------------------------|
  1. wi
--| (15) wff ( 𝜑 → 𝜑 )      |--
  | (12) wff 𝜑              |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 )) |
  | (8) wff ( 𝜑 → 𝜑 )       |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))  |
  |--------------------------|

16.wph

--| (16) wff  𝜑             |--
--| (15) wff ( 𝜑 → 𝜑 )      |
  | (12) wff 𝜑              |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 )) |
  | (8) wff ( 𝜑 → 𝜑 )       |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))  |
  |--------------------------|
  1. wi
--| (17) wff (( 𝜑 → 𝜑 ) → 𝜑) |--
  | (12) wff 𝜑               |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 ))  |
  | (8) wff ( 𝜑 → 𝜑 )        |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))   |
  |--------------------------|
  1. wi
--| (18) wff (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) |--
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 ))  |
  | (8) wff ( 𝜑 → 𝜑 )        |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))   |
  |--------------------------|
  1. wph
--| (19) 𝜑                          |--
  | (18) wff (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 ))        |
  | (8) wff ( 𝜑 → 𝜑 )              |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))         |
  |---------------------------------|
  1. wph
--| (20) 𝜑                          |--
  | (19) 𝜑                          |
  | (18) wff (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 ))        |
  | (8) wff ( 𝜑 → 𝜑 )              |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))         |
  |---------------------------------|
  1. wph
--| (21) 𝜑                          |--
  | (20) 𝜑                          |
  | (19) 𝜑                          |
  | (18) wff (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 ))        |
  | (8) wff ( 𝜑 → 𝜑 )              |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))         |
  |---------------------------------|
  1. wi
--| (22) wff ( 𝜑 → 𝜑 )              
  | (19) 𝜑                          |
  | (18) wff (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 ))        |
  | (8) wff ( 𝜑 → 𝜑 )              |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))         |
  |---------------------------------|
  1. wi
--| (23) wff (𝜑 → ( 𝜑 → 𝜑 ))
  | (18) wff (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 ))        |
  | (8) wff ( 𝜑 → 𝜑 )              |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))         |
  |---------------------------------|

24.wph

--| (24) 𝜑
  | (23) wff (𝜑 → ( 𝜑 → 𝜑 ))
  | (18) wff (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 ))        |
  | (8) wff ( 𝜑 → 𝜑 )              |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))         |
  |---------------------------------|
  1. wph
--| (25) 𝜑
  | (24) 𝜑
  | (23) wff (𝜑 → ( 𝜑 → 𝜑 ))
  | (18) wff (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 ))        |
  | (8) wff ( 𝜑 → 𝜑 )              |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))         |
  |---------------------------------|
  1. wi
--| (26) wff ( 𝜑 → 𝜑 ) 
  | (23) wff (𝜑 → ( 𝜑 → 𝜑 ))
  | (18) wff (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 ))        |
  | (8) wff ( 𝜑 → 𝜑 )              |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))         |
  |---------------------------------|
  1. wi
--| (27) wff ((𝜑 → ( 𝜑 → 𝜑 )) → ( 𝜑 → 𝜑 )) 
  | (18) wff (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 ))        |
  | (8) wff ( 𝜑 → 𝜑 )              |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))         |
  |---------------------------------|
  1. wph
--| (28) 𝜑
  | (27) wff ((𝜑 → ( 𝜑 → 𝜑 )) → ( 𝜑 → 𝜑 )) 
  | (18) wff (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 ))        |
  | (8) wff ( 𝜑 → 𝜑 )              |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))         |
  |---------------------------------|
  1. wph
--| (29) 𝜑
  | (28) 𝜑
  | (27) wff ((𝜑 → ( 𝜑 → 𝜑 )) → ( 𝜑 → 𝜑 )) 
  | (18) wff (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 ))        |
  | (8) wff ( 𝜑 → 𝜑 )              |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))         |
  |---------------------------------|
  1. wph
--| (30) 𝜑
  | (29) 𝜑
  | (28) 𝜑
  | (27) wff ((𝜑 → ( 𝜑 → 𝜑 )) → ( 𝜑 → 𝜑 )) 
  | (18) wff (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 ))        |
  | (8) wff ( 𝜑 → 𝜑 )              |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))         |
  |---------------------------------|
  1. wi
--| (31) wff ( 𝜑 → 𝜑 )
  | (28) 𝜑
  | (27) wff ((𝜑 → ( 𝜑 → 𝜑 )) → ( 𝜑 → 𝜑 )) 
  | (18) wff (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 ))        |
  | (8) wff ( 𝜑 → 𝜑 )              |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))         |
  |---------------------------------|
  1. ax-1
--| (32) ⊢ (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑))
  | (27) wff ((𝜑 → ( 𝜑 → 𝜑 )) → ( 𝜑 → 𝜑 )) 
  | (18) wff (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 ))        |
  | (8) wff ( 𝜑 → 𝜑 )              |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))         |
  |---------------------------------|
  1. wph
--| (33) wff 𝜑
  | (32) ⊢ (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑))
  | (27) wff ((𝜑 → ( 𝜑 → 𝜑 )) → ( 𝜑 → 𝜑 )) 
  | (18) wff (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 ))        |
  | (8) wff ( 𝜑 → 𝜑 )              |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))         |
  |---------------------------------|
  1. wph
--| (34) wff 𝜑
  | (33) wff 𝜑
  | (32) ⊢ (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑))
  | (27) wff ((𝜑 → ( 𝜑 → 𝜑 )) → ( 𝜑 → 𝜑 )) 
  | (18) wff (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 ))        |
  | (8) wff ( 𝜑 → 𝜑 )              |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))         |
  |---------------------------------|
  1. wph
--| (35) wff 𝜑
  | (34) wff 𝜑
  | (33) wff 𝜑
  | (32) ⊢ (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑))
  | (27) wff ((𝜑 → ( 𝜑 → 𝜑 )) → ( 𝜑 → 𝜑 )) 
  | (18) wff (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 ))        |
  | (8) wff ( 𝜑 → 𝜑 )              |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))         |
  |---------------------------------|
  1. wi
--| (36) wff ( 𝜑 → 𝜑 )
  | (33) wff 𝜑
  | (32) ⊢ (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑))
  | (27) wff ((𝜑 → ( 𝜑 → 𝜑 )) → ( 𝜑 → 𝜑 )) 
  | (18) wff (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 ))        |
  | (8) wff ( 𝜑 → 𝜑 )              |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))         |
  |---------------------------------|
  1. wph
--| (37) wff 𝜑
--| (36) wff ( 𝜑 → 𝜑 )
  | (33) wff 𝜑
  | (32) ⊢ (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑))
  | (27) wff ((𝜑 → ( 𝜑 → 𝜑 )) → ( 𝜑 → 𝜑 )) 
  | (18) wff (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 ))        |
  | (8) wff ( 𝜑 → 𝜑 )              |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))         |
  |---------------------------------|
  1. ax-2
--| (Tercera var.) (37) wff 𝜑
  | (Segunda var.) (36) wff ( 𝜑 → 𝜑 )
  | (Primera var.) (33) wff 𝜑
  | (32) ⊢ (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑))
  | (27) wff ((𝜑 → ( 𝜑 → 𝜑 )) → ( 𝜑 → 𝜑 )) 
  | (18) wff (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 ))        |
  | (8) wff ( 𝜑 → 𝜑 )              |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))         |
  |---------------------------------|
  • Leemos la tercera variable: 𝜒 = 𝜑
  • Leemos la segunda variable: 𝜓 = wff ( 𝜑 → 𝜑 )
  • Leemos la primera variable: 𝜑 = 𝜑
--| (38) ⊢ ((𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) → ((𝜑 → ( 𝜑 → 𝜑 )) → (𝜑 → 𝜑)))  
  | (32) ⊢ (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑))
  | (27) wff ((𝜑 → ( 𝜑 → 𝜑 )) → ( 𝜑 → 𝜑 )) 
  | (18) wff (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 ))        |
  | (8) wff ( 𝜑 → 𝜑 )              |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))         |
  |---------------------------------|
  1. ax-mp
--| (maj) (38) ⊢ ((𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) → ((𝜑 → ( 𝜑 → 𝜑 )) → (𝜑 → 𝜑)))  
  | (min) (32) ⊢ (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑))
  | (27) wff ((𝜑 → ( 𝜑 → 𝜑 )) → ( 𝜑 → 𝜑 )) 
  | (18) wff (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 ))        |
  | (8) wff ( 𝜑 → 𝜑 )              |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))         |
  |---------------------------------|
  • maj: ⊢ ((𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) → ((𝜑 → ( 𝜑 → 𝜑 )) → (𝜑 → 𝜑)))
  • min: ⊢ (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑))
--| (39) ⊢ ((𝜑 → ( 𝜑 → 𝜑 )) → (𝜑 → 𝜑))
  | (27) wff ((𝜑 → ( 𝜑 → 𝜑 )) → ( 𝜑 → 𝜑 )) 
  | (18) wff (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 ))        |
  | (8) wff ( 𝜑 → 𝜑 )              |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))         |
  |---------------------------------|
  1. ax-mp
--| (40) 
--| (maj) (39) ⊢ ((𝜑 → ( 𝜑 → 𝜑 )) → (𝜑 → 𝜑))
  | (min) (27) wff ((𝜑 → ( 𝜑 → 𝜑 )) → ( 𝜑 → 𝜑 )) 
  | (18) wff (𝜑 → (( 𝜑 → 𝜑 ) → 𝜑)) |
  | (11) ⊢ ( 𝜑 → ( 𝜑 → 𝜑 ))        |
  | (8) wff ( 𝜑 → 𝜑 )              |
  | (5) wff ( 𝜑 → (𝜑 → 𝜑))         |
  |---------------------------------|

Hay algo que he hecho mal... quedan en la pila cosas sin consumir.... El primero problema se ve con los pasos 5 y 8, que quedan almacenados en el fondo de la pila... hay algo que no entiendo en pasos previos... Los pasos 18 y 27 tampoco se han consumido... En la aplicación de alguno de los axiomas parece que hay algo que no estoy haciendo bien...

Para entender lo que está ocurriendo voy a comprobar la demostración del teorema ax-1: https://us.metamath.org/mpeuni/ax-1.html

Vaya... no se muestra porque no hay prueba... (es un axioma)...

Entonces voy a ver si entiendo el primer teorema: mp2

MM> show statement mp2
53 mp2.1 $e |- ph $.
54 mp2.2 $e |- ps $.
55 mp2.3 $e |- ( ph -> ( ps -> ch ) ) $.
56 mp2 $p |- ch $= ... $.
MM>

Mostramos la prueba:

MM> show proof mp2 /lemmon
 3 mp2.2         $e |- ps
 8 mp2.1         $e |- ph
 9 mp2.3         $e |- ( ph -> ( ps -> ch ) )
10 8,9 ax-mp     $a |- ( ps -> ch )
11 3,10 ax-mp    $a |- ch
MM>

Voy a obtener la implementación de la prueba, decodificada:

MM> save proof idALT /normal    
The proof of "idALT" has been reformatted and saved internally.
Remember to use WRITE SOURCE to save changes permanently.
MM> write source set.mm
The input file will be renamed set.mm~1.
Writing "set.mm"...
224730 source statement(s) were written.
MM>

Esta es la prueba:

${
    mp2.1 $e |- ph $.
    mp2.2 $e |- ps $.
    mp2.3 $e |- ( ph -> ( ps -> ch ) ) $.
    $( A double modus ponens inference.  (Contributed by NM, 5-Apr-1994.) $)
    mp2 $p |- ch $=
      wps wch mp2.2 wph wps wch wi mp2.1 mp2.3 ax-mp ax-mp $.
  $}

Vamos a ver la prueba paso a paso: wps wch mp2.2 wph wps wch wi mp2.1 mp2.3 ax-mp ax-mp

  1. wps
--| (1) wff ps
  |--------
  1. wch
--| (2) wch ch
  | (1) wff ps
  |------------
  1. mp2.2
--| (3) |- ps
  | (2) wch ch
  | (1) wff ps
  |------------
  1. wph
--| (4) wff ph
  | (3) |- ps
  | (2) wch ch
  | (1) wff ps
  |------------
  1. wps
--| (5) wff ps
  | (4) wff ph
  | (3) |- ps
  | (2) wch ch
  | (1) wff ps
  |------------
  1. wch
--| (6) wff ch
  | (5) wff ps
  | (4) wff ph
  | (3) |- ps
  | (2) wch ch
  | (1) wff ps
  |------------
  1. wi
--| (7) wff (ps -> ch)
  | (4) wff ph
  | (3) |- ps
  | (2) wch ch
  | (1) wff ps
  |------------

8.mp2.1

--| (8) |- ph
  | (7) wff (ps -> ch)
  | (4) wff ph
  | (3) |- ps
  | (2) wch ch
  | (1) wff ps
  |------------
  1. mp2.3
--| (9) |- ( ph -> ( ps -> ch ) )
  | (8) |- ph
  | (7) wff (ps -> ch)
  | (4) wff ph
  | (3) |- ps
  | (2) wch ch
  | (1) wff ps
  |------------
  1. ax-mp
--| (maj) (9) |- ( ph -> ( ps -> ch ) )
  | (min) (8) |- ph
  | (7) wff (ps -> ch)
  | (4) wff ph
  | (3) |- ps
  | (2) wch ch
  | (1) wff ps
  |------------
--| (10) |- ( ps -> ch )
  | (7) wff (ps -> ch)
  | (4) wff ph
  | (3) |- ps
  | (2) wch ch
  | (1) wff ps
  |------------

ok.. ocurre lo mismo... me aparecen expresiones de más en la pila. Aparecen 7 y 4... Si las quitamos (suponemos que se han consumido)

--| (10) |- ( ps -> ch )
  | (3) |- ps
  | (2) wch ch
  | (1) wff ps
  |------------

Aplicamos el último ax-mp:

--| (maj) (10) |- ( ps -> ch )
  | (min) (3) |- ps
  | (2) wch ch
  | (1) wff ps
  |------------
--| (11) |- ch
  | (2) wch ch
  | (1) wff ps
  |------------

La conclusión es correcta, pero me sobran también las señales (1) y (2)

Conclusión: Me sobran 4 elementos de la pila: (7), (4), (1) y (2)... no tengo claro dónde se consumen... Tengo que leer más el libro de metamath para entenderlo

MM> show proof mp2 /all /lemmon
 1 wps           $f wff ps
 2 wch           $f wff ch
 3 mp2.2         $e |- ps
 4 wph           $f wff ph
 5 wps           $f wff ps
 6 wch           $f wff ch
 7 5,6 wi        $a wff ( ps -> ch )
 8 mp2.1         $e |- ph
 9 mp2.3         $e |- ( ph -> ( ps -> ch ) )
10 4,7,8,9 ax-mp  $a |- ( ps -> ch )
11 1,2,3,10 ax-mp  $a |- ch
MM>

2025-01-08

Leyendo el libro de metamath estoy descubriendo muchas cosas. La sección "2.3 A Trial Run" contiene muchos detalles y ejemplos relevantes

Voy a pedir más información sobre el axioma ax-mp, que es la regla que permite deducir teoremas: show statement ax-mp /full

MM> show statement ax-mp /full
Statement 47 is located on line 660 of the file "set.mm".  Its statement number
for HTML pages is 5.
"Rule of Modus Ponens.  The postulated inference rule of propositional
       calculus.  See, e.g., Rule 1 of [Hamilton] p. 73.  The rule says, "if
       ` ph ` is true, and ` ph ` implies ` ps ` , then ` ps ` must also be
       true".  This rule is sometimes called "detachment", since it detaches
       the minor premise from the major premise.  "Modus ponens" is short for
       "modus ponendo ponens", a Latin phrase that means "the mode that by
       affirming affirms" - remark in [Sanford] p. 39.  This rule is similar to
       the rule of modus tollens ~ mto .

       Note:  In some web page displays such as the Statement List, the
       symbols " ` & ` " and " ` => ` " informally indicate the relationship
       between the hypotheses and the assertion (conclusion), abbreviating the
       English words "and" and "implies".  They are not part of the formal
       language.  (Contributed by NM, 30-Sep-1992.)"
47 ax-mp $a |- ps $.
Its mandatory hypotheses in RPN order are:
  wph $f wff ph $.
  wps $f wff ps $.
  min $e |- ph $.
  maj $e |- ( ph -> ps ) $.
The statement and its hypotheses require the variables:  ps ph
The variables it contains are:  ps ph
MM> 

Lo interesante está al final. Vemos que dice que tiene 4 hipótesis obligatorias, en notación polaca. Es decir, que para llamar a ax-mp hay que introducirlas en ese orden: wph wps min maj... Y por tanto al ejecutarse ax-mp se obteienen en el orden inverso

Efectivamente yo estaba suponiendo que tenían sólo 2 hypótesis, min y maj, pero NO, tienen 4. Entiendo que wph y wps son para leer de la pila las wff que están bien construidas. Min y maj son las mismas pero con el símbolo |- delante...

Voy a repetir la prueba de mp2, a ver si ahora hemos avanzado algo

Primero sacamos la prueba en version humana: ``

MM> show proof mp2 /lemmon /all
 1 wps           $f wff ps
 2 wch           $f wff ch
 3 mp2.2         $e |- ps
 4 wph           $f wff ph
 5 wps           $f wff ps
 6 wch           $f wff ch
 7 5,6 wi        $a wff ( ps -> ch )
 8 mp2.1         $e |- ph
 9 mp2.3         $e |- ( ph -> ( ps -> ch ) )
10 4,7,8,9 ax-mp  $a |- ( ps -> ch )
11 1,2,3,10 ax-mp  $a |- ch
MM>

Pedimos más información sobre mp2

MM> show statement mp2 /full
Statement 56 is located on line 716 of the file "set.mm".  Its statement number
for HTML pages is 9.
"A double modus ponens inference.  (Contributed by NM, 5-Apr-1994.)"
56 mp2 $p |- ch $= ... $.
Its mandatory hypotheses in RPN order are:
  wph $f wff ph $.
  wps $f wff ps $.
  wch $f wff ch $.
  mp2.1 $e |- ph $.
  mp2.2 $e |- ps $.
  mp2.3 $e |- ( ph -> ( ps -> ch ) ) $.
Its optional hypotheses are:  wth wta wet wze wsi wrh wmu wla wka
The statement and its hypotheses require the variables:  ch ph ps
These additional variables are allowed in its proof:  th ta et ze si rh mu la
      ka
The variables it contains are:  ch ph ps
MM>

Nos fijamos que tiene 6 hipótesis obligatorias... es decir, que para usar mp2 espera recibir 6 cosas en la pila

La prueba en la base de datos es: (Decodificada):

mp2 $p |- ch $=
      wps wch mp2.2 wph wps wch wi mp2.1 mp2.3 ax-mp ax-mp $.

Así que vamos al lío... Para estar seguros, voy a visualizar cada una de las fórmulas indicadas (con show statement <label> /full) En total hay 11 pasos, que coinciden con los mismos pasos mostrados con el comando show proof mp2 /lemmon /all

  1. wps

Pedimos información

MM> show statement wps /full
Statement 22 is located on line 409 of the file "set.mm".
"Let variable ` ps ` be a wff."
22 wps $f wff ps $.
MM>

No lee nada de la pila

--| wff 𝜓
  |-------
  1. wch
--| wff 𝜒
  | wff 𝜓
  |-------
  1. mp2.2
| ⊢ 𝜓
| wff 𝜒
| wff 𝜓
|-------
  1. wph
| wff 𝜑
| ⊢ 𝜓
| wff 𝜒
| wff 𝜓
|-------
  1. wps
| wff 𝜓
| wff 𝜑
| ⊢ 𝜓
| wff 𝜒
| wff 𝜓
|-------
  1. wch
(6)| wff 𝜒
(5)| wff 𝜓
(4)| wff 𝜑
(3)| ⊢ 𝜓
(2)| wff 𝜒
(1)| wff 𝜓
   |-------
  1. wi
MM> show statement wi /full
Statement 43 is located on line 603 of the file "set.mm".  Its statement number
for HTML pages is 4.
[...]
43 wi $a wff ( ph -> ps ) $.
Its mandatory hypotheses in RPN order are:
  wph $f wff ph $.
  wps $f wff ps $.
The statement and its hypotheses require the variables:  ph ps
The variables it contains are:  ph ps
MM> 

Tiene 2 hipótesis obligatorias, que están en la pila. Primero se ha introducido wph y luego wps

(6)| wff 𝜒 (wps)
(5)| wff 𝜓 (wph)
(4)| wff 𝜑
(3)| ⊢ 𝜓
(2)| wff 𝜒
(1)| wff 𝜓
   |-------

Ahora aplicamos wi:

(7)| wff (𝜓 → 𝜒)
(4)| wff 𝜑
(3)| ⊢ 𝜓
(2)| wff 𝜒
(1)| wff 𝜓
   |-------
  1. mp2.1
(8)| ⊢ 𝜑 
(7)| wff (𝜓 → 𝜒)
(4)| wff 𝜑
(3)| ⊢ 𝜓
(2)| wff 𝜒
(1)| wff 𝜓
   |-------
  1. mp2.3
(9)| ⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
(8)| ⊢ 𝜑 
(7)| wff (𝜓 → 𝜒)
(4)| wff 𝜑
(3)| ⊢ 𝜓
(2)| wff 𝜒
(1)| wff 𝜓
   |-------
  1. ax-mp

Según la definición de ax-mp, los parametros que se introducen en la pila son:

wph wps min maj

(9)| (maj) ⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
(8)| (min) ⊢ 𝜑 
(7)| (wps) wff (𝜓 → 𝜒)
(4)| (wph) wff 𝜑
(3)| ⊢ 𝜓
(2)| wff 𝜒
(1)| wff 𝜓
   |-------

Saca de la pila las 4 hipótesis superiores y deja la conclusión

(10)| ⊢ ( 𝜓 → 𝜒 )
(3) | ⊢ 𝜓
(2) | wff 𝜒
(1) | wff 𝜓
    |-------
  1. ax-mp

ax-mp espera recibir 4 parametros de la pila. Lo nombramos

(10)| (maj) ⊢ ( 𝜓 → 𝜒 )
(3) | (min) ⊢ 𝜓
(2) | (wps) wff 𝜒
(1) | (wph) wff 𝜓
    |-------

Y ahora aplicamos ax-mp

(11)| ⊢ 𝜒
    |-------

En la pila ahora sólo queda 1 elemento, que es igual a lo que decía el teorema mp2... ¡Ahora si! Hemos llegado a la conclusión ⊢ 𝜒 utilizando sólo las reglas definidas en nuestro sistema... de manera mecánica. Ya entiendo perfectametne cómo funciona. Todavía me falta por aplicar los axiomas directamente, que no lo tengo claro...

2025-01-10

El archivo set.mm con todos los teoremas es muy muy grande (46MB). He creado una versión más corta: obijuan.mm, que voy procesando poco a poco, y donde iré dejando sólo lo esencial, perfectamente documentado. En este repositorio NO estoy guardando set.mm, pero sí obijuan.mm. También he guardado el ejecutable para Linux: metamath. Esto facilitará las pruebas en un futuro... sin tener que compilarlo

Cargamos la base de datos

obijuan@JANEL:~/Develop/Learn-logic/Metamath$ ./metamath 
Metamath - Version 0.199.pre 29-Jan-2022      Type HELP for help, EXIT to exit.
MM> read obijuan.mm
Reading source file "obijuan.mm"... 55099 bytes
55099 bytes were read into the source buffer.
The source has 556 statements; 6 are $a and 148 are $p.
No errors were found.  However, proofs were not checked.  Type VERIFY PROOF *
if you want to check them.
MM> verify proof *
0 10%  20%  30%  40%  50%  60%  70%  80%  90% 100%
..................................................
All proofs in the database were verified in 0.00 s.

Examinamos la deducción mp2 (inferencia)

MM> show statement mp2 /full
Statement 23 is located on line 70 of the file "obijuan.mm".  Its statement
number for HTML pages is 7.
?Warning: Statement "mp2" has no comment
23 mp2 $p |- ch $= ... $.
Its mandatory hypotheses in RPN order are:
  wph $f wff ph $.
  wps $f wff ps $.
  wch $f wff ch $.
  mp2.1 $e |- ph $.
  mp2.2 $e |- ps $.
  mp2.3 $e |- ( ph -> ( ps -> ch ) ) $.
Its optional hypotheses are:  wth wta wet
The statement and its hypotheses require the variables:  ch ph ps
These additional variables are allowed in its proof:  th ta et
The variables it contains are:  ch ph ps
MM> show proof mp2 /all /lemmon
 1 wps           $f wff ps
 2 wch           $f wff ch
 3 mp2.2         $e |- ps
 4 wph           $f wff ph
 5 wps           $f wff ps
 6 wch           $f wff ch
 7 5,6 wi        $a wff ( ps -> ch )
 8 mp2.1         $e |- ph
 9 mp2.3         $e |- ( ph -> ( ps -> ch ) )
10 4,7,8,9 ax-mp  $a |- ( ps -> ch )
11 1,2,3,10 ax-mp  $a |- ch
MM> 

2025-01-11

En obijuan.mm he metido como símbolos terminales p, q y r, que representan proposiciones concretas. No se usan en las demostraciones pero me sirve para crear ejemplos aplicados, y entenderlo todo mejor

He creado el axioma: |- ( p -> q ), y la deducción |- p => |- q. Esta deducción (teorema) la he llamado th-obi1

Esta es su demostración:

MM> show proof th-obi1 /all /lemmon
1 wpp            $a wff p
2 wpq            $a wff q
3 th-obi1.1      $e |- p
4 ax-obi1        $a |- ( p -> q )
5 1,2,3,4 ax-mp  $a |- q
MM>

2025-01-13

Se me ha ocurrido que para entender bien las demostraciones de metamath puedo intentar una implementación en python. Cuando lo tengo implementado y lo entienda bien, lo puedo pasar a forth... La idea es hacerlo lo más parecido a metamath, pero con python. Tal vez, en fez de usar la pila, use parámetros... lo tengo que ir viendo sobre la marcha. Voy a hacer experimentos en el log, y cuando lo tenga más claro, lo meteré como una página propia en la wiki

Ya tengo una primera versión, que genera las proposiciones p,q y r, las variables de fórmulas: 𝜑, 𝜓, 𝜒 y la implicación

Estoy trabajando únicamente con cadenas. Así por ejemplo, esta es la función equivalente a wph:

def wp() -> str:
    """La proposición p es una fórmula bien formada (wff)"""

    #-- Crear la cadena wff
    w = f"wff p"

    #-- Retornar la cadena wff
    return w

Esta es la misma, pero trabajando con la variable de fórmulas 𝜑

def w𝜑() -> str:
    """La variable 𝜑 es una fórmula bien formada (wff)"""

    #-- Crear la cadena wff
    w = f"wff 𝜑"

    #-- Retornar la cadena wff
    return w

Esta es la función para construir la implicación

def wi(wa : str, wc : str) -> str:
    """Si wa y wc son fórmulas bien formadas (wff), """
    """entonces (wa → wc) es una fórmula bien formada (wff)"""

    #-- Obtener la fórmula antecedente
    𝜑 = assert_wff(wa)
    
    #-- Obtener la fórmula consecuente
    𝜓 = assert_wff(wc)

    #-- Crear la cadena wff
    w = f"wff ( {𝜑}{𝜓} )"
    
    return w

Para el antecedente y el consecuente lo que hace es obtener primero las fórmulas (a las que les quita el wff inicial) y generar como salida la fórmula de implicación correcta. Al obtener las fórmulas se detectan errores si no comienzan por "wff "

Así es como lo probamos:

wff1 = wφ()
wff2 = wψ()
wff3 = wχ()
debug_wff(wff1)
debug_wff(wff2)
debug_wff(wff3)

#-- Crear wff ( 𝜑 → 𝜓 )
w3 = wi(wff1, wff2)
debug_wff( w3 )

#-- Crear wff ( 𝜑 → ( 𝜑 → 𝜓 ) )
w4 = wi(wff1, w3)
debug_wff(w4)

#-- Crear wff ( p → q )
w5 = wi(wp(), wq())
debug_wff(w5)

print()

Este es el resultado al ejecutar el programa completo (que tiene test unitarios y más cosas...)

obijuan@JANEL:~/Develop/Learn-logic$ /bin/python3 /home/obijuan/Develop/Learn-logic/Log/2025-01-13/metamath.py
-------Test unitarios-------
-- Variables proposicionales: 
✅️ wp. Test 1
✅️ wq. Test 1
✅️ wr. Test 1
-- Variables de fórmulas: 
✅️ w𝜑. Test 1
✅️ w𝜓. Test 1
✅️ w𝜒. Test 1
-- Implicación: 
✅️ wi. Test 1
✅️ wi. Test 2
✅️ wi. Test 2
✅️ wi. Test 3

------- Main---------
• wff 𝜑
• wff 𝜓
• wff 𝜒
• wff ( 𝜑 → 𝜓 )
• wff ( 𝜑 → ( 𝜑 → 𝜓 ) )
• wff ( p → q )

Lo estoy ejecutando directamente desde vscode, pinchando en la flechita para ejecutar el código python

OK. Ya tengo la función hecha para convertir una fórmula en un teorema. A nivel sintáctico lo único que se hace es añadir el símbolo ⊢ a una wff, comprobando que efectivamente es una wff, y eliminando por tanto el "wff" inicial

Ahora ya se pueden crear teoremas fácilmente simplemente llamando a la función theorem() y pasándole una wff:

#-- Crear teorema ⊢ ( 𝜑 )
w6 = theorem(wff1)
debug_wff(w6)

#-- Crear teorema ⊢ ( 𝜑 → 𝜓 )
w7 = theorem(w3)
debug_wff(w7)

Esta es la nueva salida del programa:

------- Main---------wff 𝜑wff 𝜓wff 𝜒wff ( 𝜑𝜓 )
• wff ( 𝜑 → ( 𝜑𝜓 ) )
• wff ( pq )
• ⊢ 𝜑
• ⊢ ( 𝜑𝜓 )

Ya tengo añadida la regla de inferencia ax-mp!! (Modus ponens) Funciona que te cagas!

Este es el fragmento para hacer las pruebas de ax-mp:

#----------- Prueba de ax-mp
print("--- MODUS PONENS ----")

#---- PRUEBA 1
#-- Premisas
wph = ()
wps = ()
min = theorem(wph)
maj = theorem( wi(wph,wps) )

#-- Conclusión
ax_mp(wph, wps, min, maj, debug=True)
print()

#----- PRUEBA 2
wph = w𝜓()
wps = w𝜒()
min = theorem(wph)
maj = theorem( wi ( wph, wps) ) 
ax_mp(wph, wps, min, maj, debug=True)
print()

#------ PRUEBA 3
wph = ()
wps = wi( w𝜓(), w𝜒())
min = theorem(wph)
maj = theorem( wi ( wph, wps) ) 
ax_mp(wph, wps, min, maj, debug=True)
print()

#----- PRUEBA 4
wph = wi ((), w𝜒())
wps = wi( w𝜓(), ())
min = theorem(wph)
maj = theorem( wi ( wph, wps) ) 
ax_mp(wph, wps, min, maj, debug=True)
print()

Y este es el resultado:

------- Main---------wff 𝜑wff 𝜓wff 𝜒wff ( 𝜑𝜓 )
• wff ( 𝜑 → ( 𝜑𝜓 ) )
• wff ( pq )
• ⊢ 𝜑
• ⊢ ( 𝜑𝜓 )

--- MODUS PONENS ----𝜑
⊢ ( 𝜑𝜓 )
───────────
⊢ 𝜓𝜓
⊢ ( 𝜓𝜒 )
───────────
⊢ 𝜒𝜑
⊢ ( 𝜑 → ( 𝜓𝜒 ) )
───────────────────
⊢ ( 𝜓𝜒 )

⊢ ( 𝜑𝜒 )
⊢ ( ( 𝜑𝜒 ) → ( 𝜓𝜑 ) )
───────────────────────────
⊢ ( 𝜓𝜑 )

Ahora que ya tengo implementado el axioma ax-mp, puedo empezar a construir la demostración de la deducción mp2:

⊢ 𝜑
⊢ 𝜓
⊢ (𝜑 → (𝜓 → 𝜒))
───────────────
⊢ 𝜒

Recordamos algunas cosas. Estas son las hipótesis obligatorias (6)

MM> show statement mp2 /full
[...]
Its mandatory hypotheses in RPN order are:
  wph $f wff ph $.
  wps $f wff ps $.
  wch $f wff ch $.
  mp2.1 $e |- ph $.
  mp2.2 $e |- ps $.
  mp2.3 $e |- ( ph -> ( ps -> ch ) ) $.

Por tanto, nuestra función mp2 tiene que tener 6 parámetros mp2(wph, wps, wch, mp2_1, mp2_2, mp2_3)

Estos son todos los pasos de la demostración:

MM> show proof mp2 /all /lemmon
 1 wps           $f wff ps
 2 wch           $f wff ch
 3 mp2.2         $e |- ps
 4 wph           $f wff ph
 5 wps           $f wff ps
 6 wch           $f wff ch
 7 5,6 wi        $a wff ( ps -> ch )
 8 mp2.1         $e |- ph
 9 mp2.3         $e |- ( ph -> ( ps -> ch ) )
10 4,7,8,9 ax-mp  $a |- ( ps -> ch )
11 1,2,3,10 ax-mp  $a |- ch

Ya tengo implementado el teorema mp()! Al invocarla con los parámetros correctos genera como salida el teorema conclusión! Lo interesante es que lo he implementado exactamente igual que la demostración de metamath. Por supuesto se puede simplificar, pero en esta primera pasada la implementamos igual. Este es el fragmento de la deducción del teorema:

    print("DEMOSTRACION:")
    step_1 = wps
    step_2 = wch
    step_3 = mp2_2
    step_4 = wph
    step_5 = wps
    step_6 = wch
    step_7 = wi (step_5, step_6) #  wff (𝜓 → 𝜒)
    step_8 = mp2_1
    step_9 = mp2_3
    step_10 = ax_mp(step_4, step_7, step_8, step_9, debug=True)
    print()
    step_11 = ax_mp(step_1, step_2, step_3, step_10, debug=True)
    print()

    conclusion = step_11
    print("CONCLUSION: ")
    print(conclusion)

    print()
    return conclusion

He usado los mismos nombre que en la prueba original. Tiene en total 11 paso.

Este es el código que se invoca para realizar la demostración:

#------------- MP2
print("--- TEOREMA: MP2 ----")

wph = ()
wps = w𝜓()
wch = w𝜒()
mp2_1 = theorem(wph)  #-- ⊢ 𝜑 
mp2_2 = theorem(wps)  #-- ⊢ 𝜓
mp2_3 = theorem(wi(wph, wi(wps, wch))) #-- ⊢ (𝜑 → (𝜓 → 𝜒))
mp2(wph, wps, wch, mp2_1, mp2_2, mp2_3)

Esto es lo que aparece en la consola:

--- TEOREMA: MP2 ----
HIPOTESIS:
• wff 𝜑
• wff 𝜓
• wff 𝜒
• ⊢ 𝜑
• ⊢ 𝜓
• ⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )

DEMOSTRACION:
⊢ 𝜑
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
───────────────────
⊢ ( 𝜓 → 𝜒 )

⊢ 𝜓
⊢ ( 𝜓 → 𝜒 )
───────────
⊢ 𝜒

CONCLUSION: 
⊢ 𝜒

FUNCIONA! Estoy flipando mucho... y es muy muy fácil! Voy a simplificar la demo, porque no hacen falta tantos pasos

Esta es la nueva demostración. Sólo se necesitan 2 pasos (correspondientes a los 2 modus ponens)

print("DEMOSTRACION:")
    step_1  = ax_mp(wph,            # • wff 𝜑
                    wi(wps, wch),   # • wff ( 𝜓 → 𝜒 )
                    mp2_1,          # ⊢ 𝜑
                    mp2_3,          # ⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
                    debug=True)  
                        # Conclusion: ⊢ ( 𝜓 → 𝜒 )

    step_2 = ax_mp(wps,             # • wff 𝜓
                   wch,             # • wff 𝜒
                   mp2_2,           # ⊢ 𝜓
                   step_1,          # ⊢ ( 𝜓 → 𝜒 )
                   debug=True)
                       # Conclusion: ⊢ 𝜒
    print("q.e.d")
    print()

    conclusion = step_2
    print("══════════")
    print("RESUMEN: ")
    print(f"{mp2_1}")
    print(f"{mp2_2}")
    print(f"{mp2_3}")
    print(f"{"─"*len(mp2_3)}") #-- Dibujar linea
    print(conclusion)
    print()

    return conclusion

Este es el resultado:

--- TEOREMA: MP2 ----
HIPOTESIS:
• wff 𝜑wff 𝜓wff 𝜒mp2.1: ⊢ 𝜑mp2.2: ⊢ 𝜓mp2.3: ⊢ ( 𝜑 → ( 𝜓𝜒 ) )

DEMOSTRACION:
📜️ Paso 1:
══════════
🟢️ ax-mp: 
• wff 𝜑wff ( 𝜓𝜒 )
⊢ 𝜑
⊢ ( 𝜑 → ( 𝜓𝜒 ) )
───────────────────
⊢ ( 𝜓𝜒 )

📜️ Paso 2:
══════════
🟢️ ax-mp: 
• wff 𝜓wff 𝜒𝜓
⊢ ( 𝜓𝜒 )
───────────
⊢ 𝜒

q.e.d

══════════
RESUMEN: 
⊢ 𝜑𝜓
⊢ ( 𝜑 → ( 𝜓𝜒 ) )
───────────────────
⊢ 𝜒

Teorema mp2b

https://us.metamath.org/mpeuni/mp2b.html

  • Hipótesis obligatorias: show statement /full
• wff 𝜑
• wff 𝜓
• wff 𝜒
⊢ 𝜑
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜓 → 𝜒 )
───────────────
⊢ 𝜒    
  • Demostración: show proof mp2b /all /lemmon
1 wps            # • wff 𝜓
2 wch            # • wff 𝜒
3 wph            # • wff 𝜑
4 wps            # • wff 𝜓
5 mp2b.1         # ⊢ 𝜑
6 mp2b.2         # ⊢ ( 𝜑 → 𝜓 )
7 3,4,5,6 ax-mp  # ⊢ 𝜓
8 mp2b.3         # ⊢ ( 𝜓 → 𝜒 )
9 1,2,7,8 ax-mp  # ⊢ 𝜒

Listo!:

--- TEOREMA: MP2B ----
HIPOTESIS:
• wff 𝜑
• wff 𝜓
• wff 𝜒
• mpb2.1: ⊢ 𝜑
• mpb2.2: ⊢ ( 𝜑 → 𝜓 )
• mpb2.3: ⊢ ( 𝜓 → 𝜒 )

DEMOSTRACION:
📜️ Paso 1:
══════════
🟢️ ax-mp: 
• wff 𝜑
• wff 𝜓
⊢ 𝜑
⊢ ( 𝜑 → 𝜓 )
───────────
⊢ 𝜓

📜️ Paso 2:
══════════
🟢️ ax-mp: 
• wff 𝜓
• wff 𝜒
⊢ 𝜓
⊢ ( 𝜓 → 𝜒 )
───────────
⊢ 𝜒

q.e.d

══════════
RESUMEN: 
⊢ 𝜑
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜓 → 𝜒 )
───────────
⊢ 𝜒

2025-01-14

a1i

  • Hipotesis: show statement a1i /full
  wph $f wff ph $.
  wps $f wff ps $.
  a1i.1 $e |- ph $.
  • Demostración: show proof a1i /all /lemmon
1 wph            $f wff ph
2 wps            $f wff ps
3 wph            $f wff ph
4 2,3 wi         $a wff ( ps -> ph )
5 a1i.1          $e |- ph
6 wph            $f wff ph
7 wps            $f wff ps
8 6,7 ax-1       $a |- ( ph -> ( ps -> ph ) )
9 1,4,5,8 ax-mp  $a |- ( ps -> ph )

Para implementar este teorema necesitamos primero el axioma ax-1

  • Hipotesis: show statement ax-1 /full
  wph $f wff ph $.
  wps $f wff ps $.

OK.. ya lo tengo:

══════════
🟢️ ax-1: 
• wff 𝜑
• wff 𝜓
───────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜑 ) )

Ya está implementado el teorema a1i

───────────────┤ TEOREMA a1i ├────────────────
⊢ 𝜑
────────────
⊢ ( 𝜓 → 𝜑 )

📜️ Paso 1:
══════════
🟢️ ax-1: 
• wff 𝜑
• wff 𝜓
───────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜑 ) )

📜️ Paso 2:
══════════
🟢️ ax-mp: 
⊢ 𝜑
⊢ ( 𝜑 → ( 𝜓 → 𝜑 ) )
───────────────────
⊢ ( 𝜓 → 𝜑 )

ax-2

  • ax-2

  • Hipótesis: show statement ax-2 /full

  wph $f wff ph $.
  wps $f wff ps $.
  wch $f wff ch $.

Ya está implementado:

══════════
🟢️ ax-2: 
• wff 𝜑
• wff 𝜓
• wff 𝜒
───────────────────────────────────────────────────
⊢ ( ( 𝜑 → ( 𝜓 → 𝜒 ) ) → ( ( 𝜑 → 𝜓 ) → ( 𝜑 → 𝜒 ) ) )

a2i

  • a2i

  • Hipotesis: show statement a2i /full

  wph $f wff ph $.
  wps $f wff ps $.
  wch $f wff ch $.
  a2i.1 $e |- ( ph -> ( ps -> ch ) ) $.
  • Demostración: show proof a2i /all /lemmon
 1 wph           $f wff ph
 2 wps           $f wff ps
 3 wch           $f wff ch
 4 2,3 wi        $a wff ( ps -> ch )
 5 1,4 wi        $a wff ( ph -> ( ps -> ch ) )
 6 wph           $f wff ph
 7 wps           $f wff ps
 8 6,7 wi        $a wff ( ph -> ps )
 9 wph           $f wff ph
10 wch           $f wff ch
11 9,10 wi       $a wff ( ph -> ch )
12 8,11 wi       $a wff ( ( ph -> ps ) -> ( ph -> ch ) )
13 a2i.1         $e |- ( ph -> ( ps -> ch ) )
14 wph           $f wff ph
15 wps           $f wff ps
16 wch           $f wff ch
17 14,15,16 ax-2  $a |- ( ( ph -> ( ps -> ch ) ) -> ( ( ph -> ps ) -> ( ph ->
                                                                       ch ) ) )
18 5,12,13,17 ax-mp  $a |- ( ( ph -> ps ) -> ( ph -> ch ) )

Esta es la demostración:

───────────────┤ TEOREMA a2i ├────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
──────────────────────
⊢ ( ( 𝜑 → 𝜓 ) → (𝜑 → 𝜒 ) )

📜️ Paso 1:
══════════
🟢️ ax-2: 
• wff 𝜑
• wff 𝜓
• wff 𝜒
───────────────────────────────────────────────────
⊢ ( ( 𝜑 → ( 𝜓 → 𝜒 ) ) → ( ( 𝜑 → 𝜓 ) → ( 𝜑 → 𝜒 ) ) )

📜️ Paso 2:
══════════
🟢️ ax-mp: 
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
⊢ ( ( 𝜑 → ( 𝜓 → 𝜒 ) ) → ( ( 𝜑 → 𝜓 ) → ( 𝜑 → 𝜒 ) ) )
───────────────────────────────────────────────────
⊢ ( ( 𝜑 → 𝜓 ) → ( 𝜑 → 𝜒 ) )

mpd

Este teorema es muy interesante porque es el primero que depende de otro teorema para su demostración (y no sólo los axiomas). Vamos a ver cómo se gestiona estoy con metamat en python

  • Link: mpd
  • Hipotesis: show statement mpd /full
  wph $f wff ph $.
  wps $f wff ps $.
  wch $f wff ch $.
  mpd.1 $e |- ( ph -> ps ) $.
  mpd.2 $e |- ( ph -> ( ps -> ch ) ) $.
  • Demostración: show proof mpd /all /lemmon
 1 wph           $f wff ph
 2 wps           $f wff ps
 3 1,2 wi        $a wff ( ph -> ps )
 4 wph           $f wff ph
 5 wch           $f wff ch
 6 4,5 wi        $a wff ( ph -> ch )
 7 mpd.1         $e |- ( ph -> ps )
 8 wph           $f wff ph
 9 wps           $f wff ps
10 wch           $f wff ch
11 mpd.2         $e |- ( ph -> ( ps -> ch ) )
12 8,9,10,11 a2i  $p |- ( ( ph -> ps ) -> ( ph -> ch ) )
13 3,6,7,12 ax-mp  $a |- ( ph -> ch )

id

Ya tengo la demostración lista

───────────────┤ TEOREMA id ├────────────────
wff 𝜑
─────
⊢ ( 𝜑 → 𝜑 )

🟢️ Paso 1: ax_1
wff 𝜑
wff 𝜑
─────
⊢ ( 𝜑 → ( 𝜑 → 𝜑 ) )

🟢️ Paso 2: ax_1
wff 𝜑
wff ( 𝜑 → 𝜑 )
─────────────
⊢ ( 𝜑 → ( ( 𝜑 → 𝜑 ) → 𝜑 ) )

🟢️ Paso 3: mpd
wff 𝜑
wff ( 𝜑 → 𝜑 )
wff 𝜑
⊢ ( 𝜑 → ( 𝜑 → 𝜑 ) )
⊢ ( 𝜑 → ( ( 𝜑 → 𝜑 ) → 𝜑 ) )
───────────────────────────
⊢ ( 𝜑 → 𝜑 )
✅️ Prueba correcta

2025-01-15

ax-3

Es el momento de implementar el axioma 3:

Para ello tengo primero implementar wn

OK... ya tengo el axioma implementado

⊢ ( ( ¬𝜑 → ¬𝜓 ) → ( 𝜓 → 𝜑 ) )

con4

Este teorema es en realidad un alias para el axioma 3

  • Hipotesis:
MM> show statement con4 /full
  wph $f wff ph $.
  wps $f wff ps $.
  • Demostracion:
MM> show proof con4 /all /lemmon
1 wph            $f wff ph
2 wps            $f wff ps
3 1,2 ax-3       $a |- ( ( -. ph -> -. ps ) -> ( ps -> ph ) )
MM>

syl

  • syl

  • Hipótesis:

  wph $f wff ph $.
  wps $f wff ps $.
  wch $f wff ch $.
  syl.1 $e |- ( ph -> ps ) $.
  syl.2 $e |- ( ps -> ch ) $
  • Demostración:
MM> show proof syl /all /lemmon
 1 wph           $f wff ph
 2 wps           $f wff ps
 3 wch           $f wff ch
 4 syl.1         $e |- ( ph -> ps )
 5 wps           $f wff ps
 6 wch           $f wff ch
 7 5,6 wi        $a wff ( ps -> ch )
 8 wph           $f wff ph
 9 syl.2         $e |- ( ps -> ch )
10 7,8,9 a1i     $p |- ( ph -> ( ps -> ch ) )
11 1,2,3,4,10 mpd  $p |- ( ph -> ch )

cond4

MM> show statement con4d /full
  wph $f wff ph $.
  wps $f wff ps $.
  wch $f wff ch $.
  con4d.1 $e |- ( ph -> ( -. ps -> -. ch ) ) $.
  • Demostración:
MM> show proof con4d /all /lemmon
 1 wph           $f wff ph
 2 wps           $f wff ps
 3 2 wn          $a wff -. ps
 4 wch           $f wff ch
 5 4 wn          $a wff -. ch
 6 3,5 wi        $a wff ( -. ps -> -. ch )
 7 wch           $f wff ch
 8 wps           $f wff ps
 9 7,8 wi        $a wff ( ch -> ps )
10 con4d.1       $e |- ( ph -> ( -. ps -> -. ch ) )
11 wps           $f wff ps
12 wch           $f wff ch
13 11,12 con4    $p |- ( ( -. ps -> -. ch ) -> ( ch -> ps ) )
14 1,6,9,10,13 syl  $p |- ( ph -> ( ch -> ps ) )

a1d

  • Link: a1d

  • Hipótesis:

  wph $f wff ph $.
  wps $f wff ps $.
  wch $f wff ch $.
  a1d.1 $e |- ( ph -> ps ) $.
  • Demostración:
MM> show proof a1d /all /lemmon
 1 wph           $f wff ph
 2 wps           $f wff ps
 3 wch           $f wff ch
 4 wps           $f wff ps
 5 3,4 wi        $a wff ( ch -> ps )
 6 a1d.1         $e |- ( ph -> ps )
 7 wps           $f wff ps
 8 wch           $f wff ch
 9 7,8 ax-1      $a |- ( ps -> ( ch -> ps ) )
10 1,2,5,6,9 syl  $p |- ( ph -> ( ch -> ps ) )

2025-01-16

Metamath.py lo he metido en el directorio metamath

obijuan@JANEL:~/Develop/Learn-logic$ /bin/python3 /home/obijuan/Develop/Learn-logic/Metamath/metamath.py


───────────────┤ TEOREMA a1d ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → 𝜓 )
───────────
⊢ ( 𝜑 → ( 𝜒 → 𝜓 ) )

🟢️ Paso 1: ax_1
wff 𝜓
wff 𝜒
─────
⊢ ( 𝜓 → ( 𝜒 → 𝜓 ) )

🟢️ Paso 2: syl
wff 𝜑
wff 𝜓
wff ( 𝜒 → 𝜓 )
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜓 → ( 𝜒 → 𝜓 ) )
───────────────────
⊢ ( 𝜑 → ( 𝜒 → 𝜓 ) )
✅️ Prueba correcta

obijuan@JANEL:~/Develop/Learn-logic$

Ahora voy a refactorizar los axiomas para que comporten igual que los teoremas, y así unificarlo todo ¡Listo! Faltaría por unificar el ax-mp... lo voy a pensar...
¡Listo! el ax-mp ya está unificado con todos los demás!!

obijuan@JANEL:~/Develop/Learn-logic$ /bin/python3 /home/obijuan/Develop/Learn-logic/Metamath/metamath.py


───────────────┤ TEOREMA ax-mp ├────────────────
wff 𝜑
wff 𝜓
⊢ 𝜑
⊢ ( 𝜑 → 𝜓 )
───────────
⊢ 𝜓
✅️ Prueba correcta

Metamath2

Ahora que ya tengo claro el funcionamiento, y soy capaz de crear las pruebas mediante funciones python... estoy pensando que igual empiezo una nueva versión desde cero (metamath2) que utilice la pila... y hacerla de esa manera similar al metamath original. Así las pruebas se podrían importar directamente de la base de datos de metamath...

Creo que así puedo estudiar los teoremas con mayor velocidad. A partir de la versión de pila también puedo crear las funciones de la versión anterior, que utilizan parámetros... Sobre la marcha lo voy viendo

Lo primero que necesito es una pila en python. Y aunque seguro que ya hay muchos modulos que la implementan, lo voy a hacer directamente a pelo usando una lista...

2025-01-18

Ya tengo el nucleo de metamath2 listo! Está de puta madre porque puedo meter la misma demostración que en metamath, pero en el formato json de metamath2 (Sólo hay que hacer un cambio de nombre de las hipótesis de teoremas, pero es mínima)

El último teorema implementado en metamath2.py es a1d:

───────────────┤ TEOREMA a1d ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → 𝜓 )
───────────────────
⊢ ( 𝜑 → ( 𝜒 → 𝜓 ) )

🟢️ Paso 1: wph
wff 𝜑

🟢️ Paso 2: wps
wff 𝜓

🟢️ Paso 3: wch
wff 𝜒

🟢️ Paso 4: wps
wff 𝜓

🟢️ Paso 5: wi
wff 𝜒
wff 𝜓
─────────────
wff ( 𝜒 → 𝜓 )

🟢️ Paso 6: hyp.1
⊢ ( 𝜑 → 𝜓 )

🟢️ Paso 7: wps
wff 𝜓

🟢️ Paso 8: wch
wff 𝜒

🟢️ Paso 9: ax-1
wff 𝜓
wff 𝜒
───────────────────
⊢ ( 𝜓 → ( 𝜒 → 𝜓 ) )

🟢️ Paso 10: syl
wff 𝜑
wff 𝜓
wff ( 𝜒 → 𝜓 )
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜓 → ( 𝜒 → 𝜓 ) )
───────────────────
⊢ ( 𝜑 → ( 𝜒 → 𝜓 ) )
✅️ Prueba correcta

Como vemos, salen todos los pasos... Tal vez demasiado.. Cada paso se corresponde con el paso real almacenado en el json. Para el caso de a1d esta es la estructura:

"a1d": {
  "hyp": ["wff 𝜑", "wff 𝜓", "wff 𝜒",
          "⊢ ( 𝜑 → 𝜓 )"],
  "conc": "⊢ ( 𝜑 → ( 𝜒 → 𝜓 ) )",
  "proof": ["wph", "wps", "wch", "wps", "wi", "hyp.1", "wps", "wch",
            "ax-1", "syl"]
}

Voy a intentar cambiar el kernel de metamath2 para que se puedan ver menos pasos... y así entender mejor las demostraciones

Listo... ya está refactorizado para eliminar la información de los pasos hipótesis, wi y wn:

───────────────┤ TEOREMA a1d ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → 𝜓 )
───────────────────
⊢ ( 𝜑 → ( 𝜒 → 𝜓 ) )

🟢️ Paso 9: ax-1
wff 𝜓
wff 𝜒
───────────────────
⊢ ( 𝜓 → ( 𝜒 → 𝜓 ) )

🟢️ Paso 10: syl
wff 𝜑
wff 𝜓
wff ( 𝜒 → 𝜓 )
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜓 → ( 𝜒 → 𝜓 ) )
───────────────────
⊢ ( 𝜑 → ( 𝜒 → 𝜓 ) )
✅️ Prueba correcta

Tal vez tenga que renumerar los pasos, para indicar los mostrados y no los pasos reales (de la demostracion tan detallada...)

Listo!!

───────────────┤ TEOREMA a1d ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → 𝜓 )
───────────────────
⊢ ( 𝜑 → ( 𝜒 → 𝜓 ) )

🟢️ Paso 1: ax-1
wff 𝜓
wff 𝜒
───────────────────
⊢ ( 𝜓 → ( 𝜒 → 𝜓 ) )

🟢️ Paso 2: syl
wff 𝜑
wff 𝜓
wff ( 𝜒 → 𝜓 )
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜓 → ( 𝜒 → 𝜓 ) )
───────────────────
⊢ ( 𝜑 → ( 𝜒 → 𝜓 ) )
✅️ Prueba correcta

Ahora que ya lo tengo listo, y que las pruebas se entienden muy bien, es el momento de seguir avanzando con los teoremas

pm2.21d

───────────────┤ TEOREMA pm2.21d ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ¬𝜓 )
───────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )

🟢️ Paso 1: a1d
wff 𝜑
wff ¬𝜓
wff ¬𝜒
⊢ ( 𝜑 → ¬𝜓 )
─────────────────────
⊢ ( 𝜑 → ( ¬𝜒 → ¬𝜓 ) )

🟢️ Paso 2: con4d
wff 𝜑
wff 𝜒
wff 𝜓
⊢ ( 𝜑 → ( ¬𝜒 → ¬𝜓 ) )
─────────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
✅️ Prueba correcta

pm2.21

───────────────┤ TEOREMA pm2.21 ├────────────────
wff 𝜑
wff 𝜓
────────────────────
⊢ ( ¬𝜑 → ( 𝜑 → 𝜓 ) )

🟢️ Paso 1: id
wff ¬𝜑
─────────────
⊢ ( ¬𝜑 → ¬𝜑 )

🟢️ Paso 2: pm2.21d
wff ¬𝜑
wff 𝜑
wff 𝜓
⊢ ( ¬𝜑 → ¬𝜑 )
────────────────────
⊢ ( ¬𝜑 → ( 𝜑 → 𝜓 ) )
✅️ Prueba correcta

jarli

───────────────┤ TEOREMA jarli ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( ( 𝜑 → 𝜓 ) → 𝜒 )
───────────────────
⊢ ( ¬𝜑 → 𝜒 )

🟢️ Paso 1: pm2.21
wff 𝜑
wff 𝜓
────────────────────
⊢ ( ¬𝜑 → ( 𝜑 → 𝜓 ) )

🟢️ Paso 2: syl
wff ¬𝜑
wff ( 𝜑 → 𝜓 )
wff 𝜒
⊢ ( ¬𝜑 → ( 𝜑 → 𝜓 ) )
⊢ ( ( 𝜑 → 𝜓 ) → 𝜒 )
────────────────────
⊢ ( ¬𝜑 → 𝜒 )
✅️ Prueba correcta

mt4d

───────────────┤ TEOREMA mt4d ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜑 → ( ¬𝜒 → ¬𝜓 ) )
─────────────────────
⊢ ( 𝜑 → 𝜒 )

🟢️ Paso 1: con4d
wff 𝜑
wff 𝜒
wff 𝜓
⊢ ( 𝜑 → ( ¬𝜒 → ¬𝜓 ) )
─────────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )

🟢️ Paso 2: mpd
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
───────────────────
⊢ ( 𝜑 → 𝜒 )
✅️ Prueba correcta

sylcom

Este es el primer teorema que introduce la wff 𝜃. Ya está añadido en metamath2

───────────────┤ TEOREMA sylcom ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
⊢ ( 𝜓 → ( 𝜒 → 𝜃 ) )
───────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜃 ) )

🟢️ Paso 1: a2i
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜓 → ( 𝜒 → 𝜃 ) )
───────────────────────────
⊢ ( ( 𝜓 → 𝜒 ) → ( 𝜓 → 𝜃 ) )

🟢️ Paso 2: syl
wff 𝜑
wff ( 𝜓 → 𝜒 )
wff ( 𝜓 → 𝜃 )
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
⊢ ( ( 𝜓 → 𝜒 ) → ( 𝜓 → 𝜃 ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜃 ) )
✅️ Prueba correcta

pm2.18d

───────────────┤ TEOREMA pm2.18d ├────────────────
wff 𝜑
wff 𝜓
⊢ ( 𝜑 → ( ¬𝜓 → 𝜓 ) )
────────────────────
⊢ ( 𝜑 → 𝜓 )

🟢️ Paso 1: id
wff 𝜑
───────────
⊢ ( 𝜑 → 𝜑 )

🟢️ Paso 2: pm2.21
wff 𝜓
wff ¬𝜑
─────────────────────
⊢ ( ¬𝜓 → ( 𝜓 → ¬𝜑 ) )

🟢️ Paso 3: sylcom
wff 𝜑
wff ¬𝜓
wff 𝜓
wff ¬𝜑
⊢ ( 𝜑 → ( ¬𝜓 → 𝜓 ) )
⊢ ( ¬𝜓 → ( 𝜓 → ¬𝜑 ) )
─────────────────────
⊢ ( 𝜑 → ( ¬𝜓 → ¬𝜑 ) )

🟢️ Paso 4: mt4d
wff 𝜑
wff 𝜑
wff 𝜓
⊢ ( 𝜑 → 𝜑 )
⊢ ( 𝜑 → ( ¬𝜓 → ¬𝜑 ) )
─────────────────────
⊢ ( 𝜑 → 𝜓 )
✅️ Prueba correcta

pm2.18

───────────────┤ TEOREMA pm2.18 ├────────────────
wff 𝜑
────────────────────
⊢ ( ( ¬𝜑 → 𝜑 ) → 𝜑 )

🟢️ Paso 1: id
wff ( ¬𝜑 → 𝜑 )
─────────────────────────────
⊢ ( ( ¬𝜑 → 𝜑 ) → ( ¬𝜑 → 𝜑 ) )

🟢️ Paso 2: pm2.18d
wff ( ¬𝜑 → 𝜑 )
wff 𝜑
⊢ ( ( ¬𝜑 → 𝜑 ) → ( ¬𝜑 → 𝜑 ) )
─────────────────────────────
⊢ ( ( ¬𝜑 → 𝜑 ) → 𝜑 )
✅️ Prueba correcta

notnotr

───────────────┤ TEOREMA notnotr ├────────────────
wff 𝜑
─────────────
⊢ ( ¬¬𝜑 → 𝜑 )

🟢️ Paso 1: pm2.18
wff 𝜑
────────────────────
⊢ ( ( ¬𝜑 → 𝜑 ) → 𝜑 )

🟢️ Paso 2: jarli
wff ¬𝜑
wff 𝜑
wff 𝜑
⊢ ( ( ¬𝜑 → 𝜑 ) → 𝜑 )
────────────────────
⊢ ( ¬¬𝜑 → 𝜑 )
✅️ Prueba correcta

syl5com

───────────────┤ TEOREMA syl5com ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜒 → ( 𝜓 → 𝜃 ) )
───────────────────
⊢ ( 𝜑 → ( 𝜒 → 𝜃 ) )

🟢️ Paso 1: a1d
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → 𝜓 )
───────────────────
⊢ ( 𝜑 → ( 𝜒 → 𝜓 ) )

🟢️ Paso 2: sylcom
wff 𝜑
wff 𝜒
wff 𝜓
wff 𝜃
⊢ ( 𝜑 → ( 𝜒 → 𝜓 ) )
⊢ ( 𝜒 → ( 𝜓 → 𝜃 ) )
───────────────────
⊢ ( 𝜑 → ( 𝜒 → 𝜃 ) )
✅️ Prueba correcta

com12

───────────────┤ TEOREMA com12 ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
───────────────────
⊢ ( 𝜓 → ( 𝜑 → 𝜒 ) )

🟢️ Paso 1: id
wff 𝜓
───────────
⊢ ( 𝜓 → 𝜓 )

🟢️ Paso 2: syl5com
wff 𝜓
wff 𝜓
wff 𝜑
wff 𝜒
⊢ ( 𝜓 → 𝜓 )
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
───────────────────
⊢ ( 𝜓 → ( 𝜑 → 𝜒 ) )
✅️ Prueba correcta

syl5

───────────────┤ TEOREMA syl5 ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜒 → ( 𝜓 → 𝜃 ) )
───────────────────
⊢ ( 𝜒 → ( 𝜑 → 𝜃 ) )

🟢️ Paso 1: syl5com
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜒 → ( 𝜓 → 𝜃 ) )
───────────────────
⊢ ( 𝜑 → ( 𝜒 → 𝜃 ) )

🟢️ Paso 2: com12
wff 𝜑
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜒 → 𝜃 ) )
───────────────────
⊢ ( 𝜒 → ( 𝜑 → 𝜃 ) )
✅️ Prueba correcta

con2d

───────────────┤ TEOREMA con2d ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( 𝜓 → ¬𝜒 ) )
────────────────────
⊢ ( 𝜑 → ( 𝜒 → ¬𝜓 ) )

🟢️ Paso 1: notnotr
wff 𝜓
─────────────
⊢ ( ¬¬𝜓 → 𝜓 )

🟢️ Paso 2: syl5
wff ¬¬𝜓
wff 𝜓
wff 𝜑
wff ¬𝜒
⊢ ( ¬¬𝜓 → 𝜓 )
⊢ ( 𝜑 → ( 𝜓 → ¬𝜒 ) )
──────────────────────
⊢ ( 𝜑 → ( ¬¬𝜓 → ¬𝜒 ) )

🟢️ Paso 3: con4d
wff 𝜑
wff ¬𝜓
wff 𝜒
⊢ ( 𝜑 → ( ¬¬𝜓 → ¬𝜒 ) )
──────────────────────
⊢ ( 𝜑 → ( 𝜒 → ¬𝜓 ) )
✅️ Prueba correcta

mt2d

───────────────┤ TEOREMA mt2d ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → 𝜒 )
⊢ ( 𝜑 → ( 𝜓 → ¬𝜒 ) )
────────────────────
⊢ ( 𝜑 → ¬𝜓 )

🟢️ Paso 1: con2d
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( 𝜓 → ¬𝜒 ) )
────────────────────
⊢ ( 𝜑 → ( 𝜒 → ¬𝜓 ) )

🟢️ Paso 2: mpd
wff 𝜑
wff 𝜒
wff ¬𝜓
⊢ ( 𝜑 → 𝜒 )
⊢ ( 𝜑 → ( 𝜒 → ¬𝜓 ) )
────────────────────
⊢ ( 𝜑 → ¬𝜓 )
✅️ Prueba correcta

nsyl3

───────────────┤ TEOREMA nsyl3 ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ¬𝜓 )
⊢ ( 𝜒 → 𝜓 )
────────────
⊢ ( 𝜒 → ¬𝜑 )

🟢️ Paso 1: a1i
wff ( 𝜑 → ¬𝜓 )
wff 𝜒
⊢ ( 𝜑 → ¬𝜓 )
────────────────────
⊢ ( 𝜒 → ( 𝜑 → ¬𝜓 ) )

🟢️ Paso 2: mt2d
wff 𝜒
wff 𝜑
wff 𝜓
⊢ ( 𝜒 → 𝜓 )
⊢ ( 𝜒 → ( 𝜑 → ¬𝜓 ) )
────────────────────
⊢ ( 𝜒 → ¬𝜑 )
✅️ Prueba correcta

con2i

───────────────┤ TEOREMA con2i ├────────────────
wff 𝜑
wff 𝜓
⊢ ( 𝜑 → ¬𝜓 )
────────────
⊢ ( 𝜓 → ¬𝜑 )

🟢️ Paso 1: id
wff 𝜓
───────────
⊢ ( 𝜓 → 𝜓 )

🟢️ Paso 2: nsyl3
wff 𝜑
wff 𝜓
wff 𝜓
⊢ ( 𝜑 → ¬𝜓 )
⊢ ( 𝜓 → 𝜓 )
────────────
⊢ ( 𝜓 → ¬𝜑 )
✅️ Prueba correcta

notnot

───────────────┤ TEOREMA notnot ├────────────────
wff 𝜑
─────────────
⊢ ( 𝜑 → ¬¬𝜑 )

🟢️ Paso 1: id
wff ¬𝜑
─────────────
⊢ ( ¬𝜑 → ¬𝜑 )

🟢️ Paso 2: con2i
wff ¬𝜑
wff 𝜑
⊢ ( ¬𝜑 → ¬𝜑 )
─────────────
⊢ ( 𝜑 → ¬¬𝜑 )
✅️ Prueba correcta

Bicondicional

Llega el momento de estudiar la definición que introduce el bicondicional, e implementar sus teoremas derivados. Primero hay que implementar el teorema bijust0 (203) y todas sus dependencias. Estos teoremas no tienen el símbolo del bicondicional todavía, pero son necesarios para llegar a los axiomas

2025-01-19

imim2i

───────────────┤ TEOREMA imim2i ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → 𝜓 )
───────────────────────────
⊢ ( ( 𝜒 → 𝜑 ) → ( 𝜒 → 𝜓 ) )

🟢️ Paso 1: a1i
wff ( 𝜑 → 𝜓 )
wff 𝜒
⊢ ( 𝜑 → 𝜓 )
───────────────────
⊢ ( 𝜒 → ( 𝜑 → 𝜓 ) )

🟢️ Paso 2: a2i
wff 𝜒
wff 𝜑
wff 𝜓
⊢ ( 𝜒 → ( 𝜑 → 𝜓 ) )
───────────────────────────
⊢ ( ( 𝜒 → 𝜑 ) → ( 𝜒 → 𝜓 ) )
✅️ Prueba correcta

a2d

───────────────┤ TEOREMA a2d ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
───────────────────────────────────
⊢ ( 𝜑 → ( ( 𝜓 → 𝜒 ) → ( 𝜓 → 𝜃 ) ) )

🟢️ Paso 1: ax-2
wff 𝜓
wff 𝜒
wff 𝜃
───────────────────────────────────────────────────
⊢ ( ( 𝜓 → ( 𝜒 → 𝜃 ) ) → ( ( 𝜓 → 𝜒 ) → ( 𝜓 → 𝜃 ) ) )

🟢️ Paso 2: syl
wff 𝜑
wff ( 𝜓 → ( 𝜒 → 𝜃 ) )
wff ( ( 𝜓 → 𝜒 ) → ( 𝜓 → 𝜃 ) )
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
⊢ ( ( 𝜓 → ( 𝜒 → 𝜃 ) ) → ( ( 𝜓 → 𝜒 ) → ( 𝜓 → 𝜃 ) ) )
───────────────────────────────────────────────────
⊢ ( 𝜑 → ( ( 𝜓 → 𝜒 ) → ( 𝜓 → 𝜃 ) ) )
✅️ Prueba correcta

syl6

───────────────┤ TEOREMA syl6 ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
⊢ ( 𝜒 → 𝜃 )
───────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜃 ) )

🟢️ Paso 1: a1i
wff ( 𝜒 → 𝜃 )
wff 𝜓
⊢ ( 𝜒 → 𝜃 )
───────────────────
⊢ ( 𝜓 → ( 𝜒 → 𝜃 ) )

🟢️ Paso 2: sylcom
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
⊢ ( 𝜓 → ( 𝜒 → 𝜃 ) )
───────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜃 ) )
✅️ Prueba correcta

mpdd

───────────────┤ TEOREMA mpdd ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜃 ) )

🟢️ Paso 1: a2d
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
───────────────────────────────────
⊢ ( 𝜑 → ( ( 𝜓 → 𝜒 ) → ( 𝜓 → 𝜃 ) ) )

🟢️ Paso 2: mpd
wff 𝜑
wff ( 𝜓 → 𝜒 )
wff ( 𝜓 → 𝜃 )
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
⊢ ( 𝜑 → ( ( 𝜓 → 𝜒 ) → ( 𝜓 → 𝜃 ) ) )
───────────────────────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜃 ) )
✅️ Prueba correcta

syld

───────────────┤ TEOREMA syld ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
⊢ ( 𝜑 → ( 𝜒 → 𝜃 ) )
───────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜃 ) )

🟢️ Paso 1: a1d
wff 𝜑
wff ( 𝜒 → 𝜃 )
wff 𝜓
⊢ ( 𝜑 → ( 𝜒 → 𝜃 ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )

🟢️ Paso 2: mpdd
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜃 ) )
✅️ Prueba correcta

con4i

───────────────┤ TEOREMA con4i ├────────────────
wff 𝜑
wff 𝜓
⊢ ( ¬𝜑 → ¬𝜓 )
─────────────
⊢ ( 𝜓 → 𝜑 )

🟢️ Paso 1: con4
wff 𝜑
wff 𝜓
─────────────────────────────
⊢ ( ( ¬𝜑 → ¬𝜓 ) → ( 𝜓 → 𝜑 ) )

🟢️ Paso 2: ax-mp
wff ( ¬𝜑 → ¬𝜓 )
wff ( 𝜓 → 𝜑 )
⊢ ( ¬𝜑 → ¬𝜓 )
⊢ ( ( ¬𝜑 → ¬𝜓 ) → ( 𝜓 → 𝜑 ) )
─────────────────────────────
⊢ ( 𝜓 → 𝜑 )
✅️ Prueba correcta

pm2.18i

───────────────┤ TEOREMA pm2.18i ├────────────────
wff 𝜑
⊢ ( ¬𝜑 → 𝜑 )
────────────
⊢ 𝜑

🟢️ Paso 1: pm2.18
wff 𝜑
────────────────────
⊢ ( ( ¬𝜑 → 𝜑 ) → 𝜑 )

🟢️ Paso 2: ax-mp
wff ( ¬𝜑 → 𝜑 )
wff 𝜑
⊢ ( ¬𝜑 → 𝜑 )
⊢ ( ( ¬𝜑 → 𝜑 ) → 𝜑 )
────────────────────
⊢ 𝜑
✅️ Prueba correcta

nsyl

───────────────┤ TEOREMA nsyl ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ¬𝜓 )
⊢ ( 𝜒 → 𝜓 )
────────────
⊢ ( 𝜑 → ¬𝜒 )

🟢️ Paso 1: nsyl3
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ¬𝜓 )
⊢ ( 𝜒 → 𝜓 )
────────────
⊢ ( 𝜒 → ¬𝜑 )

🟢️ Paso 2: con2i
wff 𝜒
wff 𝜑
⊢ ( 𝜒 → ¬𝜑 )
────────────
⊢ ( 𝜑 → ¬𝜒 )
✅️ Prueba correcta

nsyl2

───────────────┤ TEOREMA nsyl2 ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ¬𝜓 )
⊢ ( ¬𝜒 → 𝜓 )
────────────
⊢ ( 𝜑 → 𝜒 )

🟢️ Paso 1: nsyl3
wff 𝜑
wff 𝜓
wff ¬𝜒
⊢ ( 𝜑 → ¬𝜓 )
⊢ ( ¬𝜒 → 𝜓 )
─────────────
⊢ ( ¬𝜒 → ¬𝜑 )

🟢️ Paso 2: con4i
wff 𝜒
wff 𝜑
⊢ ( ¬𝜒 → ¬𝜑 )
─────────────
⊢ ( 𝜑 → 𝜒 )
✅️ Prueba correcta

con1d

───────────────┤ TEOREMA con1d ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( ¬𝜓 → 𝜒 ) )
────────────────────
⊢ ( 𝜑 → ( ¬𝜒 → 𝜓 ) )

🟢️ Paso 1: notnot
wff 𝜒
─────────────
⊢ ( 𝜒 → ¬¬𝜒 )

🟢️ Paso 2: syl6
wff 𝜑
wff ¬𝜓
wff 𝜒
wff ¬¬𝜒
⊢ ( 𝜑 → ( ¬𝜓 → 𝜒 ) )
⊢ ( 𝜒 → ¬¬𝜒 )
──────────────────────
⊢ ( 𝜑 → ( ¬𝜓 → ¬¬𝜒 ) )

🟢️ Paso 3: con4d
wff 𝜑
wff 𝜓
wff ¬𝜒
⊢ ( 𝜑 → ( ¬𝜓 → ¬¬𝜒 ) )
──────────────────────
⊢ ( 𝜑 → ( ¬𝜒 → 𝜓 ) )
✅️ Prueba correcta

con1i

───────────────┤ TEOREMA con1i ├────────────────
wff 𝜑
wff 𝜓
⊢ ( ¬𝜑 → 𝜓 )
────────────
⊢ ( ¬𝜓 → 𝜑 )

🟢️ Paso 1: id
wff ¬𝜓
─────────────
⊢ ( ¬𝜓 → ¬𝜓 )

🟢️ Paso 2: nsyl2
wff ¬𝜓
wff 𝜓
wff 𝜑
⊢ ( ¬𝜓 → ¬𝜓 )
⊢ ( ¬𝜑 → 𝜓 )
─────────────
⊢ ( ¬𝜓 → 𝜑 )
✅️ Prueba correcta

con3i

───────────────┤ TEOREMA con3i ├────────────────
wff 𝜑
wff 𝜓
⊢ ( 𝜑 → 𝜓 )
─────────────
⊢ ( ¬𝜓 → ¬𝜑 )

🟢️ Paso 1: id
wff ¬𝜓
─────────────
⊢ ( ¬𝜓 → ¬𝜓 )

🟢️ Paso 2: nsyl
wff ¬𝜓
wff 𝜓
wff 𝜑
⊢ ( ¬𝜓 → ¬𝜓 )
⊢ ( 𝜑 → 𝜓 )
─────────────
⊢ ( ¬𝜓 → ¬𝜑 )
✅️ Prueba correcta

nsyl4

He tenido que ampliar obijuan.mm. Estos son los comandos a poner para decodificar los nuevos teoremas:

save proof idALT /normal

read obijuan.mm
save proof * /normal
write source obijuan.mm
exit
───────────────┤ TEOREMA nsyl4 ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → 𝜓 )
⊢ ( ¬𝜑 → 𝜒 )
────────────
⊢ ( ¬𝜒 → 𝜓 )

🟢️ Paso 1: con1i
wff 𝜑
wff 𝜒
⊢ ( ¬𝜑 → 𝜒 )
────────────
⊢ ( ¬𝜒 → 𝜑 )

🟢️ Paso 2: syl
wff ¬𝜒
wff 𝜑
wff 𝜓
⊢ ( ¬𝜒 → 𝜑 )
⊢ ( 𝜑 → 𝜓 )
────────────
⊢ ( ¬𝜒 → 𝜓 )
✅️ Prueba correcta

pm2.61d

───────────────┤ TEOREMA pm2.61d ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
⊢ ( 𝜑 → ( ¬𝜓 → 𝜒 ) )
────────────────────
⊢ ( 𝜑 → 𝜒 )

🟢️ Paso 1: con1d
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( ¬𝜓 → 𝜒 ) )
────────────────────
⊢ ( 𝜑 → ( ¬𝜒 → 𝜓 ) )

🟢️ Paso 2: syld
wff 𝜑
wff ¬𝜒
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( ¬𝜒 → 𝜓 ) )
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
────────────────────
⊢ ( 𝜑 → ( ¬𝜒 → 𝜒 ) )

🟢️ Paso 3: pm2.18d
wff 𝜑
wff 𝜒
⊢ ( 𝜑 → ( ¬𝜒 → 𝜒 ) )
────────────────────
⊢ ( 𝜑 → 𝜒 )
✅️ Prueba correcta

pm2.61d1

───────────────┤ TEOREMA pm2.61d1 ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
⊢ ( ¬𝜓 → 𝜒 )
───────────────────
⊢ ( 𝜑 → 𝜒 )

🟢️ Paso 1: a1i
wff ( ¬𝜓 → 𝜒 )
wff 𝜑
⊢ ( ¬𝜓 → 𝜒 )
────────────────────
⊢ ( 𝜑 → ( ¬𝜓 → 𝜒 ) )

🟢️ Paso 2: pm2.61d
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
⊢ ( 𝜑 → ( ¬𝜓 → 𝜒 ) )
────────────────────
⊢ ( 𝜑 → 𝜒 )
✅️ Prueba correcta

pm2.61i

───────────────┤ TEOREMA pm2.61i ├────────────────
wff 𝜑
wff 𝜓
⊢ ( 𝜑 → 𝜓 )
⊢ ( ¬𝜑 → 𝜓 )
────────────
⊢ 𝜓

🟢️ Paso 1: nsyl4
wff 𝜑
wff 𝜓
wff 𝜓
⊢ ( 𝜑 → 𝜓 )
⊢ ( ¬𝜑 → 𝜓 )
────────────
⊢ ( ¬𝜓 → 𝜓 )

🟢️ Paso 2: pm2.18i
wff 𝜓
⊢ ( ¬𝜓 → 𝜓 )
────────────
⊢ 𝜓
✅️ Prueba correcta

ja

  • (186) ja
───────────────┤ TEOREMA ja ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( ¬𝜑 → 𝜒 )
⊢ ( 𝜓 → 𝜒 )
───────────────────
⊢ ( ( 𝜑 → 𝜓 ) → 𝜒 )

🟢️ Paso 1: imim2i
wff 𝜓
wff 𝜒
wff 𝜑
⊢ ( 𝜓 → 𝜒 )
───────────────────────────
⊢ ( ( 𝜑 → 𝜓 ) → ( 𝜑 → 𝜒 ) )

🟢️ Paso 2: pm2.61d1
wff ( 𝜑 → 𝜓 )
wff 𝜑
wff 𝜒
⊢ ( ( 𝜑 → 𝜓 ) → ( 𝜑 → 𝜒 ) )
⊢ ( ¬𝜑 → 𝜒 )
───────────────────────────
⊢ ( ( 𝜑 → 𝜓 ) → 𝜒 )
✅️ Prueba correcta

pm2.65i

───────────────┤ TEOREMA pm2.65i ├────────────────
wff 𝜑
wff 𝜓
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜑 → ¬𝜓 )
────────────
⊢ ¬𝜑

🟢️ Paso 1: con2i
wff 𝜑
wff 𝜓
⊢ ( 𝜑 → ¬𝜓 )
────────────
⊢ ( 𝜓 → ¬𝜑 )

🟢️ Paso 2: con3i
wff 𝜑
wff 𝜓
⊢ ( 𝜑 → 𝜓 )
─────────────
⊢ ( ¬𝜓 → ¬𝜑 )

🟢️ Paso 3: pm2.61i
wff 𝜓
wff ¬𝜑
⊢ ( 𝜓 → ¬𝜑 )
⊢ ( ¬𝜓 → ¬𝜑 )
─────────────
⊢ ¬𝜑
✅️ Prueba correcta

mt2

───────────────┤ TEOREMA mt2 ├────────────────
wff 𝜑
wff 𝜓
⊢ 𝜓
⊢ ( 𝜑 → ¬𝜓 )
────────────
⊢ ¬𝜑

🟢️ Paso 1: a1i
wff 𝜓
wff 𝜑
⊢ 𝜓
───────────
⊢ ( 𝜑 → 𝜓 )

🟢️ Paso 2: pm2.65i
wff 𝜑
wff 𝜓
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜑 → ¬𝜓 )
────────────
⊢ ¬𝜑
✅️ Prueba correcta

pm2.01

───────────────┤ TEOREMA pm2.01 ├────────────────
wff 𝜑
─────────────────────
⊢ ( ( 𝜑 → ¬𝜑 ) → ¬𝜑 )

🟢️ Paso 1: id
wff ¬𝜑
─────────────
⊢ ( ¬𝜑 → ¬𝜑 )

🟢️ Paso 2: id
wff ¬𝜑
─────────────
⊢ ( ¬𝜑 → ¬𝜑 )

🟢️ Paso 3: ja
wff 𝜑
wff ¬𝜑
wff ¬𝜑
⊢ ( ¬𝜑 → ¬𝜑 )
⊢ ( ¬𝜑 → ¬𝜑 )
─────────────────────
⊢ ( ( 𝜑 → ¬𝜑 ) → ¬𝜑 )
✅️ Prueba correcta

bijust0

  • (203) bijust0 (y todas sus dependencias!)
───────────────┤ TEOREMA bijust0 ├────────────────
wff 𝜑
─────────────────────────────
⊢ ¬( ( 𝜑 → 𝜑 ) → ¬( 𝜑 → 𝜑 ) )

🟢️ Paso 1: id
wff 𝜑
───────────
⊢ ( 𝜑 → 𝜑 )

🟢️ Paso 2: pm2.01
wff ( 𝜑 → 𝜑 )
─────────────────────────────────────────────
⊢ ( ( ( 𝜑 → 𝜑 ) → ¬( 𝜑 → 𝜑 ) ) → ¬( 𝜑 → 𝜑 ) )

🟢️ Paso 3: mt2
wff ( ( 𝜑 → 𝜑 ) → ¬( 𝜑 → 𝜑 ) )
wff ( 𝜑 → 𝜑 )
⊢ ( 𝜑 → 𝜑 )
⊢ ( ( ( 𝜑 → 𝜑 ) → ¬( 𝜑 → 𝜑 ) ) → ¬( 𝜑 → 𝜑 ) )
─────────────────────────────────────────────
⊢ ¬( ( 𝜑 → 𝜑 ) → ¬( 𝜑 → 𝜑 ) )
✅️ Prueba correcta

bijust

───────────────┤ TEOREMA bijust ├────────────────
wff 𝜑
wff 𝜓
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
⊢ ¬( ( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) → ¬( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) )

🟢️ Paso 1: bijust0
wff ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) )
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
⊢ ¬( ( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) → ¬( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) )
✅️ Prueba correcta

Bicondicional ↔

La definición que se utiliza para el bicondicional es ¬ ((𝜑 → 𝜓) → ¬ (𝜓 → 𝜑)). Es decir, que la fórmula (𝜑 ↔ 𝜓) es equivalente a la indicada.

Voy a hacer las tablas de verdad

𝜑 𝜓 (𝜑 ↔ 𝜓)
0 0 1
0 1 0
1 0 0
1 1 1
𝜑 𝜓 (𝜑 → 𝜓) (𝜓 → 𝜑) ¬ (𝜓 → 𝜑) ((𝜑 → 𝜓) → ¬ (𝜓 → 𝜑)) ¬ ((𝜑 → 𝜓) → ¬ (𝜓 → 𝜑))
0 0 1 1 0 0 1
0 1 1 0 1 1 0
1 0 0 1 0 1 0
1 1 1 1 0 0 1

Efectivamente comprobamos que son equivalentes

df-bi

La definición utilizada para el bicondicional es este teorema:

⊢ ¬ (((𝜑 ↔ 𝜓) → ¬ ((𝜑 → 𝜓) → ¬ (𝜓 → 𝜑))) → ¬ (¬ ((𝜑 → 𝜓) → ¬ (𝜓 → 𝜑)) → (𝜑 ↔ 𝜓)))

Si en esta fórmula sustituimos (𝜑 ↔ 𝜓) por su definición ¬ ((𝜑 → 𝜓) → ¬ (𝜓 → 𝜑)) lo que obtenemos es:

⊢ ¬ ((¬ ((𝜑 → 𝜓) → ¬ (𝜓 → 𝜑)) → ¬ ((𝜑 → 𝜓) → ¬ (𝜓 → 𝜑))) → ¬ (¬ ((𝜑 → 𝜓) → ¬ (𝜓 → 𝜑)) → ¬ ((𝜑 → 𝜓) → ¬ (𝜓 → 𝜑))))

Que es exactamente el teorema bijust, que ya está demostrado

 ⊢ ¬ ((¬ ((𝜑 → 𝜓) → ¬ (𝜓 → 𝜑)) → ¬ ((𝜑 → 𝜓) → ¬ (𝜓 → 𝜑))) → ¬ (¬ ((𝜑 → 𝜓) → ¬ (𝜓 → 𝜑)) → ¬ ((𝜑 → 𝜓) → ¬ (𝜓 → 𝜑))))

Esta definición hay que implementarla como un axioma

Primero implementamos wb:

───────────────┤ TEOREMA wb ├────────────────
wff 𝜑
wff 𝜓
─────────────
wff ( 𝜑 ↔ 𝜓 )
✅️ Prueba correcta

Ya está la definición implementada:

───────────────┤ TEOREMA df-bi ├────────────────
wff 𝜑
wff 𝜓
─────────────────────────────────────────────────────────────────────────────────────────────────
⊢ ¬( ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) → ¬( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) ) )

🟢️ Paso 1: ax-th
wff ¬( ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) → ¬( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) ) )
───────────────────────────────────────────────────────────────────────────────────────────────────
⊢ ¬( ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) → ¬( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) ) )
✅️ Prueba correcta
-----------------------

2025-01-20

com3d

───────────────┤ TEOREMA con3d ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
─────────────────────
⊢ ( 𝜑 → ( ¬𝜒 → ¬𝜓 ) )

🟢️ Paso 1: notnotr
wff 𝜓
─────────────
⊢ ( ¬¬𝜓 → 𝜓 )

🟢️ Paso 2: syl5
wff ¬¬𝜓
wff 𝜓
wff 𝜑
wff 𝜒
⊢ ( ¬¬𝜓 → 𝜓 )
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
─────────────────────
⊢ ( 𝜑 → ( ¬¬𝜓 → 𝜒 ) )

🟢️ Paso 3: con1d
wff 𝜑
wff ¬𝜓
wff 𝜒
⊢ ( 𝜑 → ( ¬¬𝜓 → 𝜒 ) )
─────────────────────
⊢ ( 𝜑 → ( ¬𝜒 → ¬𝜓 ) )
✅️ Prueba correcta
-----------------------

con3rr3

───────────────┤ TEOREMA con3rr3 ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
─────────────────────
⊢ ( ¬𝜒 → ( 𝜑 → ¬𝜓 ) )

🟢️ Paso 1: con3d
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
─────────────────────
⊢ ( 𝜑 → ( ¬𝜒 → ¬𝜓 ) )

🟢️ Paso 2: com12
wff 𝜑
wff ¬𝜒
wff ¬𝜓
⊢ ( 𝜑 → ( ¬𝜒 → ¬𝜓 ) )
─────────────────────
⊢ ( ¬𝜒 → ( 𝜑 → ¬𝜓 ) )
✅️ Prueba correcta
-----------------------

impi

───────────────┤ TEOREMA impi ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
─────────────────────
⊢ ( ¬( 𝜑 → ¬𝜓 ) → 𝜒 )

🟢️ Paso 1: con3rr3
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
─────────────────────
⊢ ( ¬𝜒 → ( 𝜑 → ¬𝜓 ) )

🟢️ Paso 2: con1i
wff 𝜒
wff ( 𝜑 → ¬𝜓 )
⊢ ( ¬𝜒 → ( 𝜑 → ¬𝜓 ) )
─────────────────────
⊢ ( ¬( 𝜑 → ¬𝜓 ) → 𝜒 )
✅️ Prueba correcta
-----------------------

pm2.27

───────────────┤ TEOREMA pm2.27 ├────────────────
wff 𝜑
wff 𝜓
───────────────────────────
⊢ ( 𝜑 → ( ( 𝜑 → 𝜓 ) → 𝜓 ) )

🟢️ Paso 1: id
wff ( 𝜑 → 𝜓 )
───────────────────────────
⊢ ( ( 𝜑 → 𝜓 ) → ( 𝜑 → 𝜓 ) )

🟢️ Paso 2: com12
wff ( 𝜑 → 𝜓 )
wff 𝜑
wff 𝜓
⊢ ( ( 𝜑 → 𝜓 ) → ( 𝜑 → 𝜓 ) )
───────────────────────────
⊢ ( 𝜑 → ( ( 𝜑 → 𝜓 ) → 𝜓 ) )
✅️ Prueba correcta

pm3.2im

───────────────┤ TEOREMA pm3.2im ├────────────────
wff 𝜑
wff 𝜓
─────────────────────────────
⊢ ( 𝜑 → ( 𝜓 → ¬( 𝜑 → ¬𝜓 ) ) )

🟢️ Paso 1: pm2.27
wff 𝜑
wff ¬𝜓
─────────────────────────────
⊢ ( 𝜑 → ( ( 𝜑 → ¬𝜓 ) → ¬𝜓 ) )

🟢️ Paso 2: con2d
wff 𝜑
wff ( 𝜑 → ¬𝜓 )
wff 𝜓
⊢ ( 𝜑 → ( ( 𝜑 → ¬𝜓 ) → ¬𝜓 ) )
─────────────────────────────
⊢ ( 𝜑 → ( 𝜓 → ¬( 𝜑 → ¬𝜓 ) ) )
✅️ Prueba correcta

expi

───────────────┤ TEOREMA expi ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( ¬( 𝜑 → ¬𝜓 ) → 𝜒 )
─────────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )

🟢️ Paso 1: pm3.2im
wff 𝜑
wff 𝜓
─────────────────────────────
⊢ ( 𝜑 → ( 𝜓 → ¬( 𝜑 → ¬𝜓 ) ) )

🟢️ Paso 2: syl6
wff 𝜑
wff 𝜓
wff ¬( 𝜑 → ¬𝜓 )
wff 𝜒
⊢ ( 𝜑 → ( 𝜓 → ¬( 𝜑 → ¬𝜓 ) ) )
⊢ ( ¬( 𝜑 → ¬𝜓 ) → 𝜒 )
─────────────────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
✅️ Prueba correcta

idd

───────────────┤ TEOREMA idd ├────────────────
wff 𝜑
wff 𝜓
───────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜓 ) )

🟢️ Paso 1: id
wff 𝜓
───────────
⊢ ( 𝜓 → 𝜓 )

🟢️ Paso 2: a1i
wff ( 𝜓 → 𝜓 )
wff 𝜑
⊢ ( 𝜓 → 𝜓 )
───────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜓 ) )
✅️ Prueba correcta

simprim

───────────────┤ TEOREMA simprim ├────────────────
wff 𝜑
wff 𝜓
─────────────────────
⊢ ( ¬( 𝜑 → ¬𝜓 ) → 𝜓 )

🟢️ Paso 1: idd
wff 𝜑
wff 𝜓
───────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜓 ) )

🟢️ Paso 2: impi
wff 𝜑
wff 𝜓
wff 𝜓
⊢ ( 𝜑 → ( 𝜓 → 𝜓 ) )
─────────────────────
⊢ ( ¬( 𝜑 → ¬𝜓 ) → 𝜓 )
✅️ Prueba correcta

impbi

───────────────┤ TEOREMA impbi ├────────────────
wff 𝜑
wff 𝜓
───────────────────────────────────────────
⊢ ( ( 𝜑 → 𝜓 ) → ( ( 𝜓 → 𝜑 ) → ( 𝜑 ↔ 𝜓 ) ) )

🟢️ Paso 1: df-bi
wff 𝜑
wff 𝜓
─────────────────────────────────────────────────────────────────────────────────────────────────
⊢ ¬( ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) → ¬( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) ) )

🟢️ Paso 2: simprim
wff ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) )
wff ( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) )
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
⊢ ( ¬( ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) → ¬( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) ) ) → ( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) ) )

🟢️ Paso 3: ax-mp
wff ¬( ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) → ¬( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) ) )
wff ( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) )
⊢ ¬( ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) → ¬( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) ) )
⊢ ( ¬( ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) → ¬( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) ) ) → ( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) ) )
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
⊢ ( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) )

🟢️ Paso 4: expi
wff ( 𝜑 → 𝜓 )
wff ( 𝜓 → 𝜑 )
wff ( 𝜑 ↔ 𝜓 )
⊢ ( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) )
─────────────────────────────────────────────
⊢ ( ( 𝜑 → 𝜓 ) → ( ( 𝜓 → 𝜑 ) → ( 𝜑 ↔ 𝜓 ) ) )
✅️ Prueba correcta

impbii

───────────────┤ TEOREMA impbii ├────────────────
wff 𝜑
wff 𝜓
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜓 → 𝜑 )
───────────
⊢ ( 𝜑 ↔ 𝜓 )

🟢️ Paso 1: impbi
wff 𝜑
wff 𝜓
───────────────────────────────────────────
⊢ ( ( 𝜑 → 𝜓 ) → ( ( 𝜓 → 𝜑 ) → ( 𝜑 ↔ 𝜓 ) ) )

🟢️ Paso 2: mp2
wff ( 𝜑 → 𝜓 )
wff ( 𝜓 → 𝜑 )
wff ( 𝜑 ↔ 𝜓 )
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜓 → 𝜑 )
⊢ ( ( 𝜑 → 𝜓 ) → ( ( 𝜓 → 𝜑 ) → ( 𝜑 ↔ 𝜓 ) ) )
───────────────────────────────────────────
⊢ ( 𝜑 ↔ 𝜓 )
✅️ Prueba correcta

biid

───────────────┤ TEOREMA biid ├────────────────
wff 𝜑
───────────
⊢ ( 𝜑 ↔ 𝜑 )

🟢️ Paso 1: id
wff 𝜑
───────────
⊢ ( 𝜑 → 𝜑 )

🟢️ Paso 2: id
wff 𝜑
───────────
⊢ ( 𝜑 → 𝜑 )

🟢️ Paso 3: impbii
wff 𝜑
wff 𝜑
⊢ ( 𝜑 → 𝜑 )
⊢ ( 𝜑 → 𝜑 )
───────────
⊢ ( 𝜑 ↔ 𝜑 )
✅️ Prueba correcta

2th

───────────────┤ TEOREMA 2th ├────────────────
wff 𝜑
wff 𝜓
⊢ 𝜑
⊢ 𝜓
───────────
⊢ ( 𝜑 ↔ 𝜓 )

🟢️ Paso 1: a1i
wff 𝜓
wff 𝜑
⊢ 𝜓
───────────
⊢ ( 𝜑 → 𝜓 )

🟢️ Paso 2: a1i
wff 𝜑
wff 𝜓
⊢ 𝜑
───────────
⊢ ( 𝜓 → 𝜑 )

🟢️ Paso 3: impbii
wff 𝜑
wff 𝜓
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜓 → 𝜑 )
───────────
⊢ ( 𝜑 ↔ 𝜓 )
✅️ Prueba correcta

notnotb

───────────────┤ TEOREMA notnotb ├────────────────
wff 𝜑
─────────────
⊢ ( 𝜑 ↔ ¬¬𝜑 )

🟢️ Paso 1: notnot
wff 𝜑
─────────────
⊢ ( 𝜑 → ¬¬𝜑 )

🟢️ Paso 2: notnotr
wff 𝜑
─────────────
⊢ ( ¬¬𝜑 → 𝜑 )

🟢️ Paso 3: impbii
wff 𝜑
wff ¬¬𝜑
⊢ ( 𝜑 → ¬¬𝜑 )
⊢ ( ¬¬𝜑 → 𝜑 )
─────────────
⊢ ( 𝜑 ↔ ¬¬𝜑 )
✅️ Prueba correcta

con3

───────────────┤ TEOREMA con3 ├────────────────
wff 𝜑
wff 𝜓
─────────────────────────────
⊢ ( ( 𝜑 → 𝜓 ) → ( ¬𝜓 → ¬𝜑 ) )

🟢️ Paso 1: id
wff ( 𝜑 → 𝜓 )
───────────────────────────
⊢ ( ( 𝜑 → 𝜓 ) → ( 𝜑 → 𝜓 ) )

🟢️ Paso 2: con3d
wff ( 𝜑 → 𝜓 )
wff 𝜑
wff 𝜓
⊢ ( ( 𝜑 → 𝜓 ) → ( 𝜑 → 𝜓 ) )
─────────────────────────────
⊢ ( ( 𝜑 → 𝜓 ) → ( ¬𝜓 → ¬𝜑 ) )
✅️ Prueba correcta

con34b

───────────────┤ TEOREMA con34b ├────────────────
wff 𝜑
wff 𝜓
─────────────────────────────
⊢ ( ( 𝜑 → 𝜓 ) ↔ ( ¬𝜓 → ¬𝜑 ) )

🟢️ Paso 1: con3
wff 𝜑
wff 𝜓
─────────────────────────────
⊢ ( ( 𝜑 → 𝜓 ) → ( ¬𝜓 → ¬𝜑 ) )

🟢️ Paso 2: con4
wff 𝜓
wff 𝜑
─────────────────────────────
⊢ ( ( ¬𝜓 → ¬𝜑 ) → ( 𝜑 → 𝜓 ) )

🟢️ Paso 3: impbii
wff ( 𝜑 → 𝜓 )
wff ( ¬𝜓 → ¬𝜑 )
⊢ ( ( 𝜑 → 𝜓 ) → ( ¬𝜓 → ¬𝜑 ) )
⊢ ( ( ¬𝜓 → ¬𝜑 ) → ( 𝜑 → 𝜓 ) )
─────────────────────────────
⊢ ( ( 𝜑 → 𝜓 ) ↔ ( ¬𝜓 → ¬𝜑 ) )
✅️ Prueba correcta

Operador AND (∧)

Llega el momento de introducir el operador ∧ y sus teoremas derivados

Este operador se define como ¬( 𝜑 → ¬𝜓 ). La fórmula (𝜑 ∧ 𝜓) se sustituye por la indicada

wa

───────────────┤ TEOREMA wa ├────────────────
wff 𝜑
wff 𝜓
─────────────
wff ( 𝜑 ∧ 𝜓 )
✅️ Prueba correcta

df-an

───────────────┤ TEOREMA df-an ├────────────────
wff 𝜑
wff 𝜓
─────────────────────────────
⊢ ( ( 𝜑 ∧ 𝜓 ) ↔ ¬( 𝜑 → ¬𝜓 ) )

🟢️ Paso 1: ax-th
wff ( ( 𝜑 ∧ 𝜓 ) ↔ ¬( 𝜑 → ¬𝜓 ) )
───────────────────────────────
⊢ ( ( 𝜑 ∧ 𝜓 ) ↔ ¬( 𝜑 → ¬𝜓 ) )
✅️ Prueba correcta

syl2im

───────────────┤ TEOREMA syl2im ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
wff 𝜏
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜒 → 𝜃 )
⊢ ( 𝜓 → ( 𝜃 → 𝜏 ) )
───────────────────
⊢ ( 𝜑 → ( 𝜒 → 𝜏 ) )

🟢️ Paso 1: syl5
wff 𝜒
wff 𝜃
wff 𝜓
wff 𝜏
⊢ ( 𝜒 → 𝜃 )
⊢ ( 𝜓 → ( 𝜃 → 𝜏 ) )
⊢ ( 𝜓 → ( 𝜒 → 𝜏 ) )
───────────────────
⊢ ( 𝜓 → ( 𝜒 → 𝜏 ) )

🟢️ Paso 2: syl
wff 𝜑
wff 𝜓
wff ( 𝜒 → 𝜏 )
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜓 → ( 𝜒 → 𝜏 ) )
⊢ ( 𝜑 → ( 𝜒 → 𝜏 ) )
───────────────────
⊢ ( 𝜑 → ( 𝜒 → 𝜏 ) )
✅️ Prueba correcta

syl2imc

───────────────┤ TEOREMA syl2imc ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
wff 𝜏
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜒 → 𝜃 )
⊢ ( 𝜓 → ( 𝜃 → 𝜏 ) )
───────────────────
⊢ ( 𝜒 → ( 𝜑 → 𝜏 ) )

🟢️ Paso 1: syl2im
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
wff 𝜏
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜒 → 𝜃 )
⊢ ( 𝜓 → ( 𝜃 → 𝜏 ) )
⊢ ( 𝜑 → ( 𝜒 → 𝜏 ) )
───────────────────
⊢ ( 𝜑 → ( 𝜒 → 𝜏 ) )

🟢️ Paso 2: com12
wff 𝜑
wff 𝜒
wff 𝜏
⊢ ( 𝜑 → ( 𝜒 → 𝜏 ) )
⊢ ( 𝜒 → ( 𝜑 → 𝜏 ) )
───────────────────
⊢ ( 𝜒 → ( 𝜑 → 𝜏 ) )
✅️ Prueba correcta
-----------------------

pm2.43i

───────────────┤ TEOREMA pm2.43i ├────────────────
wff 𝜑
wff 𝜓
⊢ ( 𝜑 → ( 𝜑 → 𝜓 ) )
───────────────────
⊢ ( 𝜑 → 𝜓 )

🟢️ Paso 1: id
wff 𝜑
⊢ ( 𝜑 → 𝜑 )
───────────
⊢ ( 𝜑 → 𝜑 )

🟢️ Paso 2: mpd
wff 𝜑
wff 𝜑
wff 𝜓
⊢ ( 𝜑 → 𝜑 )
⊢ ( 𝜑 → ( 𝜑 → 𝜓 ) )
⊢ ( 𝜑 → 𝜓 )
───────────────────
⊢ ( 𝜑 → 𝜓 )
✅️ Prueba correcta

2025-01-21

imim3i

───────────────┤ TEOREMA imim3i ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
───────────────────────────────────────────
⊢ ( ( 𝜃 → 𝜑 ) → ( ( 𝜃 → 𝜓 ) → ( 𝜃 → 𝜒 ) ) )

🟢️ Paso 1: imim2i
wff 𝜑
wff ( 𝜓 → 𝜒 )
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
⊢ ( ( 𝜃 → 𝜑 ) → ( 𝜃 → ( 𝜓 → 𝜒 ) ) )
───────────────────────────────────
⊢ ( ( 𝜃 → 𝜑 ) → ( 𝜃 → ( 𝜓 → 𝜒 ) ) )

🟢️ Paso 2: a2d
wff ( 𝜃 → 𝜑 )
wff 𝜃
wff 𝜓
wff 𝜒
⊢ ( ( 𝜃 → 𝜑 ) → ( 𝜃 → ( 𝜓 → 𝜒 ) ) )
⊢ ( ( 𝜃 → 𝜑 ) → ( ( 𝜃 → 𝜓 ) → ( 𝜃 → 𝜒 ) ) )
───────────────────────────────────────────
⊢ ( ( 𝜃 → 𝜑 ) → ( ( 𝜃 → 𝜓 ) → ( 𝜃 → 𝜒 ) ) )
✅️ Prueba correcta

───────────────┤ TEOREMA imim2d ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
───────────────────────────────────
⊢ ( 𝜑 → ( ( 𝜃 → 𝜓 ) → ( 𝜃 → 𝜒 ) ) )

🟢️ Paso 1: a1d
wff 𝜑
wff ( 𝜓 → 𝜒 )
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
⊢ ( 𝜑 → ( 𝜃 → ( 𝜓 → 𝜒 ) ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜃 → ( 𝜓 → 𝜒 ) ) )

🟢️ Paso 2: a2d
wff 𝜑
wff 𝜃
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( 𝜃 → ( 𝜓 → 𝜒 ) ) )
⊢ ( 𝜑 → ( ( 𝜃 → 𝜓 ) → ( 𝜃 → 𝜒 ) ) )
───────────────────────────────────
⊢ ( 𝜑 → ( ( 𝜃 → 𝜓 ) → ( 𝜃 → 𝜒 ) ) )
✅️ Prueba correcta

imim2

───────────────┤ TEOREMA imim2 ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
───────────────────────────────────────────
⊢ ( ( 𝜑 → 𝜓 ) → ( ( 𝜒 → 𝜑 ) → ( 𝜒 → 𝜓 ) ) )

🟢️ Paso 1: id
wff ( 𝜑 → 𝜓 )
⊢ ( ( 𝜑 → 𝜓 ) → ( 𝜑 → 𝜓 ) )
───────────────────────────
⊢ ( ( 𝜑 → 𝜓 ) → ( 𝜑 → 𝜓 ) )

🟢️ Paso 2: imim2d
wff ( 𝜑 → 𝜓 )
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( ( 𝜑 → 𝜓 ) → ( 𝜑 → 𝜓 ) )
⊢ ( ( 𝜑 → 𝜓 ) → ( ( 𝜒 → 𝜑 ) → ( 𝜒 → 𝜓 ) ) )
───────────────────────────────────────────
⊢ ( ( 𝜑 → 𝜓 ) → ( ( 𝜒 → 𝜑 ) → ( 𝜒 → 𝜓 ) ) )
✅️ Prueba correcta

syl6c

───────────────┤ TEOREMA syl6c ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
wff 𝜏
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
⊢ ( 𝜑 → ( 𝜓 → 𝜃 ) )
⊢ ( 𝜒 → ( 𝜃 → 𝜏 ) )
───────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜏 ) )

🟢️ Paso 1: syl6
wff 𝜑
wff 𝜓
wff 𝜒
wff ( 𝜃 → 𝜏 )
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
⊢ ( 𝜒 → ( 𝜃 → 𝜏 ) )
⊢ ( 𝜑 → ( 𝜓 → ( 𝜃 → 𝜏 ) ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜓 → ( 𝜃 → 𝜏 ) ) )

🟢️ Paso 2: mpdd
wff 𝜑
wff 𝜓
wff 𝜃
wff 𝜏
⊢ ( 𝜑 → ( 𝜓 → 𝜃 ) )
⊢ ( 𝜑 → ( 𝜓 → ( 𝜃 → 𝜏 ) ) )
⊢ ( 𝜑 → ( 𝜓 → 𝜏 ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜏 ) )
✅️ Prueba correcta

syldd

───────────────┤ TEOREMA syldd ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
wff 𝜏
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
⊢ ( 𝜑 → ( 𝜓 → ( 𝜃 → 𝜏 ) ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜏 ) ) )

🟢️ Paso 1: imim2
wff 𝜃
wff 𝜏
wff 𝜒
⊢ ( ( 𝜃 → 𝜏 ) → ( ( 𝜒 → 𝜃 ) → ( 𝜒 → 𝜏 ) ) )
───────────────────────────────────────────
⊢ ( ( 𝜃 → 𝜏 ) → ( ( 𝜒 → 𝜃 ) → ( 𝜒 → 𝜏 ) ) )

🟢️ Paso 2: syl6c
wff 𝜑
wff 𝜓
wff ( 𝜃 → 𝜏 )
wff ( 𝜒 → 𝜃 )
wff ( 𝜒 → 𝜏 )
⊢ ( 𝜑 → ( 𝜓 → ( 𝜃 → 𝜏 ) ) )
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
⊢ ( ( 𝜃 → 𝜏 ) → ( ( 𝜒 → 𝜃 ) → ( 𝜒 → 𝜏 ) ) )
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜏 ) ) )
───────────────────────────────────────────
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜏 ) ) )
✅️ Prueba correcta

syl5d

───────────────┤ TEOREMA syl5d ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
wff 𝜏
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
⊢ ( 𝜑 → ( 𝜃 → ( 𝜒 → 𝜏 ) ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜃 → ( 𝜓 → 𝜏 ) ) )

🟢️ Paso 1: a1d
wff 𝜑
wff ( 𝜓 → 𝜒 )
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
⊢ ( 𝜑 → ( 𝜃 → ( 𝜓 → 𝜒 ) ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜃 → ( 𝜓 → 𝜒 ) ) )

🟢️ Paso 2: syldd
wff 𝜑
wff 𝜃
wff 𝜓
wff 𝜒
wff 𝜏
⊢ ( 𝜑 → ( 𝜃 → ( 𝜓 → 𝜒 ) ) )
⊢ ( 𝜑 → ( 𝜃 → ( 𝜒 → 𝜏 ) ) )
⊢ ( 𝜑 → ( 𝜃 → ( 𝜓 → 𝜏 ) ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜃 → ( 𝜓 → 𝜏 ) ) )
✅️ Prueba correcta

syl9

───────────────┤ TEOREMA syl9 ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
wff 𝜏
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
⊢ ( 𝜃 → ( 𝜒 → 𝜏 ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜃 → ( 𝜓 → 𝜏 ) ) )

🟢️ Paso 1: a1i
wff ( 𝜃 → ( 𝜒 → 𝜏 ) )
wff 𝜑
⊢ ( 𝜃 → ( 𝜒 → 𝜏 ) )
⊢ ( 𝜑 → ( 𝜃 → ( 𝜒 → 𝜏 ) ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜃 → ( 𝜒 → 𝜏 ) ) )

🟢️ Paso 2: syl5d
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
wff 𝜏
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
⊢ ( 𝜑 → ( 𝜃 → ( 𝜒 → 𝜏 ) ) )
⊢ ( 𝜑 → ( 𝜃 → ( 𝜓 → 𝜏 ) ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜃 → ( 𝜓 → 𝜏 ) ) )
✅️ Prueba correcta

com23

───────────────┤ TEOREMA com23 ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜒 → ( 𝜓 → 𝜃 ) ) )

🟢️ Paso 1: pm2.27
wff 𝜒
wff 𝜃
⊢ ( 𝜒 → ( ( 𝜒 → 𝜃 ) → 𝜃 ) )
───────────────────────────
⊢ ( 𝜒 → ( ( 𝜒 → 𝜃 ) → 𝜃 ) )

🟢️ Paso 2: syl9
wff 𝜑
wff 𝜓
wff ( 𝜒 → 𝜃 )
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
⊢ ( 𝜒 → ( ( 𝜒 → 𝜃 ) → 𝜃 ) )
⊢ ( 𝜑 → ( 𝜒 → ( 𝜓 → 𝜃 ) ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜒 → ( 𝜓 → 𝜃 ) ) )
✅️ Prueba correcta

pm2.86d

───────────────┤ TEOREMA pm2.86d ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( ( 𝜓 → 𝜒 ) → ( 𝜓 → 𝜃 ) ) )
───────────────────────────────────
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )

🟢️ Paso 1: ax-1
wff 𝜒
wff 𝜓
⊢ ( 𝜒 → ( 𝜓 → 𝜒 ) )
───────────────────
⊢ ( 𝜒 → ( 𝜓 → 𝜒 ) )

🟢️ Paso 2: syl5
wff 𝜒
wff ( 𝜓 → 𝜒 )
wff 𝜑
wff ( 𝜓 → 𝜃 )
⊢ ( 𝜒 → ( 𝜓 → 𝜒 ) )
⊢ ( 𝜑 → ( ( 𝜓 → 𝜒 ) → ( 𝜓 → 𝜃 ) ) )
⊢ ( 𝜑 → ( 𝜒 → ( 𝜓 → 𝜃 ) ) )
───────────────────────────────────
⊢ ( 𝜑 → ( 𝜒 → ( 𝜓 → 𝜃 ) ) )

🟢️ Paso 3: com23
wff 𝜑
wff 𝜒
wff 𝜓
wff 𝜃
⊢ ( 𝜑 → ( 𝜒 → ( 𝜓 → 𝜃 ) ) )
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
✅️ Prueba correcta

simplim

───────────────┤ TEOREMA simplim ├────────────────
wff 𝜑
wff 𝜓
────────────────────
⊢ ( ¬( 𝜑 → 𝜓 ) → 𝜑 )

🟢️ Paso 1: pm2.21
wff 𝜑
wff 𝜓
⊢ ( ¬𝜑 → ( 𝜑 → 𝜓 ) )
────────────────────
⊢ ( ¬𝜑 → ( 𝜑 → 𝜓 ) )

🟢️ Paso 2: con1i
wff 𝜑
wff ( 𝜑 → 𝜓 )
⊢ ( ¬𝜑 → ( 𝜑 → 𝜓 ) )
⊢ ( ¬( 𝜑 → 𝜓 ) → 𝜑 )
────────────────────
⊢ ( ¬( 𝜑 → 𝜓 ) → 𝜑 )
✅️ Prueba correcta

impbidd

───────────────┤ TEOREMA impbidd ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
⊢ ( 𝜑 → ( 𝜓 → ( 𝜃 → 𝜒 ) ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 ↔ 𝜃 ) ) )

🟢️ Paso 1: impbi
wff 𝜒
wff 𝜃
⊢ ( ( 𝜒 → 𝜃 ) → ( ( 𝜃 → 𝜒 ) → ( 𝜒 ↔ 𝜃 ) ) )
───────────────────────────────────────────
⊢ ( ( 𝜒 → 𝜃 ) → ( ( 𝜃 → 𝜒 ) → ( 𝜒 ↔ 𝜃 ) ) )

🟢️ Paso 2: syl6c
wff 𝜑
wff 𝜓
wff ( 𝜒 → 𝜃 )
wff ( 𝜃 → 𝜒 )
wff ( 𝜒 ↔ 𝜃 )
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
⊢ ( 𝜑 → ( 𝜓 → ( 𝜃 → 𝜒 ) ) )
⊢ ( ( 𝜒 → 𝜃 ) → ( ( 𝜃 → 𝜒 ) → ( 𝜒 ↔ 𝜃 ) ) )
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 ↔ 𝜃 ) ) )
───────────────────────────────────────────
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 ↔ 𝜃 ) ) )
✅️ Prueba correcta

impbid21d

───────────────┤ TEOREMA impbid21d ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜓 → ( 𝜒 → 𝜃 ) )
⊢ ( 𝜑 → ( 𝜃 → 𝜒 ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 ↔ 𝜃 ) ) )

🟢️ Paso 1: impbi
wff 𝜒
wff 𝜃
⊢ ( ( 𝜒 → 𝜃 ) → ( ( 𝜃 → 𝜒 ) → ( 𝜒 ↔ 𝜃 ) ) )
───────────────────────────────────────────
⊢ ( ( 𝜒 → 𝜃 ) → ( ( 𝜃 → 𝜒 ) → ( 𝜒 ↔ 𝜃 ) ) )

🟢️ Paso 2: syl2imc
wff 𝜓
wff ( 𝜒 → 𝜃 )
wff 𝜑
wff ( 𝜃 → 𝜒 )
wff ( 𝜒 ↔ 𝜃 )
⊢ ( 𝜓 → ( 𝜒 → 𝜃 ) )
⊢ ( 𝜑 → ( 𝜃 → 𝜒 ) )
⊢ ( ( 𝜒 → 𝜃 ) → ( ( 𝜃 → 𝜒 ) → ( 𝜒 ↔ 𝜃 ) ) )
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 ↔ 𝜃 ) ) )
───────────────────────────────────────────
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 ↔ 𝜃 ) ) )
✅️ Prueba correcta

impbid

───────────────┤ TEOREMA impbid ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
⊢ ( 𝜑 → ( 𝜒 → 𝜓 ) )
───────────────────
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )

🟢️ Paso 1: impbid21d
wff 𝜑
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
⊢ ( 𝜑 → ( 𝜒 → 𝜓 ) )
⊢ ( 𝜑 → ( 𝜑 → ( 𝜓 ↔ 𝜒 ) ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜑 → ( 𝜓 ↔ 𝜒 ) ) )

🟢️ Paso 2: pm2.43i
wff 𝜑
wff ( 𝜓 ↔ 𝜒 )
⊢ ( 𝜑 → ( 𝜑 → ( 𝜓 ↔ 𝜒 ) ) )
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
✅️ Prueba correcta
-----------------------

biimp

───────────────┤ TEOREMA biimp ├────────────────
wff 𝜑
wff 𝜓
───────────────────────────
⊢ ( ( 𝜑 ↔ 𝜓 ) → ( 𝜑 → 𝜓 ) )

🟢️ Paso 1: df-bi
wff 𝜑
wff 𝜓
⊢ ¬( ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) → ¬( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) ) )
─────────────────────────────────────────────────────────────────────────────────────────────────
⊢ ¬( ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) → ¬( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) ) )

🟢️ Paso 2: simplim
wff ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) )
wff ¬( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) )
⊢ ( ¬( ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) → ¬( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) ) ) → ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) )
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
⊢ ( ¬( ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) → ¬( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) ) ) → ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) )

🟢️ Paso 3: ax-mp
wff ¬( ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) → ¬( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) ) )
wff ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) )
⊢ ¬( ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) → ¬( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) ) )
⊢ ( ¬( ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) → ¬( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) ) ) → ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) )
⊢ ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) )
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
⊢ ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) )

🟢️ Paso 4: simplim
wff ( 𝜑 → 𝜓 )
wff ¬( 𝜓 → 𝜑 )
⊢ ( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 → 𝜓 ) )
─────────────────────────────────────────────
⊢ ( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 → 𝜓 ) )

🟢️ Paso 5: syl
wff ( 𝜑 ↔ 𝜓 )
wff ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) )
wff ( 𝜑 → 𝜓 )
⊢ ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) )
⊢ ( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 → 𝜓 ) )
⊢ ( ( 𝜑 ↔ 𝜓 ) → ( 𝜑 → 𝜓 ) )
─────────────────────────────────────────────
⊢ ( ( 𝜑 ↔ 𝜓 ) → ( 𝜑 → 𝜓 ) )
✅️ Prueba correcta

biimpi

───────────────┤ TEOREMA biimpi ├────────────────
wff 𝜑
wff 𝜓
⊢ ( 𝜑 ↔ 𝜓 )
───────────
⊢ ( 𝜑 → 𝜓 )

🟢️ Paso 1: biimp
wff 𝜑
wff 𝜓
───────────────────────────
⊢ ( ( 𝜑 ↔ 𝜓 ) → ( 𝜑 → 𝜓 ) )

🟢️ Paso 2: ax-mp
wff ( 𝜑 ↔ 𝜓 )
wff ( 𝜑 → 𝜓 )
⊢ ( 𝜑 ↔ 𝜓 )
⊢ ( ( 𝜑 ↔ 𝜓 ) → ( 𝜑 → 𝜓 ) )
───────────────────────────
⊢ ( 𝜑 → 𝜓 )
✅️ Prueba correcta

sylbi

───────────────┤ TEOREMA sylbi ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 ↔ 𝜓 )
⊢ ( 𝜓 → 𝜒 )
───────────
⊢ ( 𝜑 → 𝜒 )

🟢️ Paso 1: biimpi
wff 𝜑
wff 𝜓
⊢ ( 𝜑 ↔ 𝜓 )
───────────
⊢ ( 𝜑 → 𝜓 )

🟢️ Paso 2: syl
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜓 → 𝜒 )
───────────
⊢ ( 𝜑 → 𝜒 )
✅️ Prueba correcta

sylib

───────────────┤ TEOREMA sylib ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜓 ↔ 𝜒 )
───────────
⊢ ( 𝜑 → 𝜒 )

🟢️ Paso 1: biimpi
wff 𝜓
wff 𝜒
⊢ ( 𝜓 ↔ 𝜒 )
───────────
⊢ ( 𝜓 → 𝜒 )

🟢️ Paso 2: syl
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜓 → 𝜒 )
───────────
⊢ ( 𝜑 → 𝜒 )
✅️ Prueba correcta

sylbb

───────────────┤ TEOREMA sylbb ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 ↔ 𝜓 )
⊢ ( 𝜓 ↔ 𝜒 )
───────────
⊢ ( 𝜑 → 𝜒 )

🟢️ Paso 1: biimpi
wff 𝜓
wff 𝜒
⊢ ( 𝜓 ↔ 𝜒 )
───────────
⊢ ( 𝜓 → 𝜒 )

🟢️ Paso 2: sylbi
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 ↔ 𝜓 )
⊢ ( 𝜓 → 𝜒 )
───────────
⊢ ( 𝜑 → 𝜒 )
✅️ Prueba correcta

mto

───────────────┤ TEOREMA mto ├────────────────
wff 𝜑
wff 𝜓
⊢ ¬𝜓
⊢ ( 𝜑 → 𝜓 )
───────────
⊢ ¬𝜑

🟢️ Paso 1: a1i
wff ¬𝜓
wff 𝜑
⊢ ¬𝜓
────────────
⊢ ( 𝜑 → ¬𝜓 )

🟢️ Paso 2: pm2.65i
wff 𝜑
wff 𝜓
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜑 → ¬𝜓 )
────────────
⊢ ¬𝜑
✅️ Prueba correcta

pm2.21i

───────────────┤ TEOREMA pm2.21i ├────────────────
wff 𝜑
wff 𝜓
⊢ ¬𝜑
───────────
⊢ ( 𝜑 → 𝜓 )

🟢️ Paso 1: a1i
wff ¬𝜑
wff ¬𝜓
⊢ ¬𝜑
─────────────
⊢ ( ¬𝜓 → ¬𝜑 )

🟢️ Paso 2: con4i
wff 𝜓
wff 𝜑
⊢ ( ¬𝜓 → ¬𝜑 )
─────────────
⊢ ( 𝜑 → 𝜓 )
✅️ Prueba correcta

mt4

───────────────┤ TEOREMA mt4 ├────────────────
wff 𝜑
wff 𝜓
⊢ 𝜑
⊢ ( ¬𝜓 → ¬𝜑 )
─────────────
⊢ 𝜓

🟢️ Paso 1: con4i
wff 𝜓
wff 𝜑
⊢ ( ¬𝜓 → ¬𝜑 )
─────────────
⊢ ( 𝜑 → 𝜓 )

🟢️ Paso 2: ax-mp
wff 𝜑
wff 𝜓
⊢ 𝜑
⊢ ( 𝜑 → 𝜓 )
───────────
⊢ 𝜓
✅️ Prueba correcta

notnotri

───────────────┤ TEOREMA notnotri ├────────────────
wff 𝜑
⊢ ¬¬𝜑
─────
⊢ 𝜑

🟢️ Paso 1: pm2.21i
wff ¬𝜑
wff ¬¬¬𝜑
⊢ ¬¬𝜑
───────────────
⊢ ( ¬𝜑 → ¬¬¬𝜑 )

🟢️ Paso 2: mt4
wff ¬¬𝜑
wff 𝜑
⊢ ¬¬𝜑
⊢ ( ¬𝜑 → ¬¬¬𝜑 )
───────────────
⊢ 𝜑
✅️ Prueba correcta

mt3

───────────────┤ TEOREMA mt3 ├────────────────
wff 𝜑
wff 𝜓
⊢ ¬𝜓
⊢ ( ¬𝜑 → 𝜓 )
────────────
⊢ 𝜑

🟢️ Paso 1: mto
wff ¬𝜑
wff 𝜓
⊢ ¬𝜓
⊢ ( ¬𝜑 → 𝜓 )
────────────
⊢ ¬¬𝜑

🟢️ Paso 2: notnotri
wff 𝜑
⊢ ¬¬𝜑
─────
⊢ 𝜑
✅️ Prueba correcta

dfbi1

───────────────┤ TEOREMA dfbi1 ├────────────────
wff 𝜑
wff 𝜓
─────────────────────────────────────────────
⊢ ( ( 𝜑 ↔ 𝜓 ) ↔ ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) )

🟢️ Paso 1: df-bi
wff 𝜑
wff 𝜓
─────────────────────────────────────────────────────────────────────────────────────────────────
⊢ ¬( ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) → ¬( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) ) )

🟢️ Paso 2: impbi
wff ( 𝜑 ↔ 𝜓 )
wff ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) )
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
⊢ ( ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) → ( ( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) ) → ( ( 𝜑 ↔ 𝜓 ) ↔ ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) ) )

🟢️ Paso 3: con3rr3
wff ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) )
wff ( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) )
wff ( ( 𝜑 ↔ 𝜓 ) ↔ ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) )
⊢ ( ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) → ( ( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) ) → ( ( 𝜑 ↔ 𝜓 ) ↔ ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) ) )
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
⊢ ( ¬( ( 𝜑 ↔ 𝜓 ) ↔ ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) → ( ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) → ¬( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) ) ) )

🟢️ Paso 4: mt3
wff ( ( 𝜑 ↔ 𝜓 ) ↔ ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) )
wff ( ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) → ¬( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) ) )
⊢ ¬( ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) → ¬( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) ) )
⊢ ( ¬( ( 𝜑 ↔ 𝜓 ) ↔ ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) → ( ( ( 𝜑 ↔ 𝜓 ) → ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) ) → ¬( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜑 ↔ 𝜓 ) ) ) )
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
⊢ ( ( 𝜑 ↔ 𝜓 ) ↔ ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) )
✅️ Prueba correcta

biimpr

───────────────┤ TEOREMA biimpr ├────────────────
wff 𝜑
wff 𝜓
───────────────────────────
⊢ ( ( 𝜑 ↔ 𝜓 ) → ( 𝜓 → 𝜑 ) )

🟢️ Paso 1: dfbi1
wff 𝜑
wff 𝜓
─────────────────────────────────────────────
⊢ ( ( 𝜑 ↔ 𝜓 ) ↔ ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) )

🟢️ Paso 2: simprim
wff ( 𝜑 → 𝜓 )
wff ( 𝜓 → 𝜑 )
─────────────────────────────────────────────
⊢ ( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜓 → 𝜑 ) )

🟢️ Paso 3: sylbi
wff ( 𝜑 ↔ 𝜓 )
wff ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) )
wff ( 𝜓 → 𝜑 )
⊢ ( ( 𝜑 ↔ 𝜓 ) ↔ ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) )
⊢ ( ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) → ( 𝜓 → 𝜑 ) )
─────────────────────────────────────────────
⊢ ( ( 𝜑 ↔ 𝜓 ) → ( 𝜓 → 𝜑 ) )
✅️ Prueba correcta

bicom1

───────────────┤ TEOREMA bicom1 ├────────────────
wff 𝜑
wff 𝜓
───────────────────────────
⊢ ( ( 𝜑 ↔ 𝜓 ) → ( 𝜓 ↔ 𝜑 ) )

🟢️ Paso 1: biimpr
wff 𝜑
wff 𝜓
───────────────────────────
⊢ ( ( 𝜑 ↔ 𝜓 ) → ( 𝜓 → 𝜑 ) )

🟢️ Paso 2: biimp
wff 𝜑
wff 𝜓
───────────────────────────
⊢ ( ( 𝜑 ↔ 𝜓 ) → ( 𝜑 → 𝜓 ) )

🟢️ Paso 3: impbid
wff ( 𝜑 ↔ 𝜓 )
wff 𝜓
wff 𝜑
⊢ ( ( 𝜑 ↔ 𝜓 ) → ( 𝜓 → 𝜑 ) )
⊢ ( ( 𝜑 ↔ 𝜓 ) → ( 𝜑 → 𝜓 ) )
───────────────────────────
⊢ ( ( 𝜑 ↔ 𝜓 ) → ( 𝜓 ↔ 𝜑 ) )
✅️ Prueba correcta

bicom

───────────────┤ TEOREMA bicom ├────────────────
wff 𝜑
wff 𝜓
───────────────────────────
⊢ ( ( 𝜑 ↔ 𝜓 ) ↔ ( 𝜓 ↔ 𝜑 ) )

🟢️ Paso 1: bicom1
wff 𝜑
wff 𝜓
───────────────────────────
⊢ ( ( 𝜑 ↔ 𝜓 ) → ( 𝜓 ↔ 𝜑 ) )

🟢️ Paso 2: bicom1
wff 𝜓
wff 𝜑
───────────────────────────
⊢ ( ( 𝜓 ↔ 𝜑 ) → ( 𝜑 ↔ 𝜓 ) )

🟢️ Paso 3: impbii
wff ( 𝜑 ↔ 𝜓 )
wff ( 𝜓 ↔ 𝜑 )
⊢ ( ( 𝜑 ↔ 𝜓 ) → ( 𝜓 ↔ 𝜑 ) )
⊢ ( ( 𝜓 ↔ 𝜑 ) → ( 𝜑 ↔ 𝜓 ) )
───────────────────────────
⊢ ( ( 𝜑 ↔ 𝜓 ) ↔ ( 𝜓 ↔ 𝜑 ) )
✅️ Prueba correcta

bicomd

───────────────┤ TEOREMA bicomd ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
───────────────────
⊢ ( 𝜑 → ( 𝜒 ↔ 𝜓 ) )

🟢️ Paso 1: bicom
wff 𝜓
wff 𝜒
───────────────────────────
⊢ ( ( 𝜓 ↔ 𝜒 ) ↔ ( 𝜒 ↔ 𝜓 ) )

🟢️ Paso 2: sylib
wff 𝜑
wff ( 𝜓 ↔ 𝜒 )
wff ( 𝜒 ↔ 𝜓 )
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
⊢ ( ( 𝜓 ↔ 𝜒 ) ↔ ( 𝜒 ↔ 𝜓 ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜒 ↔ 𝜓 ) )
✅️ Prueba correcta

bicomi

───────────────┤ TEOREMA bicomi ├────────────────
wff 𝜑
wff 𝜓
⊢ ( 𝜑 ↔ 𝜓 )
───────────
⊢ ( 𝜓 ↔ 𝜑 )

🟢️ Paso 1: bicom1
wff 𝜑
wff 𝜓
───────────────────────────
⊢ ( ( 𝜑 ↔ 𝜓 ) → ( 𝜓 ↔ 𝜑 ) )

🟢️ Paso 2: ax-mp
wff ( 𝜑 ↔ 𝜓 )
wff ( 𝜓 ↔ 𝜑 )
⊢ ( 𝜑 ↔ 𝜓 )
⊢ ( ( 𝜑 ↔ 𝜓 ) → ( 𝜓 ↔ 𝜑 ) )
───────────────────────────
⊢ ( 𝜓 ↔ 𝜑 )
✅️ Prueba correcta

impcon4bid

───────────────┤ TEOREMA impcon4bid ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
⊢ ( 𝜑 → ( ¬𝜓 → ¬𝜒 ) )
─────────────────────
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )

🟢️ Paso 1: con4d
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( ¬𝜓 → ¬𝜒 ) )
─────────────────────
⊢ ( 𝜑 → ( 𝜒 → 𝜓 ) )

🟢️ Paso 2: impbid
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
⊢ ( 𝜑 → ( 𝜒 → 𝜓 ) )
───────────────────
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
✅️ Prueba correcta

biimpri

───────────────┤ TEOREMA biimpri ├────────────────
wff 𝜑
wff 𝜓
⊢ ( 𝜑 ↔ 𝜓 )
───────────
⊢ ( 𝜓 → 𝜑 )

🟢️ Paso 1: bicomi
wff 𝜑
wff 𝜓
⊢ ( 𝜑 ↔ 𝜓 )
───────────
⊢ ( 𝜓 ↔ 𝜑 )

🟢️ Paso 2: biimpi
wff 𝜓
wff 𝜑
⊢ ( 𝜓 ↔ 𝜑 )
───────────
⊢ ( 𝜓 → 𝜑 )
✅️ Prueba correcta

sylib

───────────────┤ TEOREMA biimpri ├────────────────
wff 𝜑
wff 𝜓
⊢ ( 𝜑 ↔ 𝜓 )
───────────
⊢ ( 𝜓 → 𝜑 )

🟢️ Paso 1: bicomi
wff 𝜑
wff 𝜓
⊢ ( 𝜑 ↔ 𝜓 )
───────────
⊢ ( 𝜓 ↔ 𝜑 )

🟢️ Paso 2: biimpi
wff 𝜓
wff 𝜑
⊢ ( 𝜓 ↔ 𝜑 )
───────────
⊢ ( 𝜓 → 𝜑 )
✅️ Prueba correcta

mpbi

───────────────┤ TEOREMA mpbi ├────────────────
wff 𝜑
wff 𝜓
⊢ 𝜑
⊢ ( 𝜑 ↔ 𝜓 )
───────────
⊢ 𝜓

🟢️ Paso 1: biimpi
wff 𝜑
wff 𝜓
⊢ ( 𝜑 ↔ 𝜓 )
───────────
⊢ ( 𝜑 → 𝜓 )

🟢️ Paso 2: ax-mp
wff 𝜑
wff 𝜓
⊢ 𝜑
⊢ ( 𝜑 → 𝜓 )
───────────
⊢ 𝜓
✅️ Prueba correcta

mpbir

───────────────┤ TEOREMA mpbir ├────────────────
wff 𝜑
wff 𝜓
⊢ 𝜓
⊢ ( 𝜑 ↔ 𝜓 )
───────────
⊢ 𝜑

🟢️ Paso 1: biimpri
wff 𝜑
wff 𝜓
⊢ ( 𝜑 ↔ 𝜓 )
───────────
⊢ ( 𝜓 → 𝜑 )

🟢️ Paso 2: ax-mp
wff 𝜓
wff 𝜑
⊢ 𝜓
⊢ ( 𝜓 → 𝜑 )
───────────
⊢ 𝜑
✅️ Prueba correcta

sylibr

───────────────┤ TEOREMA sylibr ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜒 ↔ 𝜓 )
───────────
⊢ ( 𝜑 → 𝜒 )

🟢️ Paso 1: biimpri
wff 𝜒
wff 𝜓
⊢ ( 𝜒 ↔ 𝜓 )
───────────
⊢ ( 𝜓 → 𝜒 )

🟢️ Paso 2: syl
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜓 → 𝜒 )
───────────
⊢ ( 𝜑 → 𝜒 )
✅️ Prueba correcta

sylbbr

───────────────┤ TEOREMA sylbbr ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 ↔ 𝜓 )
⊢ ( 𝜓 ↔ 𝜒 )
───────────
⊢ ( 𝜒 → 𝜑 )

🟢️ Paso 1: biimpri
wff 𝜓
wff 𝜒
⊢ ( 𝜓 ↔ 𝜒 )
───────────
⊢ ( 𝜒 → 𝜓 )

🟢️ Paso 2: sylibr
wff 𝜒
wff 𝜓
wff 𝜑
⊢ ( 𝜒 → 𝜓 )
⊢ ( 𝜑 ↔ 𝜓 )
───────────
⊢ ( 𝜒 → 𝜑 )
✅️ Prueba correcta

biimpd

───────────────┤ TEOREMA biimpd ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
───────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )

🟢️ Paso 1: biimp
wff 𝜓
wff 𝜒
───────────────────────────
⊢ ( ( 𝜓 ↔ 𝜒 ) → ( 𝜓 → 𝜒 ) )

🟢️ Paso 2: syl
wff 𝜑
wff ( 𝜓 ↔ 𝜒 )
wff ( 𝜓 → 𝜒 )
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
⊢ ( ( 𝜓 ↔ 𝜒 ) → ( 𝜓 → 𝜒 ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
✅️ Prueba correcta

syl5ib

───────────────┤ TEOREMA syl5ib ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜒 → ( 𝜓 ↔ 𝜃 ) )
───────────────────
⊢ ( 𝜒 → ( 𝜑 → 𝜃 ) )

🟢️ Paso 1: biimpd
wff 𝜒
wff 𝜓
wff 𝜃
⊢ ( 𝜒 → ( 𝜓 ↔ 𝜃 ) )
───────────────────
⊢ ( 𝜒 → ( 𝜓 → 𝜃 ) )

🟢️ Paso 2: syl5
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜒 → ( 𝜓 → 𝜃 ) )
───────────────────
⊢ ( 𝜒 → ( 𝜑 → 𝜃 ) )
✅️ Prueba correcta

syl5ibr

───────────────┤ TEOREMA syl5ibr ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → 𝜃 )
⊢ ( 𝜒 → ( 𝜓 ↔ 𝜃 ) )
───────────────────
⊢ ( 𝜒 → ( 𝜑 → 𝜓 ) )

🟢️ Paso 1: bicomd
wff 𝜒
wff 𝜓
wff 𝜃
⊢ ( 𝜒 → ( 𝜓 ↔ 𝜃 ) )
───────────────────
⊢ ( 𝜒 → ( 𝜃 ↔ 𝜓 ) )

🟢️ Paso 2: syl5ib
wff 𝜑
wff 𝜃
wff 𝜒
wff 𝜓
⊢ ( 𝜑 → 𝜃 )
⊢ ( 𝜒 → ( 𝜃 ↔ 𝜓 ) )
───────────────────
⊢ ( 𝜒 → ( 𝜑 → 𝜓 ) )
✅️ Prueba correcta

biimprd

───────────────┤ TEOREMA biimprd ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
───────────────────
⊢ ( 𝜑 → ( 𝜒 → 𝜓 ) )

🟢️ Paso 1: id
wff 𝜒
───────────
⊢ ( 𝜒 → 𝜒 )

🟢️ Paso 2: syl5ibr
wff 𝜒
wff 𝜓
wff 𝜑
wff 𝜒
⊢ ( 𝜒 → 𝜒 )
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
───────────────────
⊢ ( 𝜑 → ( 𝜒 → 𝜓 ) )
✅️ Prueba correcta

pm5.74

───────────────┤ TEOREMA pm5.74 ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
───────────────────────────────────────────────────
⊢ ( ( 𝜑 → ( 𝜓 ↔ 𝜒 ) ) ↔ ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) ) )

🟢️ Paso 1: biimp
wff 𝜓
wff 𝜒
───────────────────────────
⊢ ( ( 𝜓 ↔ 𝜒 ) → ( 𝜓 → 𝜒 ) )

🟢️ Paso 2: imim3i
wff ( 𝜓 ↔ 𝜒 )
wff 𝜓
wff 𝜒
wff 𝜑
⊢ ( ( 𝜓 ↔ 𝜒 ) → ( 𝜓 → 𝜒 ) )
───────────────────────────────────────────────────
⊢ ( ( 𝜑 → ( 𝜓 ↔ 𝜒 ) ) → ( ( 𝜑 → 𝜓 ) → ( 𝜑 → 𝜒 ) ) )

🟢️ Paso 3: biimpr
wff 𝜓
wff 𝜒
───────────────────────────
⊢ ( ( 𝜓 ↔ 𝜒 ) → ( 𝜒 → 𝜓 ) )

🟢️ Paso 4: imim3i
wff ( 𝜓 ↔ 𝜒 )
wff 𝜒
wff 𝜓
wff 𝜑
⊢ ( ( 𝜓 ↔ 𝜒 ) → ( 𝜒 → 𝜓 ) )
───────────────────────────────────────────────────
⊢ ( ( 𝜑 → ( 𝜓 ↔ 𝜒 ) ) → ( ( 𝜑 → 𝜒 ) → ( 𝜑 → 𝜓 ) ) )

🟢️ Paso 5: impbid
wff ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
wff ( 𝜑 → 𝜓 )
wff ( 𝜑 → 𝜒 )
⊢ ( ( 𝜑 → ( 𝜓 ↔ 𝜒 ) ) → ( ( 𝜑 → 𝜓 ) → ( 𝜑 → 𝜒 ) ) )
⊢ ( ( 𝜑 → ( 𝜓 ↔ 𝜒 ) ) → ( ( 𝜑 → 𝜒 ) → ( 𝜑 → 𝜓 ) ) )
───────────────────────────────────────────────────
⊢ ( ( 𝜑 → ( 𝜓 ↔ 𝜒 ) ) → ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) ) )

🟢️ Paso 6: biimp
wff ( 𝜑 → 𝜓 )
wff ( 𝜑 → 𝜒 )
───────────────────────────────────────────────────────────
⊢ ( ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) ) → ( ( 𝜑 → 𝜓 ) → ( 𝜑 → 𝜒 ) ) )

🟢️ Paso 7: pm2.86d
wff ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) )
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) ) → ( ( 𝜑 → 𝜓 ) → ( 𝜑 → 𝜒 ) ) )
───────────────────────────────────────────────────────────
⊢ ( ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) ) → ( 𝜑 → ( 𝜓 → 𝜒 ) ) )

🟢️ Paso 8: biimpr
wff ( 𝜑 → 𝜓 )
wff ( 𝜑 → 𝜒 )
───────────────────────────────────────────────────────────
⊢ ( ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) ) → ( ( 𝜑 → 𝜒 ) → ( 𝜑 → 𝜓 ) ) )

🟢️ Paso 9: pm2.86d
wff ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) )
wff 𝜑
wff 𝜒
wff 𝜓
⊢ ( ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) ) → ( ( 𝜑 → 𝜒 ) → ( 𝜑 → 𝜓 ) ) )
───────────────────────────────────────────────────────────
⊢ ( ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) ) → ( 𝜑 → ( 𝜒 → 𝜓 ) ) )

🟢️ Paso 10: impbidd
wff ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) )
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) ) → ( 𝜑 → ( 𝜓 → 𝜒 ) ) )
⊢ ( ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) ) → ( 𝜑 → ( 𝜒 → 𝜓 ) ) )
───────────────────────────────────────────────────
⊢ ( ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) ) → ( 𝜑 → ( 𝜓 ↔ 𝜒 ) ) )

🟢️ Paso 11: impbii
wff ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
wff ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) )
⊢ ( ( 𝜑 → ( 𝜓 ↔ 𝜒 ) ) → ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) ) )
⊢ ( ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) ) → ( 𝜑 → ( 𝜓 ↔ 𝜒 ) ) )
───────────────────────────────────────────────────
⊢ ( ( 𝜑 → ( 𝜓 ↔ 𝜒 ) ) ↔ ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) ) )
✅️ Prueba correcta

pm5.74i

───────────────┤ TEOREMA pm5.74i ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
───────────────────────────
⊢ ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) )

🟢️ Paso 1: pm5.74
wff 𝜑
wff 𝜓
wff 𝜒
───────────────────────────────────────────────────
⊢ ( ( 𝜑 → ( 𝜓 ↔ 𝜒 ) ) ↔ ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) ) )

🟢️ Paso 2: mpbi
wff ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
wff ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) )
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
⊢ ( ( 𝜑 → ( 𝜓 ↔ 𝜒 ) ) ↔ ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) ) )
───────────────────────────────────────────────────
⊢ ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) )
✅️ Prueba correcta

pm5.74ri

───────────────┤ TEOREMA pm5.74ri ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )

🟢️ Paso 1: pm5.74
wff 𝜑
wff 𝜓
wff 𝜒
───────────────────────────────────────────────────
⊢ ( ( 𝜑 → ( 𝜓 ↔ 𝜒 ) ) ↔ ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) ) )

🟢️ Paso 2: mpbir
wff ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
wff ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) )
⊢ ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) )
⊢ ( ( 𝜑 → ( 𝜓 ↔ 𝜒 ) ) ↔ ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) ) )
───────────────────────────────────────────────────
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
✅️ Prueba correcta

bitri

───────────────┤ TEOREMA bitri  ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 ↔ 𝜓 )
⊢ ( 𝜓 ↔ 𝜒 )
───────────
⊢ ( 𝜑 ↔ 𝜒 )

🟢️ Paso 1: sylbb
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 ↔ 𝜓 )
⊢ ( 𝜓 ↔ 𝜒 )
───────────
⊢ ( 𝜑 → 𝜒 )

🟢️ Paso 2: sylbbr
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 ↔ 𝜓 )
⊢ ( 𝜓 ↔ 𝜒 )
───────────
⊢ ( 𝜒 → 𝜑 )

🟢️ Paso 3: impbii
wff 𝜑
wff 𝜒
⊢ ( 𝜑 → 𝜒 )
⊢ ( 𝜒 → 𝜑 )
───────────
⊢ ( 𝜑 ↔ 𝜒 )
✅️ Prueba correcta

bitrd

───────────────┤ TEOREMA bitrd ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
⊢ ( 𝜑 → ( 𝜒 ↔ 𝜃 ) )
───────────────────
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜃 ) )

🟢️ Paso 1: pm5.74i
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
───────────────────────────
⊢ ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) )

🟢️ Paso 2: pm5.74i
wff 𝜑
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜒 ↔ 𝜃 ) )
───────────────────────────
⊢ ( ( 𝜑 → 𝜒 ) ↔ ( 𝜑 → 𝜃 ) )

🟢️ Paso 3: bitri
wff ( 𝜑 → 𝜓 )
wff ( 𝜑 → 𝜒 )
wff ( 𝜑 → 𝜃 )
⊢ ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) )
⊢ ( ( 𝜑 → 𝜒 ) ↔ ( 𝜑 → 𝜃 ) )
───────────────────────────
⊢ ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜃 ) )

🟢️ Paso 4: pm5.74ri
wff 𝜑
wff 𝜓
wff 𝜃
⊢ ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜃 ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜃 ) )
✅️ Prueba correcta

bitrid

───────────────┤ TEOREMA bitrid ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
⊢ ( 𝜑 → ( 𝜒 ↔ 𝜃 ) )
───────────────────
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜃 ) )

🟢️ Paso 1: pm5.74i
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
───────────────────────────
⊢ ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) )

🟢️ Paso 2: pm5.74i
wff 𝜑
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜒 ↔ 𝜃 ) )
───────────────────────────
⊢ ( ( 𝜑 → 𝜒 ) ↔ ( 𝜑 → 𝜃 ) )

🟢️ Paso 3: bitri
wff ( 𝜑 → 𝜓 )
wff ( 𝜑 → 𝜒 )
wff ( 𝜑 → 𝜃 )
⊢ ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜒 ) )
⊢ ( ( 𝜑 → 𝜒 ) ↔ ( 𝜑 → 𝜃 ) )
───────────────────────────
⊢ ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜃 ) )

🟢️ Paso 4: pm5.74ri
wff 𝜑
wff 𝜓
wff 𝜃
⊢ ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → 𝜃 ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜃 ) )
✅️ Prueba correcta

2025-01-23

bitr3id

───────────────┤ TEOREMA bitr3id ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜓 ↔ 𝜑 )
⊢ ( 𝜒 → ( 𝜓 ↔ 𝜃 ) )
───────────────────
⊢ ( 𝜒 → ( 𝜑 ↔ 𝜃 ) )

🟢️ Paso 1: bicomi
wff 𝜓
wff 𝜑
⊢ ( 𝜓 ↔ 𝜑 )
───────────
⊢ ( 𝜑 ↔ 𝜓 )

🟢️ Paso 2: bitrid
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 ↔ 𝜓 )
⊢ ( 𝜒 → ( 𝜓 ↔ 𝜃 ) )
───────────────────
⊢ ( 𝜒 → ( 𝜑 ↔ 𝜃 ) )
✅️ Prueba correcta

bitrdi

───────────────┤ TEOREMA bitrdi ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
⊢ ( 𝜒 ↔ 𝜃 )
───────────────────
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜃 ) )

🟢️ Paso 1: a1i
wff ( 𝜒 ↔ 𝜃 )
wff 𝜑
⊢ ( 𝜒 ↔ 𝜃 )
───────────────────
⊢ ( 𝜑 → ( 𝜒 ↔ 𝜃 ) )

🟢️ Paso 2: bitrd
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
⊢ ( 𝜑 → ( 𝜒 ↔ 𝜃 ) )
───────────────────
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜃 ) )
✅️ Prueba correcta

3bitr3g

───────────────┤ TEOREMA 3bitr3g ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
wff 𝜏
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
⊢ ( 𝜓 ↔ 𝜃 )
⊢ ( 𝜒 ↔ 𝜏 )
───────────────────
⊢ ( 𝜑 → ( 𝜃 ↔ 𝜏 ) )

🟢️ Paso 1: bitr3id
wff 𝜃
wff 𝜓
wff 𝜑
wff 𝜒
⊢ ( 𝜓 ↔ 𝜃 )
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
───────────────────
⊢ ( 𝜑 → ( 𝜃 ↔ 𝜒 ) )

🟢️ Paso 2: bitrdi
wff 𝜑
wff 𝜃
wff 𝜒
wff 𝜏
⊢ ( 𝜑 → ( 𝜃 ↔ 𝜒 ) )
⊢ ( 𝜒 ↔ 𝜏 )
───────────────────
⊢ ( 𝜑 → ( 𝜃 ↔ 𝜏 ) )
✅️ Prueba correcta

con4bid

───────────────┤ TEOREMA con4bid ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( ¬𝜓 ↔ ¬𝜒 ) )
─────────────────────
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )

🟢️ Paso 1: biimprd
wff 𝜑
wff ¬𝜓
wff ¬𝜒
⊢ ( 𝜑 → ( ¬𝜓 ↔ ¬𝜒 ) )
─────────────────────
⊢ ( 𝜑 → ( ¬𝜒 → ¬𝜓 ) )

🟢️ Paso 2: con4d
wff 𝜑
wff 𝜒
wff 𝜓
⊢ ( 𝜑 → ( ¬𝜒 → ¬𝜓 ) )
─────────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )

🟢️ Paso 3: biimpd
wff 𝜑
wff ¬𝜓
wff ¬𝜒
⊢ ( 𝜑 → ( ¬𝜓 ↔ ¬𝜒 ) )
─────────────────────
⊢ ( 𝜑 → ( ¬𝜓 → ¬𝜒 ) )

🟢️ Paso 4: impcon4bid
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
⊢ ( 𝜑 → ( ¬𝜓 → ¬𝜒 ) )
─────────────────────
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
✅️ Prueba correcta

notbid

───────────────┤ TEOREMA notbid ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
─────────────────────
⊢ ( 𝜑 → ( ¬𝜓 ↔ ¬𝜒 ) )

🟢️ Paso 1: notnotb
wff 𝜓
─────────────
⊢ ( 𝜓 ↔ ¬¬𝜓 )

🟢️ Paso 2: notnotb
wff 𝜒
─────────────
⊢ ( 𝜒 ↔ ¬¬𝜒 )

🟢️ Paso 3: 3bitr3g
wff 𝜑
wff 𝜓
wff 𝜒
wff ¬¬𝜓
wff ¬¬𝜒
⊢ ( 𝜑 → ( 𝜓 ↔ 𝜒 ) )
⊢ ( 𝜓 ↔ ¬¬𝜓 )
⊢ ( 𝜒 ↔ ¬¬𝜒 )
───────────────────────
⊢ ( 𝜑 → ( ¬¬𝜓 ↔ ¬¬𝜒 ) )

🟢️ Paso 4: con4bid
wff 𝜑
wff ¬𝜓
wff ¬𝜒
⊢ ( 𝜑 → ( ¬¬𝜓 ↔ ¬¬𝜒 ) )
───────────────────────
⊢ ( 𝜑 → ( ¬𝜓 ↔ ¬𝜒 ) )
✅️ Prueba correcta

notbi

───────────────┤ TEOREMA notbi ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
wff 𝜏
─────────────────────────────
⊢ ( ( 𝜑 ↔ 𝜓 ) ↔ ( ¬𝜑 ↔ ¬𝜓 ) )

🟢️ Paso 1: id
wff ( 𝜑 ↔ 𝜓 )
───────────────────────────
⊢ ( ( 𝜑 ↔ 𝜓 ) → ( 𝜑 ↔ 𝜓 ) )

🟢️ Paso 2: notbid
wff ( 𝜑 ↔ 𝜓 )
wff 𝜑
wff 𝜓
⊢ ( ( 𝜑 ↔ 𝜓 ) → ( 𝜑 ↔ 𝜓 ) )
─────────────────────────────
⊢ ( ( 𝜑 ↔ 𝜓 ) → ( ¬𝜑 ↔ ¬𝜓 ) )

🟢️ Paso 3: id
wff ( ¬𝜑 ↔ ¬𝜓 )
───────────────────────────────
⊢ ( ( ¬𝜑 ↔ ¬𝜓 ) → ( ¬𝜑 ↔ ¬𝜓 ) )

🟢️ Paso 4: con4bid
wff ( ¬𝜑 ↔ ¬𝜓 )
wff 𝜑
wff 𝜓
⊢ ( ( ¬𝜑 ↔ ¬𝜓 ) → ( ¬𝜑 ↔ ¬𝜓 ) )
───────────────────────────────
⊢ ( ( ¬𝜑 ↔ ¬𝜓 ) → ( 𝜑 ↔ 𝜓 ) )

🟢️ Paso 5: impbii
wff ( 𝜑 ↔ 𝜓 )
wff ( ¬𝜑 ↔ ¬𝜓 )
⊢ ( ( 𝜑 ↔ 𝜓 ) → ( ¬𝜑 ↔ ¬𝜓 ) )
⊢ ( ( ¬𝜑 ↔ ¬𝜓 ) → ( 𝜑 ↔ 𝜓 ) )
─────────────────────────────
⊢ ( ( 𝜑 ↔ 𝜓 ) ↔ ( ¬𝜑 ↔ ¬𝜓 ) )
✅️ Prueba correcta

notbii

───────────────┤ TEOREMA notbii ├────────────────
wff 𝜑
wff 𝜓
⊢ ( 𝜑 ↔ 𝜓 )
─────────────
⊢ ( ¬𝜑 ↔ ¬𝜓 )

🟢️ Paso 1: notbi
wff 𝜑
wff 𝜓
─────────────────────────────
⊢ ( ( 𝜑 ↔ 𝜓 ) ↔ ( ¬𝜑 ↔ ¬𝜓 ) )

🟢️ Paso 2: mpbi
wff ( 𝜑 ↔ 𝜓 )
wff ( ¬𝜑 ↔ ¬𝜓 )
⊢ ( 𝜑 ↔ 𝜓 )
⊢ ( ( 𝜑 ↔ 𝜓 ) ↔ ( ¬𝜑 ↔ ¬𝜓 ) )
─────────────────────────────
⊢ ( ¬𝜑 ↔ ¬𝜓 )
✅️ Prueba correcta

xchbinx

───────────────┤ TEOREMA xchbinx ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 ↔ ¬𝜓 )
⊢ ( 𝜓 ↔ 𝜒 )
────────────
⊢ ( 𝜑 ↔ ¬𝜒 )

🟢️ Paso 1: notbii
wff 𝜓
wff 𝜒
⊢ ( 𝜓 ↔ 𝜒 )
─────────────
⊢ ( ¬𝜓 ↔ ¬𝜒 )

🟢️ Paso 2: bitri
wff 𝜑
wff ¬𝜓
wff ¬𝜒
⊢ ( 𝜑 ↔ ¬𝜓 )
⊢ ( ¬𝜓 ↔ ¬𝜒 )
─────────────
⊢ ( 𝜑 ↔ ¬𝜒 )
✅️ Prueba correcta

xchbinxr

───────────────┤ TEOREMA xchbinxr ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 ↔ ¬𝜓 )
⊢ ( 𝜒 ↔ 𝜓 )
────────────
⊢ ( 𝜑 ↔ ¬𝜒 )

🟢️ Paso 1: bicomi
wff 𝜒
wff 𝜓
⊢ ( 𝜒 ↔ 𝜓 )
───────────
⊢ ( 𝜓 ↔ 𝜒 )

🟢️ Paso 2: xchbinx
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 ↔ ¬𝜓 )
⊢ ( 𝜓 ↔ 𝜒 )
────────────
⊢ ( 𝜑 ↔ ¬𝜒 )
✅️ Prueba correcta

imbi2i

───────────────┤ TEOREMA imbi2i ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 ↔ 𝜓 )
───────────────────────────
⊢ ( ( 𝜒 → 𝜑 ) ↔ ( 𝜒 → 𝜓 ) )

🟢️ Paso 1: a1i
wff ( 𝜑 ↔ 𝜓 )
wff 𝜒
⊢ ( 𝜑 ↔ 𝜓 )
───────────────────
⊢ ( 𝜒 → ( 𝜑 ↔ 𝜓 ) )

🟢️ Paso 2: pm5.74i
wff 𝜒
wff 𝜑
wff 𝜓
⊢ ( 𝜒 → ( 𝜑 ↔ 𝜓 ) )
───────────────────────────
⊢ ( ( 𝜒 → 𝜑 ) ↔ ( 𝜒 → 𝜓 ) )
✅️ Prueba correcta

con2bii

───────────────┤ TEOREMA con2bii ├────────────────
wff 𝜑
wff 𝜓
⊢ ( 𝜑 ↔ ¬𝜓 )
────────────
⊢ ( 𝜓 ↔ ¬𝜑 )

🟢️ Paso 1: notnotb
wff 𝜓
─────────────
⊢ ( 𝜓 ↔ ¬¬𝜓 )

🟢️ Paso 2: xchbinxr
wff 𝜓
wff ¬𝜓
wff 𝜑
⊢ ( 𝜓 ↔ ¬¬𝜓 )
⊢ ( 𝜑 ↔ ¬𝜓 )
─────────────
⊢ ( 𝜓 ↔ ¬𝜑 )
✅️ Prueba correcta

imnan

───────────────┤ TEOREMA imnan ├────────────────
wff 𝜑
wff 𝜓
─────────────────────────────
⊢ ( ( 𝜑 → ¬𝜓 ) ↔ ¬( 𝜑 ∧ 𝜓 ) )

🟢️ Paso 1: df-an
wff 𝜑
wff 𝜓
─────────────────────────────
⊢ ( ( 𝜑 ∧ 𝜓 ) ↔ ¬( 𝜑 → ¬𝜓 ) )

🟢️ Paso 2: con2bii
wff ( 𝜑 ∧ 𝜓 )
wff ( 𝜑 → ¬𝜓 )
⊢ ( ( 𝜑 ∧ 𝜓 ) ↔ ¬( 𝜑 → ¬𝜓 ) )
─────────────────────────────
⊢ ( ( 𝜑 → ¬𝜓 ) ↔ ¬( 𝜑 ∧ 𝜓 ) )
✅️ Prueba correcta

iman

───────────────┤ TEOREMA iman ├────────────────
wff 𝜑
wff 𝜓
─────────────────────────────
⊢ ( ( 𝜑 → 𝜓 ) ↔ ¬( 𝜑 ∧ ¬𝜓 ) )

🟢️ Paso 1: notnotb
wff 𝜓
─────────────
⊢ ( 𝜓 ↔ ¬¬𝜓 )

🟢️ Paso 2: imbi2i
wff 𝜓
wff ¬¬𝜓
wff 𝜑
⊢ ( 𝜓 ↔ ¬¬𝜓 )
─────────────────────────────
⊢ ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → ¬¬𝜓 ) )

🟢️ Paso 3: imnan
wff 𝜑
wff ¬𝜓
───────────────────────────────
⊢ ( ( 𝜑 → ¬¬𝜓 ) ↔ ¬( 𝜑 ∧ ¬𝜓 ) )

🟢️ Paso 4: bitri
wff ( 𝜑 → 𝜓 )
wff ( 𝜑 → ¬¬𝜓 )
wff ¬( 𝜑 ∧ ¬𝜓 )
⊢ ( ( 𝜑 → 𝜓 ) ↔ ( 𝜑 → ¬¬𝜓 ) )
⊢ ( ( 𝜑 → ¬¬𝜓 ) ↔ ¬( 𝜑 ∧ ¬𝜓 ) )
───────────────────────────────
⊢ ( ( 𝜑 → 𝜓 ) ↔ ¬( 𝜑 ∧ ¬𝜓 ) )
✅️ Prueba correcta

pm3.24

───────────────┤ TEOREMA pm3.24 ├────────────────
wff 𝜑
─────────────
⊢ ¬( 𝜑 ∧ ¬𝜑 )

🟢️ Paso 1: id
wff 𝜑
───────────
⊢ ( 𝜑 → 𝜑 )

🟢️ Paso 2: iman
wff 𝜑
wff 𝜑
─────────────────────────────
⊢ ( ( 𝜑 → 𝜑 ) ↔ ¬( 𝜑 ∧ ¬𝜑 ) )

🟢️ Paso 3: mpbi
wff ( 𝜑 → 𝜑 )
wff ¬( 𝜑 ∧ ¬𝜑 )
⊢ ( 𝜑 → 𝜑 )
⊢ ( ( 𝜑 → 𝜑 ) ↔ ¬( 𝜑 ∧ ¬𝜑 ) )
─────────────────────────────
⊢ ¬( 𝜑 ∧ ¬𝜑 )
✅️ Prueba correcta

sylbir

───────────────┤ TEOREMA sylbir ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜓 ↔ 𝜑 )
⊢ ( 𝜓 → 𝜒 )
───────────
⊢ ( 𝜑 → 𝜒 )

🟢️ Paso 1: biimpri
wff 𝜓
wff 𝜑
⊢ ( 𝜓 ↔ 𝜑 )
───────────
⊢ ( 𝜑 → 𝜓 )

🟢️ Paso 2: syl
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → 𝜓 )
⊢ ( 𝜓 → 𝜒 )
───────────
⊢ ( 𝜑 → 𝜒 )
✅️ Prueba correcta

ex

  • (413) ex
───────────────┤ TEOREMA ex ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( ( 𝜑 ∧ 𝜓 ) → 𝜒 )
───────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )

🟢️ Paso 1: df-an
wff 𝜑
wff 𝜓
─────────────────────────────
⊢ ( ( 𝜑 ∧ 𝜓 ) ↔ ¬( 𝜑 → ¬𝜓 ) )

🟢️ Paso 2: sylbir
wff ¬( 𝜑 → ¬𝜓 )
wff ( 𝜑 ∧ 𝜓 )
wff 𝜒
⊢ ( ( 𝜑 ∧ 𝜓 ) ↔ ¬( 𝜑 → ¬𝜓 ) )
⊢ ( ( 𝜑 ∧ 𝜓 ) → 𝜒 )
─────────────────────────────
⊢ ( ¬( 𝜑 → ¬𝜓 ) → 𝜒 )

🟢️ Paso 3: expi
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( ¬( 𝜑 → ¬𝜓 ) → 𝜒 )
─────────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
✅️ Prueba correcta

expcom

───────────────┤ TEOREMA expcom ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( ( 𝜑 ∧ 𝜓 ) → 𝜒 )
───────────────────
⊢ ( 𝜓 → ( 𝜑 → 𝜒 ) )

🟢️ Paso 1: ex
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( ( 𝜑 ∧ 𝜓 ) → 𝜒 )
───────────────────
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )

🟢️ Paso 2: com12
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
───────────────────
⊢ ( 𝜓 → ( 𝜑 → 𝜒 ) )
✅️ Prueba correcta

imp

───────────────┤ TEOREMA imp ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
───────────────────
⊢ ( ( 𝜑 ∧ 𝜓 ) → 𝜒 )

🟢️ Paso 1: df-an
wff 𝜑
wff 𝜓
─────────────────────────────
⊢ ( ( 𝜑 ∧ 𝜓 ) ↔ ¬( 𝜑 → ¬𝜓 ) )

🟢️ Paso 2: impi
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 → ( 𝜓 → 𝜒 ) )
─────────────────────
⊢ ( ¬( 𝜑 → ¬𝜓 ) → 𝜒 )

🟢️ Paso 3: sylbi
wff ( 𝜑 ∧ 𝜓 )
wff ¬( 𝜑 → ¬𝜓 )
wff 𝜒
⊢ ( ( 𝜑 ∧ 𝜓 ) ↔ ¬( 𝜑 → ¬𝜓 ) )
⊢ ( ¬( 𝜑 → ¬𝜓 ) → 𝜒 )
─────────────────────────────
⊢ ( ( 𝜑 ∧ 𝜓 ) → 𝜒 )
✅️ Prueba correcta

ancoms

───────────────┤ TEOREMA ancoms ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( ( 𝜑 ∧ 𝜓 ) → 𝜒 )
───────────────────
⊢ ( ( 𝜓 ∧ 𝜑 ) → 𝜒 )

🟢️ Paso 1: expcom
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( ( 𝜑 ∧ 𝜓 ) → 𝜒 )
───────────────────
⊢ ( 𝜓 → ( 𝜑 → 𝜒 ) )

🟢️ Paso 2: imp
wff 𝜓
wff 𝜑
wff 𝜒
⊢ ( 𝜓 → ( 𝜑 → 𝜒 ) )
───────────────────
⊢ ( ( 𝜓 ∧ 𝜑 ) → 𝜒 )
✅️ Prueba correcta

pm3.22

───────────────┤ TEOREMA pm3.22 ├────────────────
wff 𝜑
wff 𝜓
───────────────────────────
⊢ ( ( 𝜑 ∧ 𝜓 ) → ( 𝜓 ∧ 𝜑 ) )

🟢️ Paso 1: id
wff ( 𝜓 ∧ 𝜑 )
───────────────────────────
⊢ ( ( 𝜓 ∧ 𝜑 ) → ( 𝜓 ∧ 𝜑 ) )

🟢️ Paso 2: ancoms
wff 𝜓
wff 𝜑
wff ( 𝜓 ∧ 𝜑 )
⊢ ( ( 𝜓 ∧ 𝜑 ) → ( 𝜓 ∧ 𝜑 ) )
───────────────────────────
⊢ ( ( 𝜑 ∧ 𝜓 ) → ( 𝜓 ∧ 𝜑 ) )
✅️ Prueba correcta

ancom

───────────────┤ TEOREMA ancom ├────────────────
wff 𝜑
wff 𝜓
───────────────────────────
⊢ ( ( 𝜑 ∧ 𝜓 ) ↔ ( 𝜓 ∧ 𝜑 ) )

🟢️ Paso 1: pm3.22
wff 𝜑
wff 𝜓
───────────────────────────
⊢ ( ( 𝜑 ∧ 𝜓 ) → ( 𝜓 ∧ 𝜑 ) )

🟢️ Paso 2: pm3.22
wff 𝜓
wff 𝜑
───────────────────────────
⊢ ( ( 𝜓 ∧ 𝜑 ) → ( 𝜑 ∧ 𝜓 ) )

🟢️ Paso 3: impbii
wff ( 𝜑 ∧ 𝜓 )
wff ( 𝜓 ∧ 𝜑 )
⊢ ( ( 𝜑 ∧ 𝜓 ) → ( 𝜓 ∧ 𝜑 ) )
⊢ ( ( 𝜓 ∧ 𝜑 ) → ( 𝜑 ∧ 𝜓 ) )
───────────────────────────
⊢ ( ( 𝜑 ∧ 𝜓 ) ↔ ( 𝜓 ∧ 𝜑 ) )
✅️ Prueba correcta

expdcom

───────────────┤ TEOREMA expdcom ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( ( 𝜓 ∧ 𝜒 ) → 𝜃 ) )
───────────────────────────
⊢ ( 𝜓 → ( 𝜒 → ( 𝜑 → 𝜃 ) ) )

🟢️ Paso 1: com12
wff 𝜑
wff ( 𝜓 ∧ 𝜒 )
wff 𝜃
⊢ ( 𝜑 → ( ( 𝜓 ∧ 𝜒 ) → 𝜃 ) )
───────────────────────────
⊢ ( ( 𝜓 ∧ 𝜒 ) → ( 𝜑 → 𝜃 ) )

🟢️ Paso 2: ex
wff 𝜓
wff 𝜒
wff ( 𝜑 → 𝜃 )
⊢ ( ( 𝜓 ∧ 𝜒 ) → ( 𝜑 → 𝜃 ) )
───────────────────────────
⊢ ( 𝜓 → ( 𝜒 → ( 𝜑 → 𝜃 ) ) )
✅️ Prueba correcta

com3r

───────────────┤ TEOREMA com3r ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
───────────────────────────
⊢ ( 𝜒 → ( 𝜑 → ( 𝜓 → 𝜃 ) ) )

🟢️ Paso 1: com23
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜒 → ( 𝜓 → 𝜃 ) ) )

🟢️ Paso 2: com12
wff 𝜑
wff 𝜒
wff ( 𝜓 → 𝜃 )
⊢ ( 𝜑 → ( 𝜒 → ( 𝜓 → 𝜃 ) ) )
───────────────────────────
⊢ ( 𝜒 → ( 𝜑 → ( 𝜓 → 𝜃 ) ) )
✅️ Prueba correcta

expd

───────────────┤ TEOREMA expd ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( ( 𝜓 ∧ 𝜒 ) → 𝜃 ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )

🟢️ Paso 1: expdcom
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( ( 𝜓 ∧ 𝜒 ) → 𝜃 ) )
───────────────────────────
⊢ ( 𝜓 → ( 𝜒 → ( 𝜑 → 𝜃 ) ) )

🟢️ Paso 2: com3r
wff 𝜓
wff 𝜒
wff 𝜑
wff 𝜃
⊢ ( 𝜓 → ( 𝜒 → ( 𝜑 → 𝜃 ) ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
✅️ Prueba correcta

exp32

───────────────┤ TEOREMA exp32 ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( ( 𝜑 ∧ ( 𝜓 ∧ 𝜒 ) ) → 𝜃 )
───────────────────────────
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )

🟢️ Paso 1: ex
wff 𝜑
wff ( 𝜓 ∧ 𝜒 )
wff 𝜃
⊢ ( ( 𝜑 ∧ ( 𝜓 ∧ 𝜒 ) ) → 𝜃 )
───────────────────────────
⊢ ( 𝜑 → ( ( 𝜓 ∧ 𝜒 ) → 𝜃 ) )

🟢️ Paso 2: expd
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( ( 𝜓 ∧ 𝜒 ) → 𝜃 ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
✅️ Prueba correcta

imp31

───────────────┤ TEOREMA imp31 ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
───────────────────────────
⊢ ( ( ( 𝜑 ∧ 𝜓 ) ∧ 𝜒 ) → 𝜃 )

🟢️ Paso 1: imp
wff 𝜑
wff 𝜓
wff ( 𝜒 → 𝜃 )
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
───────────────────────────
⊢ ( ( 𝜑 ∧ 𝜓 ) → ( 𝜒 → 𝜃 ) )

🟢️ Paso 2: imp
wff ( 𝜑 ∧ 𝜓 )
wff 𝜒
wff 𝜃
⊢ ( ( 𝜑 ∧ 𝜓 ) → ( 𝜒 → 𝜃 ) )
───────────────────────────
⊢ ( ( ( 𝜑 ∧ 𝜓 ) ∧ 𝜒 ) → 𝜃 )
✅️ Prueba correcta

anassrs

───────────────┤ TEOREMA anassrs ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( ( 𝜑 ∧ ( 𝜓 ∧ 𝜒 ) ) → 𝜃 )
───────────────────────────
⊢ ( ( ( 𝜑 ∧ 𝜓 ) ∧ 𝜒 ) → 𝜃 )

🟢️ Paso 1: exp32
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( ( 𝜑 ∧ ( 𝜓 ∧ 𝜒 ) ) → 𝜃 )
───────────────────────────
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )

🟢️ Paso 2: imp31
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
───────────────────────────
⊢ ( ( ( 𝜑 ∧ 𝜓 ) ∧ 𝜒 ) → 𝜃 )
✅️ Prueba correcta

com3l

───────────────┤ TEOREMA com3l ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
───────────────────────────
⊢ ( 𝜓 → ( 𝜒 → ( 𝜑 → 𝜃 ) ) )

🟢️ Paso 1: com3r
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
───────────────────────────
⊢ ( 𝜒 → ( 𝜑 → ( 𝜓 → 𝜃 ) ) )

🟢️ Paso 2: com3r
wff 𝜒
wff 𝜑
wff 𝜓
wff 𝜃
⊢ ( 𝜒 → ( 𝜑 → ( 𝜓 → 𝜃 ) ) )
───────────────────────────
⊢ ( 𝜓 → ( 𝜒 → ( 𝜑 → 𝜃 ) ) )
✅️ Prueba correcta

impd

───────────────┤ TEOREMA impd ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
───────────────────────────
⊢ ( 𝜑 → ( ( 𝜓 ∧ 𝜒 ) → 𝜃 ) )

🟢️ Paso 1: com3l
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
───────────────────────────
⊢ ( 𝜓 → ( 𝜒 → ( 𝜑 → 𝜃 ) ) )

🟢️ Paso 2: imp
wff 𝜓
wff 𝜒
wff ( 𝜑 → 𝜃 )
⊢ ( 𝜓 → ( 𝜒 → ( 𝜑 → 𝜃 ) ) )
───────────────────────────
⊢ ( ( 𝜓 ∧ 𝜒 ) → ( 𝜑 → 𝜃 ) )

🟢️ Paso 3: com12
wff ( 𝜓 ∧ 𝜒 )
wff 𝜑
wff 𝜃
⊢ ( ( 𝜓 ∧ 𝜒 ) → ( 𝜑 → 𝜃 ) )
───────────────────────────
⊢ ( 𝜑 → ( ( 𝜓 ∧ 𝜒 ) → 𝜃 ) )
✅️ Prueba correcta

imp32

───────────────┤ TEOREMA imp32 ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
───────────────────────────
⊢ ( ( 𝜑 ∧ ( 𝜓 ∧ 𝜒 ) ) → 𝜃 )

🟢️ Paso 1: impd
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
───────────────────────────
⊢ ( 𝜑 → ( ( 𝜓 ∧ 𝜒 ) → 𝜃 ) )

🟢️ Paso 2: imp
wff 𝜑
wff ( 𝜓 ∧ 𝜒 )
wff 𝜃
⊢ ( 𝜑 → ( ( 𝜓 ∧ 𝜒 ) → 𝜃 ) )
───────────────────────────
⊢ ( ( 𝜑 ∧ ( 𝜓 ∧ 𝜒 ) ) → 𝜃 )
✅️ Prueba correcta

exp31

───────────────┤ TEOREMA exp31 ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( ( ( 𝜑 ∧ 𝜓 ) ∧ 𝜒 ) → 𝜃 )
───────────────────────────
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )

🟢️ Paso 1: ex
wff ( 𝜑 ∧ 𝜓 )
wff 𝜒
wff 𝜃
⊢ ( ( ( 𝜑 ∧ 𝜓 ) ∧ 𝜒 ) → 𝜃 )
───────────────────────────
⊢ ( ( 𝜑 ∧ 𝜓 ) → ( 𝜒 → 𝜃 ) )

🟢️ Paso 2: ex
wff 𝜑
wff 𝜓
wff ( 𝜒 → 𝜃 )
⊢ ( ( 𝜑 ∧ 𝜓 ) → ( 𝜒 → 𝜃 ) )
───────────────────────────
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
✅️ Prueba correcta

anasss

───────────────┤ TEOREMA anasss ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( ( ( 𝜑 ∧ 𝜓 ) ∧ 𝜒 ) → 𝜃 )
───────────────────────────
⊢ ( ( 𝜑 ∧ ( 𝜓 ∧ 𝜒 ) ) → 𝜃 )

🟢️ Paso 1: exp31
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( ( ( 𝜑 ∧ 𝜓 ) ∧ 𝜒 ) → 𝜃 )
───────────────────────────
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )

🟢️ Paso 2: imp32
wff 𝜑
wff 𝜓
wff 𝜒
wff 𝜃
⊢ ( 𝜑 → ( 𝜓 → ( 𝜒 → 𝜃 ) ) )
───────────────────────────
⊢ ( ( 𝜑 ∧ ( 𝜓 ∧ 𝜒 ) ) → 𝜃 )
✅️ Prueba correcta

anass

───────────────┤ TEOREMA anass ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
───────────────────────────────────────────
⊢ ( ( ( 𝜑 ∧ 𝜓 ) ∧ 𝜒 ) ↔ ( 𝜑 ∧ ( 𝜓 ∧ 𝜒 ) ) )

🟢️ Paso 1: id
wff ( 𝜑 ∧ ( 𝜓 ∧ 𝜒 ) )
───────────────────────────────────────────
⊢ ( ( 𝜑 ∧ ( 𝜓 ∧ 𝜒 ) ) → ( 𝜑 ∧ ( 𝜓 ∧ 𝜒 ) ) )

🟢️ Paso 2: anassrs
wff 𝜑
wff 𝜓
wff 𝜒
wff ( 𝜑 ∧ ( 𝜓 ∧ 𝜒 ) )
⊢ ( ( 𝜑 ∧ ( 𝜓 ∧ 𝜒 ) ) → ( 𝜑 ∧ ( 𝜓 ∧ 𝜒 ) ) )
───────────────────────────────────────────
⊢ ( ( ( 𝜑 ∧ 𝜓 ) ∧ 𝜒 ) → ( 𝜑 ∧ ( 𝜓 ∧ 𝜒 ) ) )

🟢️ Paso 3: id
wff ( ( 𝜑 ∧ 𝜓 ) ∧ 𝜒 )
───────────────────────────────────────────
⊢ ( ( ( 𝜑 ∧ 𝜓 ) ∧ 𝜒 ) → ( ( 𝜑 ∧ 𝜓 ) ∧ 𝜒 ) )

🟢️ Paso 4: anasss
wff 𝜑
wff 𝜓
wff 𝜒
wff ( ( 𝜑 ∧ 𝜓 ) ∧ 𝜒 )
⊢ ( ( ( 𝜑 ∧ 𝜓 ) ∧ 𝜒 ) → ( ( 𝜑 ∧ 𝜓 ) ∧ 𝜒 ) )
───────────────────────────────────────────
⊢ ( ( 𝜑 ∧ ( 𝜓 ∧ 𝜒 ) ) → ( ( 𝜑 ∧ 𝜓 ) ∧ 𝜒 ) )

🟢️ Paso 5: impbii
wff ( ( 𝜑 ∧ 𝜓 ) ∧ 𝜒 )
wff ( 𝜑 ∧ ( 𝜓 ∧ 𝜒 ) )
⊢ ( ( ( 𝜑 ∧ 𝜓 ) ∧ 𝜒 ) → ( 𝜑 ∧ ( 𝜓 ∧ 𝜒 ) ) )
⊢ ( ( 𝜑 ∧ ( 𝜓 ∧ 𝜒 ) ) → ( ( 𝜑 ∧ 𝜓 ) ∧ 𝜒 ) )
───────────────────────────────────────────
⊢ ( ( ( 𝜑 ∧ 𝜓 ) ∧ 𝜒 ) ↔ ( 𝜑 ∧ ( 𝜓 ∧ 𝜒 ) ) )
✅️ Prueba correcta

bitr4i

───────────────┤ TEOREMA bitr4i ├────────────────
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 ↔ 𝜓 )
⊢ ( 𝜒 ↔ 𝜓 )
───────────
⊢ ( 𝜑 ↔ 𝜒 )

🟢️ Paso 1: bicomi
wff 𝜒
wff 𝜓
⊢ ( 𝜒 ↔ 𝜓 )
───────────
⊢ ( 𝜓 ↔ 𝜒 )

🟢️ Paso 2: bitri
wff 𝜑
wff 𝜓
wff 𝜒
⊢ ( 𝜑 ↔ 𝜓 )
⊢ ( 𝜓 ↔ 𝜒 )
───────────
⊢ ( 𝜑 ↔ 𝜒 )
✅️ Prueba correcta

dfbi2

Demostración
───────────────┤ TEOREMA dfbi2 ├────────────────
wff 𝜑
wff 𝜓
───────────────────────────────────────────
⊢ ( ( 𝜑 ↔ 𝜓 ) ↔ ( ( 𝜑 → 𝜓 ) ∧ ( 𝜓 → 𝜑 ) ) )

🟢️ Paso 1: dfbi1
wff 𝜑
wff 𝜓
─────────────────────────────────────────────
⊢ ( ( 𝜑 ↔ 𝜓 ) ↔ ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) )

🟢️ Paso 2: df-an
wff ( 𝜑 → 𝜓 )
wff ( 𝜓 → 𝜑 )
─────────────────────────────────────────────────────────────
⊢ ( ( ( 𝜑 → 𝜓 ) ∧ ( 𝜓 → 𝜑 ) ) ↔ ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) )

🟢️ Paso 3: bitr4i
wff ( 𝜑 ↔ 𝜓 )
wff ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) )
wff ( ( 𝜑 → 𝜓 ) ∧ ( 𝜓 → 𝜑 ) )
⊢ ( ( 𝜑 ↔ 𝜓 ) ↔ ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) )
⊢ ( ( ( 𝜑 → 𝜓 ) ∧ ( 𝜓 → 𝜑 ) ) ↔ ¬( ( 𝜑 → 𝜓 ) → ¬( 𝜓 → 𝜑 ) ) )
─────────────────────────────────────────────────────────────
⊢ ( ( 𝜑 ↔ 𝜓 ) ↔ ( ( 𝜑 → 𝜓 ) ∧ ( 𝜓 → 𝜑 ) ) )
✅️ Prueba correcta

Otros teoremas necesarios

2025-01-25

Otros teoremas necesarios

Operador or

Empezamos con el operador ∨ y sus teoremas derivados

Este operador se define como (¬ 𝜑 → 𝜓). La fórmula (𝜑 ∨ 𝜓) se sustituye por la indicada

df-or

───────────────┤ TEOREMA df-or ├────────────────
wff 𝜑
wff 𝜓
────────────────────────────
⊢ ( ( 𝜑 ∨ 𝜓 ) ↔ ( ¬𝜑 → 𝜓 ) )

🟢️ Paso 1: wo
wff 𝜑
wff 𝜓
─────────────
wff ( 𝜑 ∨ 𝜓 )

🟢️ Paso 2: ax-th
wff ( ( 𝜑 ∨ 𝜓 ) ↔ ( ¬𝜑 → 𝜓 ) )
──────────────────────────────
⊢ ( ( 𝜑 ∨ 𝜓 ) ↔ ( ¬𝜑 → 𝜓 ) )
✅️ Prueba correcta

Teoremas intermedios

2025-01-26

Teoremas intermedios

Operaciones combinadas

True y False

Voy a empezar la implementación de las constantes True y False

Esta definición se basa en algunas otras definiciones necesarias para el cálculo de predicados, por tanto hay que implementar primero esas

La clave para desentrañar todo es estudiar el teorema tru (1545)

Lo voy a analizar primero con metamath:

MM> show statement tru /full
Statement 4227 is located on line 12324 of the file "obijuan.mm".  Its
statement number for HTML pages is 1543.
"The truth value ` T. ` is provable.  (Contributed by Anthony Hart,
       13-Oct-2010.)"
4227 tru $p |- T. $= ... $.
Its mandatory hypotheses in RPN order are:
  (None)
Its optional hypotheses are:  wph wps wch wth wta wet wze wsi wrh wmu wla wka
      vx.tru vy.tru
The statement and its hypotheses require the variables:  (None)
These additional variables are allowed in its proof:  ph ps ch th ta et ze si
      rh mu la ka x y
The variables it contains are:  (None)
MM> 

El teorema NO tiene ninguna hipótesis (ni teoremas ni variables), por eso dice None

Voy a la demostración completa

MM> show proof tru /all /lemmon
 1 wtru          $a wff T.
 2 vx.tru        $f setvar x
 3 2 cv          $a class x
 4 vx.tru        $f setvar x
 5 4 cv          $a class x
 6 3,5 wceq      $a wff x = x
 7 vx.tru        $f setvar x
 8 6,7 wal       $a wff A. x x = x
 9 vx.tru        $f setvar x
10 9 cv          $a class x
11 vx.tru        $f setvar x
12 11 cv         $a class x
13 10,12 wceq    $a wff x = x
14 vx.tru        $f setvar x
15 13,14 wal     $a wff A. x x = x
16 8,15 wi       $a wff ( A. x x = x -> A. x x = x )
17 vx.tru        $f setvar x
18 17 cv         $a class x
19 vx.tru        $f setvar x
20 19 cv         $a class x
21 18,20 wceq    $a wff x = x
22 vx.tru        $f setvar x
23 21,22 wal     $a wff A. x x = x
24 23 id         $p |- ( A. x x = x -> A. x x = x )
25 vx.tru        $f setvar x
26 25 df-tru     $a |- ( T. <-> ( A. x x = x -> A. x x = x ) )
27 1,16,24,26 mpbir  $p |- T.
MM>

La que aparece en la base de datos es esta:

tru $p |- T. $=
      wtru vx.tru cv vx.tru cv wceq vx.tru wal vx.tru cv vx.tru cv wceq vx.tru
      wal wi vx.tru cv vx.tru cv wceq vx.tru wal id vx.tru df-tru mpbir $.

Voy a representar esa demostración en la pila, para entenderla mejor

  • Paso 1: wtru
| (1) wff ⊤  |
|------------|
  • Paso 2: vx
| (2) setvar x |
| (1) wff ⊤    |
|--------------|
  • Paso 3: cv
| (3) class x  |
| (1) wff ⊤    |
|--------------|
  • Paso 4: vx
| (4) setvar x |
| (3) class x  |
| (1) wff ⊤    |
|--------------|
  • Paso 5: cv
| (5) class x |
| (3) class x  |
| (1) wff ⊤    |
|--------------|
  • Paso 6: wceq
| (6) wff x = x  |
| (1) wff ⊤      |
|----------------|
  • Paso 7: vx
| (7) setvar x   |
| (6) wff x = x  |
| (1) wff ⊤      |
|----------------|
  • Paso 8: wal
| (8) wff ∀𝑥x=x  |
| (1) wff ⊤      |
|----------------|
  • Paso 9: vx
| (9) setvar x   |
| (8) wff ∀𝑥x=x  |
| (1) wff ⊤      |
|----------------|
  • Paso 10: cv
| (10) class x   |
| (8) wff ∀𝑥x=x  |
| (1) wff ⊤      |
|----------------|
  • Pasos 11 y 12:
| (12) class x   |
| (10) class x   |
| (8) wff ∀𝑥x=x  |
| (1) wff ⊤      |
|----------------|
  • Paso 13: wceq
| (13) wff x=x   |
| (8) wff ∀𝑥x=x  |
| (1) wff ⊤      |
|----------------|
  • Paso 14:
| (14) setvar x  |
| (13) wff x=x   |
| (8) wff ∀𝑥x=x  |
| (1) wff ⊤      |
|----------------|
  • Paso 15:
| (15) wff ∀𝑥x=x  |
| (8)  wff ∀𝑥x=x  |
| (1)  wff ⊤      |
|-----------------|
  • Paso 16: wi
| (16)  wff ( ∀𝑥x=x → ∀𝑥x=x ) |
| (1)  wff ⊤                  |
|-----------------------------|
  • Paso 17 y 18: setvar y class
| (18) class x
| (16) wff ( ∀𝑥x=x → ∀𝑥x=x )  |
| (1)  wff ⊤                  |
|-----------------------------|
  • Paso 19 y 20: setvar y class
| (20) class x                |
| (18) class x                |
| (16) wff ( ∀𝑥x=x → ∀𝑥x=x )  |
| (1)  wff ⊤                  |
|-----------------------------|
  • Paso 21: wceq
| (21) wff x=x                |
| (16) wff ( ∀𝑥x=x → ∀𝑥x=x )  |
| (1)  wff ⊤                  |
|-----------------------------|
  • Paso 22: setvar
| (22) wff setvar             |
| (21) wff x=x                |
| (16) wff ( ∀𝑥x=x → ∀𝑥x=x )  |
| (1)  wff ⊤                  |
|-----------------------------|
  • Paso 23: wall
| (23) wff ( ∀𝑥x=x → ∀𝑥x=x )  |
| (16) wff ( ∀𝑥x=x → ∀𝑥x=x )  |
| (1)  wff ⊤                  |
|-----------------------------|
  • Paso 24: id
| (24) ⊢ ( ∀𝑥x=x → ∀𝑥x=x )    |
| (16) wff ( ∀𝑥x=x → ∀𝑥x=x )  |
| (1)  wff ⊤                  |
|-----------------------------|
  • Paso 25: setvar x
| (25) setvar x               |
| (24) ⊢ ( ∀𝑥x=x → ∀𝑥x=x )    |
| (16) wff ( ∀𝑥x=x → ∀𝑥x=x )  |
| (1)  wff ⊤                  |
|-----------------------------|
  • Paso 26: df-tru
| (26) ⊢ (⊤ ↔ (∀𝑥𝑥=𝑥 → ∀𝑥𝑥=𝑥))        |
| (24) ⊢ ( ∀𝑥x=x → ∀𝑥x=x )            |
| (16) wff ( ∀𝑥x=x → ∀𝑥x=x )          |
| (1)  wff ⊤                          |
|-------------------------------------|
  • Paso 27: mpbir
| (26) ⊢ ⊤ |
|----------|

Creo que ya lo entiendo un poquito mejor...

2025-01-27

wal

Vamos a implementar el para todo... wff ∀𝑥𝜑

───────────────┤ TEOREMA wal ├────────────────
wff 𝜑
setvar 𝑥
────────
wff ∀𝑥𝜑
✅️ Prueba correcta
[]

wceq

Ya tengo implementada la igualdad de clases!

───────────────┤ TEOREMA wceq ├────────────────
class 𝐴
class 𝐵
───────
wff 𝐴=𝐵
✅️ Prueba correcta

wtru

───────────────┤ TEOREMA wtru ├────────────────
─────
wff ⊤
✅️ Prueba correcta

df-tru

───────────────┤ TEOREMA df-tru ├────────────────
setvar 𝑥
───────────────────────────
⊢ ( ⊤ ↔ ( ∀𝑥𝑥=𝑥 → ∀𝑥𝑥=𝑥 ) )

🟢️ Paso 1: wtru
─────
wff ⊤

🟢️ Paso 2: vx
────────
setvar 𝑥

🟢️ Paso 3: cv
setvar 𝑥
────────
class 𝑥

🟢️ Paso 4: vx
────────
setvar 𝑥

🟢️ Paso 5: cv
setvar 𝑥
────────
class 𝑥

🟢️ Paso 6: wceq
class 𝑥
class 𝑥
───────
wff 𝑥=𝑥

🟢️ Paso 7: vx
────────
setvar 𝑥

🟢️ Paso 8: wal
wff 𝑥=𝑥
setvar 𝑥
─────────
wff ∀𝑥𝑥=𝑥

🟢️ Paso 9: vx
────────
setvar 𝑥

🟢️ Paso 10: cv
setvar 𝑥
────────
class 𝑥

🟢️ Paso 11: vx
────────
setvar 𝑥

🟢️ Paso 12: cv
setvar 𝑥
────────
class 𝑥

🟢️ Paso 13: wceq
class 𝑥
class 𝑥
───────
wff 𝑥=𝑥

🟢️ Paso 14: vx
────────
setvar 𝑥

🟢️ Paso 15: wal
wff 𝑥=𝑥
setvar 𝑥
─────────
wff ∀𝑥𝑥=𝑥

🟢️ Paso 16: ax-th
wff ( ⊤ ↔ ( ∀𝑥𝑥=𝑥 → ∀𝑥𝑥=𝑥 ) )
─────────────────────────────
⊢ ( ⊤ ↔ ( ∀𝑥𝑥=𝑥 → ∀𝑥𝑥=𝑥 ) )
✅️ Prueba correcta

Ya están eliminados los pasos básicos:

───────────────┤ TEOREMA df-tru ├────────────────
setvar 𝑥
───────────────────────────
⊢ ( ⊤ ↔ ( ∀𝑥𝑥=𝑥 → ∀𝑥𝑥=𝑥 ) )

🟢️ Paso 1: ax-th
wff ( ⊤ ↔ ( ∀𝑥𝑥=𝑥 → ∀𝑥𝑥=𝑥 ) )
─────────────────────────────
⊢ ( ⊤ ↔ ( ∀𝑥𝑥=𝑥 → ∀𝑥𝑥=𝑥 ) )
✅️ Prueba correcta

tru

───────────────┤ TEOREMA tru ├────────────────
───
⊢ ⊤

🟢️ Paso 1: id
wff ∀𝑥𝑥=𝑥
───────────────────
⊢ ( ∀𝑥𝑥=𝑥 → ∀𝑥𝑥=𝑥 )

🟢️ Paso 2: df-tru
setvar 𝑥
───────────────────────────
⊢ ( ⊤ ↔ ( ∀𝑥𝑥=𝑥 → ∀𝑥𝑥=𝑥 ) )

🟢️ Paso 3: mpbir
wff ⊤
wff ( ∀𝑥𝑥=𝑥 → ∀𝑥𝑥=𝑥 )
⊢ ( ∀𝑥𝑥=𝑥 → ∀𝑥𝑥=𝑥 )
⊢ ( ⊤ ↔ ( ∀𝑥𝑥=𝑥 → ∀𝑥𝑥=𝑥 ) )
───────────────────────────
⊢ ⊤
✅️ Prueba correcta

False

───────────────┤ TEOREMA df-fal ├────────────────
────────────
⊢ ( ⊥ ↔ ¬⊤ )

🟢️ Paso 1: ax-th
wff ( ⊥ ↔ ¬⊤ )
──────────────
⊢ ( ⊥ ↔ ¬⊤ )
✅️ Prueba correcta

Tabla de verdad: →

Teoremas para expresar la tabla de verdad de la implicación

───────────────┤ TEOREMA truimtru ├────────────────
───────────────────
⊢ ( ( ⊤ → ⊤ ) ↔ ⊤ )

🟢️ Paso 1: id
wff ⊤
───────────
⊢ ( ⊤ → ⊤ )

🟢️ Paso 2: bitru
wff ( ⊤ → ⊤ )
⊢ ( ⊤ → ⊤ )
───────────────────
⊢ ( ( ⊤ → ⊤ ) ↔ ⊤ )
✅️ Prueba correcta
───────────────┤ TEOREMA truimfal ├────────────────
───────────────────
⊢ ( ( ⊤ → ⊥ ) ↔ ⊥ )

🟢️ Paso 1: trut
wff ⊥
───────────────────
⊢ ( ⊥ ↔ ( ⊤ → ⊥ ) )

🟢️ Paso 2: bicomi
wff ⊥
wff ( ⊤ → ⊥ )
⊢ ( ⊥ ↔ ( ⊤ → ⊥ ) )
───────────────────
⊢ ( ( ⊤ → ⊥ ) ↔ ⊥ )
✅️ Prueba correcta
───────────────┤ TEOREMA falimtru ├────────────────
───────────────────
⊢ ( ( ⊥ → ⊤ ) ↔ ⊤ )

🟢️ Paso 1: trud
wff ⊥
───────────
⊢ ( ⊥ → ⊤ )

🟢️ Paso 2: bitru
wff ( ⊥ → ⊤ )
⊢ ( ⊥ → ⊤ )
───────────────────
⊢ ( ( ⊥ → ⊤ ) ↔ ⊤ )
✅️ Prueba correcta
───────────────┤ TEOREMA falimtru ├────────────────
───────────────────
⊢ ( ( ⊥ → ⊤ ) ↔ ⊤ )

🟢️ Paso 1: trud
wff ⊥
───────────
⊢ ( ⊥ → ⊤ )

🟢️ Paso 2: bitru
wff ( ⊥ → ⊤ )
⊢ ( ⊥ → ⊤ )
───────────────────
⊢ ( ( ⊥ → ⊤ ) ↔ ⊤ )
✅️ Prueba correcta

2025-01-28

Tabla de verdad: ¬

───────────────┤ TEOREMA nottru ├────────────────
wff 𝜑
────────────
⊢ ( ¬⊤ ↔ ⊥ )

🟢️ Paso 1: df-fal
────────────
⊢ ( ⊥ ↔ ¬⊤ )

🟢️ Paso 2: bicomi
wff ⊥
wff ¬⊤
⊢ ( ⊥ ↔ ¬⊤ )
────────────
⊢ ( ¬⊤ ↔ ⊥ )
✅️ Prueba correcta
───────────────┤ TEOREMA notfal ├────────────────
────────────
⊢ ( ¬⊥ ↔ ⊤ )

🟢️ Paso 1: fal
────
⊢ ¬⊥

🟢️ Paso 2: bitru
wff ¬⊥
⊢ ¬⊥
────────────
⊢ ( ¬⊥ ↔ ⊤ )
✅️ Prueba correcta

Tabla de verdad: ↔

───────────────┤ TEOREMA trubitru ├────────────────
───────────────────
⊢ ( ( ⊤ ↔ ⊤ ) ↔ ⊤ )

🟢️ Paso 1: biid
wff ⊤
───────────
⊢ ( ⊤ ↔ ⊤ )

🟢️ Paso 2: bitru
wff ( ⊤ ↔ ⊤ )
⊢ ( ⊤ ↔ ⊤ )
───────────────────
⊢ ( ( ⊤ ↔ ⊤ ) ↔ ⊤ )
✅️ Prueba correcta
───────────────┤ TEOREMA falbitru ├────────────────
───────────────────
⊢ ( ( ⊥ ↔ ⊤ ) ↔ ⊥ )

🟢️ Paso 1: tbtru
wff ⊥
───────────────────
⊢ ( ⊥ ↔ ( ⊥ ↔ ⊤ ) )

🟢️ Paso 2: bicomi
wff ⊥
wff ( ⊥ ↔ ⊤ )
⊢ ( ⊥ ↔ ( ⊥ ↔ ⊤ ) )
───────────────────
⊢ ( ( ⊥ ↔ ⊤ ) ↔ ⊥ )
✅️ Prueba correcta
───────────────┤ TEOREMA falbitru ├────────────────
───────────────────
⊢ ( ( ⊥ ↔ ⊤ ) ↔ ⊥ )

🟢️ Paso 1: tbtru
wff ⊥
───────────────────
⊢ ( ⊥ ↔ ( ⊥ ↔ ⊤ ) )

🟢️ Paso 2: bicomi
wff ⊥
wff ( ⊥ ↔ ⊤ )
⊢ ( ⊥ ↔ ( ⊥ ↔ ⊤ ) )
───────────────────
⊢ ( ( ⊥ ↔ ⊤ ) ↔ ⊥ )
✅️ Prueba correcta
───────────────┤ TEOREMA falbifal ├────────────────
───────────────────
⊢ ( ( ⊥ ↔ ⊥ ) ↔ ⊤ )

🟢️ Paso 1: biid
wff ⊥
───────────
⊢ ( ⊥ ↔ ⊥ )

🟢️ Paso 2: bitru
wff ( ⊥ ↔ ⊥ )
⊢ ( ⊥ ↔ ⊥ )
───────────────────
⊢ ( ( ⊥ ↔ ⊥ ) ↔ ⊤ )
✅️ Prueba correcta

Tabla de verdad: ∧

───────────────┤ TEOREMA truantru ├────────────────
───────────────────
⊢ ( ( ⊤ ∧ ⊤ ) ↔ ⊤ )

🟢️ Paso 1: anidm
wff ⊤
───────────────────
⊢ ( ( ⊤ ∧ ⊤ ) ↔ ⊤ )
✅️ Prueba correcta
───────────────┤ TEOREMA truanfal ├────────────────
───────────────────
⊢ ( ( ⊤ ∧ ⊥ ) ↔ ⊥ )

🟢️ Paso 1: truan
wff ⊥
───────────────────
⊢ ( ( ⊤ ∧ ⊥ ) ↔ ⊥ )
✅️ Prueba correcta
───────────────┤ TEOREMA falantru ├────────────────
───────────────────
⊢ ( ( ⊥ ∧ ⊤ ) ↔ ⊥ )

🟢️ Paso 1: fal
────
⊢ ¬⊥

🟢️ Paso 2: intnanr
wff ⊥
wff ⊤
⊢ ¬⊥
────────────
⊢ ¬( ⊥ ∧ ⊤ )

🟢️ Paso 3: bifal
wff ( ⊥ ∧ ⊤ )
⊢ ¬( ⊥ ∧ ⊤ )
───────────────────
⊢ ( ( ⊥ ∧ ⊤ ) ↔ ⊥ )
✅️ Prueba correcta
───────────────┤ TEOREMA falanfal ├────────────────
───────────────────
⊢ ( ( ⊥ ∧ ⊥ ) ↔ ⊥ )

🟢️ Paso 1: anidm
wff ⊥
───────────────────
⊢ ( ( ⊥ ∧ ⊥ ) ↔ ⊥ )
✅️ Prueba correcta

Tabla de verdad: ∨

───────────────┤ TEOREMA truortru ├────────────────
───────────────────
⊢ ( ( ⊤ ∨ ⊤ ) ↔ ⊤ )

🟢️ Paso 1: oridm
wff ⊤
───────────────────
⊢ ( ( ⊤ ∨ ⊤ ) ↔ ⊤ )
✅️ Prueba correcta
───────────────┤ TEOREMA truorfal ├────────────────
───────────────────
⊢ ( ( ⊤ ∨ ⊥ ) ↔ ⊤ )

🟢️ Paso 1: tru
───
⊢ ⊤

🟢️ Paso 2: orci
wff ⊤
wff ⊥
⊢ ⊤
───────────
⊢ ( ⊤ ∨ ⊥ )

🟢️ Paso 3: bitru
wff ( ⊤ ∨ ⊥ )
⊢ ( ⊤ ∨ ⊥ )
───────────────────
⊢ ( ( ⊤ ∨ ⊥ ) ↔ ⊤ )
✅️ Prueba correcta
───────────────┤ TEOREMA falortru ├────────────────
───────────────────
⊢ ( ( ⊥ ∨ ⊤ ) ↔ ⊤ )

🟢️ Paso 1: tru
───
⊢ ⊤

🟢️ Paso 2: olci
wff ⊤
wff ⊥
⊢ ⊤
───────────
⊢ ( ⊥ ∨ ⊤ )

🟢️ Paso 3: bitru
wff ( ⊥ ∨ ⊤ )
⊢ ( ⊥ ∨ ⊤ )
───────────────────
⊢ ( ( ⊥ ∨ ⊤ ) ↔ ⊤ )
✅️ Prueba correcta
───────────────┤ TEOREMA falorfal ├────────────────
───────────────────
⊢ ( ( ⊥ ∨ ⊥ ) ↔ ⊥ )

🟢️ Paso 1: oridm
wff ⊥
───────────────────
⊢ ( ( ⊥ ∨ ⊥ ) ↔ ⊥ )
✅️ Prueba correcta

Con esto tengo ya lista TODA la lógica proposicional... lo siguiente será la lógica de predicados, pero cuando tenga otro slot de tiempo

🚧️ TODO 🚧️

Clone this wiki locally