José Ángel Rojas Romero

Sobre el pensamiento del
Dr. Claudio Gutiérrez Carranza.
Un algoritmo de Inteligencia Artificial para probar teoremas de lógica de cuantificación uniforme

Resumen: Además de un recorrido por el pensamiento filosófico de Claudio Gutiérrez, el presente artículo se presenta una aplicación de un algoritmo para prueba automática de teoremas que fue realizada como parte del curso Lógica y Cibernética, impartido por Claudio Gutiérrez en 1971 y cuyo propósito de aplicación era probar el teorema denominado Holiday Venture. Gutiérrez, en Un algoritmo de inteligencia artificial describe el mencionado algoritmo con tres variantes, pero una de esas variantes, llamada de Orientación Empírica, no fue implementada en un programa. En el presente artículo se muestra la aplicación de dicha variante.

Palabras clave: variante de orientación empírica, inteligencia artificial, filosofía costarricense, lógica, cibernética.

Abstract: In addition to an overview of Claudio Gutiérrez’s philosophical thought, this article presents an application of an algorithm for automatic theorem proof that was carried out as part of the Logic and Cybernetics course, taught by Claudio Gutiérrez in 1971 and whose purpose of application was to prove the theorem called Holiday Venture. Gutiérrez, in An Artificial Intelligence Algorithm, describes the aforementioned algorithm with three variants, but one of those variants, called Empirical Orientation, was not implemented in a program. This article shows the application of this variant.

Keywords: empirical orientation variant, artificial intelligence, Costa-Rican philosophy, logics, cybernetics.

Introducción

En la guía de horarios para el semestre de 1971 apareció un curso de la Escuela de Filosofía de la Universidad de Costa Rica que sería impartido por el Dr. Claudio Gutiérrez Carranza para el programa del Doctorado Académico de esa escuela y que se titulaba «F-914 Seminario Doctoral: Lógica y Cibernética». Este curso era anual (abarcaba dos semestres).

En ese momento, 1971, la Universidad de Costa Rica poseía un solo computador que había adquirido por medio de un convenio con la IBM, firmado en setiembre de 1966 e instalado en octubre de 1968 en la Facultad de Ingeniería. Era de la serie 1620 y fue conocido como «Matilde».

Comparado con los equipos de cómputo de hoy, nos puede parecer que «Matilde» era como un juguete, pero lo cierto es que era con lo que se contaba en ese momento en toda la Universidad.

Parte de los objetivos de este Seminario era experimentar la capacidad real de un computador de probar teoremas de lógica. Para lograr esto había que aprender a comunicarse con esta máquina y luego determinar qué teoremas podríamos probar en ella.

En la Universidad de Costa Rica, en ese momento, no se impartía ninguna carrera de Informática. Lo más cercano era algún curso sobre el lenguaje Fortran de la Facultad de Ingeniería en donde estaba ubicada «Matilde». No fue sino hasta el 26 de noviembre de 1973 que el Consejo Universitario, en su sesión 1980, tomó el acuerdo de crear el Centro de Informática, que tendría a su cargo impartir esta carrera.

En el año 1971 ya se tenía alguna familiaridad con las tarjetas perforadas, pues era el medio que se utilizaba para realizar la matrícula en la Universidad.

En el presente artículo presentaremos una aplicación de un algoritmo para prueba automática de teoremas que fue realizada como parte del citado curso. El propósito de dicha aplicación era probar el teorema denominado Holiday Venture, el cual fue formulado por W.V.O. Quine (1960). En Gutiérrez (1974) se describe el mencionado algoritmo con tres variantes, pero una de esas variantes, llamada de Orientación Empírica, no fue implementada en un programa. En el presente artículo se muestra la aplicación de dicha variante.

El problema de Holiday Venture consiste en realizar la demostración del siguiente teorema:

Primera premisa:

Segunda premisa:

Cambiando el condicional por una disyunción, la segunda premisa puede ser expresada del siguiente modo:

El objetivo del problema es demostrar que de las premisas se sigue la siguiente conclusión:

Conclusión:

En el lenguaje ordinario, este razonamiento podría representarse de la siguiente forma:

Variables proposicionales:

F = ángel

G = espíritu

H = mortal

Primera premisa: «algún ángel es mortal y no es espíritu, o algún ángel no es mortal».

Segunda premisa: «todos los ángeles son mortales o todos los ángeles son espíritus».

Conclusión: «algún ángel es espíritu y no es mortal, o algún ángel no es espíritu y es mortal».

Sobre el algoritmo y su implementación

Tomando como base y como guía el algoritmo presentado por Gutiérrez (1974), se programó en el lenguaje ensamblador del computador IBM-1620 (Matilde), con las variantes correspondientes a la «orientación empírica».

Dada la diferencia con los sistemas actuales resulta relevante describir brevemente algunos detalles sobre el funcionamiento de «Matilde»:

a. Memoria: corresponde al espacio del computador donde se almacenan las instrucciones que debe seguir, los datos sobre los que debe interactuar y los resultados que se van produciendo. Para almacenar un dígito numérico (por ejemplo: 9) se requiere un «byte», resultando este término como la unidad de la capacidad de la memoria de un computador. En el caso de «Matilde», su capacidad de memoria era de 40.000 bytes (por tanto, se podían almacenar hasta 40,000 dígitos numéricos).

b. Dirección: es la ubicación de un dato o una instrucción en la memoria.

c. Datos: se presentan de la siguiente forma:

• Dígito: ocupa un solo byte.

• Campo: ocupa dos a más bytes; se direcciona a su dígito más a la derecha y su límite está marcado por una «bandera» (marca especial) sobre el dígito extremo izquierdo del dato registrado. 

• Registro: ocupa dos a más bytes; se direcciona a su dígito más a la izquierda y su límite está indicado con una marca de registro (@) como dígito más a la derecha. Un registro puede contener varios campos y cada uno de ellos puede ser de diferente tamaño.

d. Instrucción: orden girada al computador para ejecutar una acción.

e. Programa: conjunto de instrucciones para obtener un resultado.

f. Lenguaje: conocimos dos lenguajes: lenguaje de máquina y lenguaje ensamblador.

• Lenguaje de máquina: es en realidad el único que la máquina puede interpretar directamente;

Cada instrucción requiere de 12 bytes, con el siguiente formato:

Cuando el computador inicia la ejecución de un programa, al terminar su primera instrucción, busca la siguiente 12 bytes adelante, y así sucesivamente hasta el momento que alguna de las instrucciones lo dirija a otro punto del programa. 

• Lenguaje ensamblador: lenguaje que utiliza códigos mnemotécnicos para las operaciones y direcciones simbólicas para los operandos. Un programa escrito en lenguaje ensamblador, antes de ser ejecutado, debía traducirse al lenguaje de máquina por medio de otro programa previamente instalado en el mismo computador.

El sistema lógico

En 1974, el Dr. Claudio Gutiérrez Carranza, publicó en esta revista un artículo titulado «Un Algoritmo de Inteligencia Artificial», en el cual algunos de los temas abordados habían sido considerados en el Seminario Doctoral de Lógica y Cibernética mencionado anteriormente, impartido tres años antes. El Dr. Gutiérrez (1974) después de referirse brevemente a la historia de la Inteligencia Artificial. (5) realiza una clasificación de los distintos tópicos tratados por esta disciplina en los años 70 (6): solución de problemas, reconocimiento de formas (visuales y auditivas), almacenamiento y readquisición de la información y manejo de lenguajes naturales u ordinarios. El objetivo era enseñar al computador IBM 1620 a probar teoremas de lógica de cuantificación uniforme de primer orden.

A continuación, se describe el sistema lógico utilizado por Gutiérrez (1974) para hacer la representación en el computador:

1. Notación

1.1 Libertad de paréntesis

• Se adoptó la notación polaca, en que las fórmulas son filas de símbolos diádicos, monádicos o básicos.

• El sistema diádico, al aparecer en una fila de izquierda a derecha, necesita completarse con dos subfórmulas completas inmediatas y consecutivas.

• El símbolo monádico necesita completarse con una subfórmula completa que le siga inmediatamente.

• El símbolo básico es una fórmula completa y satisface las necesidades de los functores diádicos y monádicos que le puedan anteceder.

1.2 Símbolos para la disyunción, la cuantificación existencial y las formas y funciones proposicionales

• Los símbolos F, G, y H se utilizan para representar formas proposicionales o funciones proposicionales de una variable, que queda implícita en la notación.

• El símbolo A (por Alternativa) se utiliza como conectiva de disyunción; este es un símbolo diádico.

• El símbolo E (por Existencia) se utiliza para representar el cuantificador existencial, con la variable también implícita; este es un símbolo monádico.

• Para explicar la forma de representar la conjunción y el cuantificador universal se requiere ver antes cómo se representa la negación.

Negación digital

• Como ejemplo, la proposición «político» puede expresarse como «+F»; y su negación «no-polìtico» como «-F».

• La disyunción «político u honesto» se representa como «+A+F+G», en donde «+A» es el símbolo para la disyunción, «+F» representa «político» y «+G» representa «honesto». Su negación, de acuerdo con las leyes de De Morgan, sería «no-político y no-honesto» y se representa «-A-F-G», en donde «-A» es el símbolo para la conjunción, «-F» representa «no-político» y «-G» representa «no-honesto».

• La cuantificación universal «Algunos políticos son honestos» se representa como «+E-A+F+G» en donde «+E» es el símbolo para la cuantificación existencial, «-A» representa la conjunción, «+F» representa el predicado «político» y «+G» representa el predicado «honesto». Esta expresión también puede leerse «de algún x se dice que es político y es honesto». La negación de esta expresión es «ningún político es honesto», equivalente a «todos los políticos son no-honestos», se representa como «-E+A-F-G», en donde «-E» es el símbolo para la cuantificación universal, «+A» representa la disyunción, «-F» representa el predicado «no-político» y «-G» representa el predicado «no-honesto»

• Así como la cuantificación existencial está asociada con la conjunción, la cuantificación universal está asociada con la disyunción. Esta última se expresa en términos más bien de condicional: «de todos los x se dice que si son políticos son no-honestos. El condicional «si son políticos son no-honestos» es equivalente a la disyunción «o son no-políticos o son no-honestos»; de ahí la expresión: «-E+A-F-G».

En resumen:

+F: símbolo básico que representa una forma o función proposicional.

-F: negación de la anterior.

+A+F+G: disyunción (+A) de dos formas proposicionales (+F y +G).

-A-F-G: conjunción (-A) de dos formas proposicionales (-F y -G).

+E-A-F-G: cuantificación existencial (+E) de una conjunción (-A-F-G).

-E+A+F+G: cuantificación universal (-E) de una disyunción (+A+F+G).

2. Reglas estructurales

2.1 Regla de premisas

Para la demostración de teoremas de lógica de cuantificación uniforme se empleó un sistema de niveles (nivel 0, 1, 2, …). Cada nivel a su vez se subdivide en 2 subniveles (por ejemplo, +3 y -3). La negación de la conclusión y las premisas originales, si las hubiere, constituyen la población inicial del campo principal de prueba o nivel cero y representan las formas de enunciado que van a ser examinadas desde el punto de vista de su compatibilidad. En caso de que su desarrollo obtenga una contradicción, la conclusión puede válidamente inferirse del subconjunto formado por las premisas.

Todo campo de prueba puede bifurcarse mediante la creación de una fórmula bien formada y su negación, puestas cada una como población única de uno de las campos secundarios o subniveles abiertos por la bifurcación de la prueba.

Se llaman subniveles gemelos a los que constituyen cada campo secundario abierto, uno con signo positivo y el otro con signo negativo. En tal caso, toda la población del campo antecedente es activa dentro de cada una de las ramas de la bifurcación, pero la fórmula creada en uno de los subniveles no será activa en la otra rama de la bifurcación, ni tampoco en el campo subordinante de ambos.

Como principio de prueba no se permite abrir subniveles sobre subniveles negativos.

Que una fórmula sea activa querrá decir que se puede contar con ella a la hora de aplicar las reglas de transformación: una fórmula A será activa sobre una fórmula B si y sólo si A y B se encuentran dentro de una misma rama de prueba, siendo el nivel B no inferior al nivel A.

2.2 Regla de refutación

Si dos fórmulas contradictorias entre sí llegan a coexistir en el mismo campo, en el sentido de que ambas son activas en él, ese campo se dirá refutado.

Si dos campos gemelos están refutados, refutan por ese mismo hecho el campo antecedente inmediato (el campo que se bifurcó para darles origen).

Si el campo principal o nivel cero de la prueba es refutado, la incompatibilidad entre la negación de la conclusión y las premisas originales ha sido hallada y, por lo tanto, el teorema ha quedado demostrado: la conclusión puede inferirse válidamente de las premisas originales.

3. Reglas de transformación

3.1. Conjunción:

Se puede introducir un functor diádico (conectiva de conjunción) con la función de unir dos fórmulas preexistentes activas entre sí. El resultado de la aplicación de esta regla será una fórmula nueva conjuntiva que comenzará a existir en el nivel o subnivel de la fórmula base de la aplicación. Ejemplo: las fórmulas «+F» y «+G» pueden unirse válidamente por medio del functor de la conjunción, originan la fórmula «-A+F+G».

3.2 Cuantificación Universal:

Se puede introducir un functor monádico (el cuantificador universal) con la función de generalizar una fórmula preexistente. Esta regla solamente puede aplicarse en una línea continua de prueba: si se ha aplicado en una rama de la prueba no puede aplicarse en la rama opuesta. Ejemplo: a la fórmula «+A+F+G» puede agregársele válidamente el functor de cuantificación universal, dando origen a la fórmula «-E+A+F+G».

3.3 Simplificación

Se puede eliminar un functor diádico (la conjunción) reproduciendo las fórmulas que el functor une como fórmulas independientes. El resultado de la aplicación de esta regla será dos fórmulas nuevas que comenzarán a existir en el nivel o subnivel de la fórmula base de la aplicación. Ejemplo: a la fórmula «-A+F+G» se le puede eliminar válidamente el functor «-A», dando origen a las fórmulas «+F» y «+G».

3.4 Ejemplificación universal

Se puede eliminar un functor monádico (el cuantificador universal) reproduciendo el radical de la fórmula base como fórmula independiente, desprovista del cuantificador. El resultado de la aplicación d esta regla será una nueva fórmula que comenzará a existir en el nivel o subnivel de la fórmula base de la aplicación. Ejemplo: a la fórmula «-E+A+F+G» se le puede eliminar válidamente el functor «-E», dando origen a la fórmula «+A+F+G».

4. Representación en lenguaje de máquina

Para representar cada uno de los símbolos anteriormente señalados, se utilizaron los siguientes en el lenguaje de máquina:

Como se puede notar fácilmente, cada símbolo y su contrario se complementan a 9. Para negar una fórmula solamente se complemente a nueve cada uno de sus componentes. Por ejemplo: la fórmula «+E-A+F+G» (Algunos políticos son honestos) se representa como «0823»; su negación «-E+A-F-G» (Todos los políticos son no-honestos) es «9176».

Esta codificación viene a ser una restricción pues limita las variables proposicionales o de predicados a solamente tres. Sin embargo, para efectos de probar el «Holyday Venture» de Quine esa cantidad es suficiente.

Demostración del «Holiday Venture»

Para la demostración se empleó la siguiente representación simbólica del problema:

Primera premisa:

+A+E-A-A+F+G-H+E-A+F-G

Segunda premisa:

+A-E+A-F+G-E+A-F+H

Conclusión:

+A+E-A-A+F+H-G+E-A+F-A-H+G

A continuación, se describe la forma como el algoritmo funciona en forma general, pero tomando como ejemplo la prueba del «Holiday Venture».

a. Introducción de la conclusión: la conclusión se introduce primero, utilizando los símbolos ya descritos, con lo cual se representaría de la siguiente forma: +A+E-A-A+F+H-G+E-A+F-A-H+G.

Esta fórmula se toma y se obtiene su contradictoria, para registrarla en el nivel 0 como una premisa más, quedando de la siguiente forma: 

b. Introducción de las premisas: las dos premisas se introducen a continuación, quedando registradas igualmente en el nivel 0:

El objetivo de la prueba es lograr dos fórmulas contradictorias en el nivel 0, con lo que este nivel quedaría «refutado», según la regla 2, demostrándose con ello la validez de tal razonamiento.

A esta altura de la prueba, con tres fórmulas ya registradas, no se ha detectado aún contradicción alguna.

4. Derivación de fórmulas

El siguiente paso consiste en aplicar reglas válidas a las tres fórmulas existentes en el nivel 0, para derivar de ellas otras fórmulas.

a. Fórmula (0001): dado que es una conjunción, por la regla 4a (de simplificación) se derivan las siguientes dos fórmulas:

b. Fórmula (0004): dado que es una cuantificación universal, por la regla 4b (ejemplificación universal), se deriva la siguiente fórmula:

c. Fórmula (0005): dado que es una cuantificación universal, por la regla 4b (ejemplificación universal), se deriva la siguiente fórmula:

Sobre las fórmulas (0002), (0003), (0006) y (0007) no se pueden aplicar reglas válidas para derivar fórmulas, dado que son cuantificaciones existenciales.

La lista de fórmulas registradas a este punto de la prueba, son las siguientes:

5. Identificación de Hipótesis Atinentes

Las hipótesis atinentes se obtienen mediante la aplicación de pseudo-reglas sobre las fórmulas originales y la aplicación de reglas y pseudo-reglas sobre las fórmulas derivadas de ellas. De resultar alguna fórmula ya considerada antes, no se tomará en cuenta.

a. Fórmula (0001): ya fue tratada anteriormente.

b. Fórmula (0002): por ser una disyunción, se le aplica la pseudo-simplificación, dando origen a las siguientes dos fórmulas:

c. Fórmula (0003): por ser una disyunción, se le aplica la pseudo-simplificación, dando origen a las siguientes dos fórmulas:

d. Fórmula (0004): ya fue tratada anteriormente.

e. Fórmula (0005): ya fue tratada anteriormente.

f. Fórmula (0006): por ser una disyunción, se le aplica la pseudo-simplificación, dando origen a las siguientes dos fórmulas:

g. Fórmula (0007): por ser una disyunción, se le aplica la pseudo-simplificación, dando origen a las siguientes dos fórmulas:

h. Fórmula (0008): por ser una cuantificación existencial, se le aplica la pseudo-ejemplificación-existencial, dando origen a la siguiente fórmula:

i. Fórmula (0009): por ser una cuantificación existencial, se le aplica la pseudo-ejemplificación-universal, dando origen a la siguiente fórmula:

j. Fórmula (0010): por ser una cuantificación universal, se le aplica la regla 4b (ejemplificación universal), dando origen a la siguiente fórmula:

k. Fórmula (0011): por ser una disyunción, se le aplica la pseudo-simplificación, dando origen a las siguientes dos fórmulas:

l. Fórmula (0012): no se considera por consistir de un símbolo básico.

m. Fórmula (0013): no se considera por consistir de un símbolo básico.

n. Fórmula (0014): por ser una disyunción, se le aplica la pseudo-simplificación, dando origen a las siguientes dos fórmulas:

-H se ignora por ser la contradictoria de la (0018).
-G se ignora por ser idéntica a la (0012).

o. Fórmula (0015): por ser una conjunción, se le aplica la regla 4a (simplificación), dando origen a las siguientes dos fórmulas:

-G se ignora por ser la contradictoria de la (0013).
+F se ignora por ser la contradictoria de la (0012).

p. Fórmula (0016): por ser una conjunción, se le aplica la regla 4a (simplificación), dando origen a las siguientes dos fórmulas:

q. Fórmula (0017): por ser una disyunción, se le aplica la pseudo-simplificación, dando origen a las siguientes dos fórmulas:

+H   se ignora por ser idéntica a la (0018).
-F   se ignora por ser idéntica a la (0012).

r . Fórmula (0018): no se consiera por consistir de un símbolo básico.

s. Fórmula (0019): por ser una conjunción, se le aplica la regla 4a (simplificación), dando origen a las siguientes dos fórmulas:

+G   se ignora por ser idéntica a la (0013).
+F   se ignora por ser la contradictoria de la (0012).

De esta forma, se ha obtenido un total de 12 fórmulas que pueden utilizarse como hipótesis atinentes, con sus contradictorias, para continuar la prueba, a saber:

Número   Nivel   Fórmula Procedencia Regla

  (0008)        (0)    +E-A+F-G (0002) (0002) Pseudo-simplificación

  (0009)        (0)    +E-A-A+F+G-H (0002) (0002) Pseudo-simplificación

  (0010)        (0)     -E+A-F+H (0003) (0003) Pseudo-simplificación

  (0011)        (0)    +A+H-G (0006) (0006) Pseudo-simplificación

  (0012)        (0)     -F (0006) (0006) Pseudo-simplificación

  (0013)        (0)    +G (0007) (0007) Pseudo-simplificación

  (0014)        (0)    +A-F-H (0007) (0007) Pseudo-simplificación

  (0015)        (0)     -A+F-G (0008) (0008) Pseudo-ejemplific.-existencial

  (0016)        (0)     -A-A+F+G-H (0009) (0009) Pseudo-ejemplific.-existencial

  (0017)        (0)    +A-F+H (0010) (0010) Ejemplificación-universal

  (0018)        (0)    +H (0011) (0011) Pseudo-simplificación

  (0019)        (0)     -A+F+G   (0016) (0016) Simplificación

Hipótesis atinentes:0

+E-A+F-G 13. +A-F-H

-E+A-F+G 14. -A+F+H

+E-A-A+F+G-H 15. -A+F-G

-E+A+A-F-G+H 16. +A-F+G

-E+A-F+H 17. -A-A+F+G-H

+E-A+F-H 18. +A+A-F-G+H

+A+H-G 19. +A-F+H

-A-H+G 20. -A+F-H

-F 21. +H

+F 22. -H

+G 23. -A+F+G

-G 24. +A-F-G

6. Procedimiento para la apertura de nivelesV

Al iniciar las pruebas en un nuevo nivel, se habilitan las 24 hipótesis, una por una. Se abre el subnivel positivo con una de ellas y el subnivel negativo con su contradictoria.  Estos dos subniveles complementarios se abren siempre sobre el subnivel positivo inmediato inferior; ejemplo: los subniveles +4 y -4 deberán ser abiertos sobre el nivel +3 y no sobre el -3.

Para abrir un nivel (del segundo en adelante) deberá utilizarse en el nivel inmediato inferior una hipótesis que ya haya generado una refutación en el subnivel negativo; ejemplo: para abrir el nivel 2, deberá utilizarse en el nivel 1 una hipótesis que ya haya generado la refutación del subnivel -1; y luego, para abrir el nivel 3, deberá utilizarse en el nivel 2 una hipótesis que ya haya generado la refutación del subnivel -2; y así sucesivamente.

Las fórmulas de los subniveles inferiores positivos y las del nivel 0 quedan activas sobre ambos subniveles recién abiertos, para combinarlas entre sí, utilizando únicamente reglas válidas. Las fórmulas resultantes quedan registradas en el subnivel correspondiente recién abierto, pudiendo ser utilizadas para la aplicación de reglas válidas.

Las fórmulas del subnivel positivo en cuestión no son activas sobre el subnivel negativo, ni viceversa; ejemplo: las fórmulas del subnivel +3 no son activas sobre el subnivel -3, ni las del subnivel -3 son activas sobre el subnivel +3.

Si se llegara a producir en el subnivel negativo dos fórmulas contradictorias entre sí, esto decretaría la «refutación» de ese subnivel. Al ocurrir esto, se sumaría 1 punto a la respectiva hipótesis utilizada en la apertura de ese subnivel y a todas las hipótesis utilizadas en esa línea de prueba en los niveles inferiores.

Si se llegare a producir la refutación de ambos subniveles con base en una solo hipótesis utilizada en la apertura de los mismos, esto provocaría la refutación del subnivel positivo inmediato inferior sobre el cual fueron abiertos estos dos subniveles; ejemplo: si se refutan simultáneamente los subniveles +4 y -4, esto provocaría la refutación del subnivel +3.

Como en todos los niveles inferiores, el subnivel negativo ya fue refutado, esto origina una acción en cadena hasta desembocar en nivel 0, refutándose también, lográndose de este modo demostrar la validez del razonamiento en cuestión.

Al agotar en un determinado nivel el análisis de las hipótesis (24 en este caso), se dejará únicamente aquellas que resultaron fértiles en este nivel, es decir, las que lograron obtener un punto por la refutación del subnivel negativo; las demás hipótesis serán eliminadas por estériles.

De no darse hipótesis fértiles, se da por concluida la prueba declarándose el razonamiento como inválido. 

7. Secuencia de la prueba del «Holiday Venture»

7.1 Nivel 0

En este nivel quedan activas las premisas, la contradictoria de la conclusión y las fórmulas derivadas de ellas por la aplicación de reglas válidas.

7.2 Nivel 1

Al hacer el primer recorrido en el nivel 1, se tomaron en cuenta las 24 hipótesis, habiendo detectado fertilidad solamente en la hipótesis número 18, la cual produjo una refutación en el subnivel -1, de la siguiente manera (se incluyen todas las fórmulas del nivel 0, por ser activas en los subniveles +1 y -1).

Los números del (0008) al (0109) corresponden al proceso de búsqueda de hipótesis atinentes, visto anteriormente. Los números del (0020) al (0082) corresponden al recorrido por el nivel 1 en el análisis con las hipótesis 1 a 17. El análisis de las hipótesis 19 a 24 utilizó los números del (0094) al (0115). 

Cuando se logra refutar un subnivel positivo, mientras no se haya logrado una «refutación» en el correspondiente subnivel negativo en la misma línea de prueba, se considera como un resultado estéril. Al contrario, cuando se logra una «refutación» en el subnivel negativo, eso genera un punto a la hipótesis de ese subnivel y a las hipótesis de los niveles positivos inferiores que la provocaron.

Resultado de la prueba en el nivel 1: de las 24 hipótesis disponibles en este nivel, solamente 1 de ellas, la número 18, resultó fértil, por lo que se le asignó 1 punto; las demás 23 hipótesis obtuvieron 0 puntos. 

7.3 Nivel 2

Para realizar el recorrido de la prueba en el nivel 2 solamente existe una opción de hipótesis para el nivel 1: la hipótesis 18.

En el nivel 2 se excluye la prueba de las siguientes hipótesis:

Hipótesis 18: por ser la base en el nivel 1.

Hipótesis 17: por ser la contradictoria de la hipótesis 18.

Hipótesis 4: por estar activa en el subnivel +1.

Hipótesis 3: por ser la contradictoria de la hipótesis 4.

Esto significa que en este nivel quedan 20 hipótesis (de las 24 posibles) para realizar las pruebas.

Cada una de esta hipótesis se prueba, abriendo en el nivel +1 los dos subniveles (+2 y -2), ubicándola en el nivel +2, y su contradictoria en el nivel -2. El nivel -1 fue «refutado» en la línea de prueba (0093).

De las 20 hipótesis probadas en el subnivel-2, solamente 2 de ellas, las hipótesis 1 y 15 resultaron fértiles, por lo que se le asignó 1 punto a cada una de ellas. A la hipótesis 18, ubicada en el nivel +1, se le asignó 1 punto por cada «refutación» que provocó en el nivel siguiente y 1 punto adicional para ese nivel. A las demás hipótesis, tanto del nivel 1 como del nivel 2, no se les asignó ningún puntaje.

7.4 Nivel 3

Para realizar el recorrido de la prueba en el nivel 3 solamente existe una opción de hipótesis para el nivel 1: la hipótesis 18. Para el nivel 2 existen dos opciones: las hipótesis 1 y 15. Primero se realizan las pruebas ubicando la hipótesis 18 en el subnivel +1 y la hipótesis 1 en el subnivel +2, y luego, ubicando de nuevo la hipótesis 18 en el subnivel 1 y la hipótesis 15 en el subnivel +2.

a. Secuencia 18-1: de las 24 hipótesis posibles para el nivel 3, se descartan las siguientes 6:

Hipótesis 18: por ser la premisa básica en el nivel 1.

Hipótesis 17: por ser la contradictoria de la hipótesis 18.

Hipótesis 4: por estar activa en el subnivel +1.

Hipótesis 3: por ser la contradictoria de la hipótesis 4.

Hipótesis 1: por ser la premisa básica en el nivel 2

Hipótesis 2: por ser la contradictoria de la hipótesis 1.

De las 18 hipótesis restantes, una vez efectuado todo el recorrido de prueba en el nivel 3, se detectaron solamente 2 hipótesis fértiles: las hipótesis 5 y 15.

b. Secuencia 18-15: de las 24 hipótesis posibles para el nivel 3, se descartan las siguientes 10:

Hipótesis 18: por ser la premisa básica en el nivel 1.

Hipótesis 17: por ser la contradictoria de la hipótesis 18.

Hipótesis 4: por estar activa en el subnivel +1.

Hipótesis 3: por ser la contradictoria de la hipótesis 4.

Hipótesis 15: por ser la premisa básica en el nivel 2

Hipótesis 16: por ser la contradictoria de la hipótesis 15.

Hipótesis 10: por estar activa en el subnivel +2.

Hipótesis 9: por ser la contradictoria de la hipótesis 10.

Hipótesis 12: por estar activa en el subnivel +2.

Hipótesis 11: por ser la contradictoria de la hipótesis 12.

De las 14 hipótesis restantes, una vez efectuado todo el recorrido de prueba en el nivel 3, se detectaron solamente 5 hipótesis fértiles: las hipótesis 1, 7, 13, 22 y 24.

Asignación de puntos en este nivel: A las 2 hipótesis que resultaron fértiles en la secuencia 18-1 y a las 5 que resultaron fértiles en la secuencia 18-15, se les asignó 1 punto respectivamente, así como a las del nivel 2 (hipótesis 1 e hipótesis 15) que contribuyeron a esa fertilidad, lo mismo que a la del nivel 1 (hipótesis 18).

7.5 Nivel 4

Para realizar el recorrido de la prueba en el nivel 4 solamente existe una opción de hipótesis para el nivel 1: la hipótesis 18. Para el nivel 2 existen dos opciones: la hipótesis 1 y la hipótesis 15. Antes de continuar la prueba con estas hipótesis en el nivel 2, se ordenan según el puntaje acumulado, quedando de primero la hipótesis 15 y de segundo la hipótesis 1.

Aunque en el nivel 3 las hipótesis serán fértiles dependiendo de la hipótesis que está considerada como premisa en el nivel 2, tales hipótesis no conservan el registro de aquellas de niveles inferiores que les han permitido ser fértiles.

De esta forma se establecen las siguientes ramas de prueba para este nivel:

a. Rama 18-15-7: se excluyen 12 hipótesis: 1, 2, 5, 6, 13, 14, 19, 20, 21, 22, 23 y 24. De las 12 que quedan, resultan fértiles las 4 siguientes: 1, 13, 22 y 24.

b. Rama 18-15-1: se excluyen 12 hipótesis: 5, 6, 7, 8, 13, 14, 19, 20, 21, 22, 23 y 24. De las 12 que quedan, resultan fértiles las 5 siguientes: 5, 7, 13, 22 y 24.

c. Rama 18-15-13: se excluyen 12 hipótesis: 1, 2, 5, 6, 13, 14, 19, 20, 21, 22, 23 y 24. De las 12 que quedan, resultan fértiles las 4 siguientes: 1, 7, 22 y 24.

d. Rama 18-15-22: se excluyen 14 hipótesis: 3, 4, 9, 10, 11, 12, 15, 16, 17, 18, 19, 20, 21 y 22. De las 10 que quedan, resultan fértiles las 5 siguientes: 1, 4, 5, 13 y 24.

e. Rama 18-15-24: se excluyen 12 hipótesis: 3,4, 9, 10, 11, 12, 15, 16, 17, 18, 23 y 24. De las 12 que quedan, resultan fértiles las 4 siguientes: 1, 7, 13 y 22

f. Rama 18-1-5: se excluyen 10 hipótesis: 1, 2, 3, 4, 5, 6, 17, 18, 19 y 20. De las 14 que quedan, resulta fértil solamente 1: la 15.

g. Rama 18-1-15: se excluyen 12 hipótesis: 1, 2, 3,4, 9, 10, 11, 12, 15, 16, 17 y 18. De las 12 que quedan, resultan fértiles las 5 siguientes: 5, 7, 13, 22 y 24.

Asignación de puntos en este nivel: Las siguientes hipótesis resultaron fértiles, algunas de ellas en más de varias ramas de prueba: 1, 5, 6, 7, 13, 15, 22 y 24. A cada una de ellas se les asigna 1 punto por cada prueba que resultó fértil. Los mismo que a las hipótesis de los niveles inferiores que contribuyeron a esa fertilidad.

7.6 Nivel 5

Antes de proceder a realizar las pruebas incorporando este nivel, se procede a ordenar las hipótesis en cada nivel inferior de acuerdo al puntaje obtenido al momento. 

De esta forma se establece el siguiente orden para cada nivel:

a. Rama 18-15-22-7: se excluyen 16 hipótesis: 3, 4, 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 20, 21 y 22. De las 8 que quedan, resultan fértiles las 4 siguientes: 1, 6, 13 y 24.

b. Rama 18-15-22-1: se excluyen 16 hipótesis: 1, 2, 3, 4, 9, 10, 11, 12, 15, 16, 17, 18, 19, 20, 21 y 22. Esto reduce a 8 las hipótesis que quedan disponibles. Al iniciar las pruebas en el nivel 5 con la hipótesis 5, se produce una refutación en los subniveles +5 y -5 con lo que queda refutado el subnivel +4 en el cual se habían abierto. Al estar ya refutado el subnivel -4, da por refutado el subnivel +3 en el cual se habían abierto. Al estar ya refutado el subnivel -3, da por refutado el subnivel +2 en el cual se habían abierto. Al estar ya refutado el subnivel -2, da por refutado el subnivel +1 en el cual se habían abierto. Al estar ya refutado el subnivel -1, da por refutado el nivel 0 en el cual se habían abierto, con lo que se llega al final de la prueba, dando por demostrada la validez de tal razonamiento.

Para llegar a esta solución, el computador IBM-1620 (Matilde) duró 1 hora, 20 minutos y 40 segundos.

7.7 Prueba lograda

Consideraciones finales

El algoritmo sigue el método de anchura-primero pues va agotando, nivel a nivel, todas las hipótesis posibles.

El registro que va haciendo de la fertilidad de las hipótesis, luego de agotar las pruebas de un nivel, y de ordenarlas de acuerdo con el puntaje de fertilidad, es la forma por medio de la cual el algoritmo orienta la experiencia adquirida en el desarrollo de la prueba.

La exclusión de las hipótesis estériles en un determinado nivel para no ser consideradas en las pruebas de los niveles siguientes, es una combinación de experiencia y análisis racional: la experiencia nos dice solamente cuáles hipótesis resultaron estériles; el análisis racional nos dice que esa esterilidad no nos llevará a la solución, por lo que es mejor descartarlas.

De aquí se deriva la consideración de que, si en un determinado nivel, todas las hipótesis resultan estériles, se puede deducir que la forma de razonamiento que se está probando es inválida.

En la búsqueda de la solución a través de una línea de prueba, se toma la decisión de hacerlo únicamente por los subniveles positivos, asegurándose que los respectivos subniveles negativos van quedando refutados. De aquí se deriva la regla de que las fórmulas de los subniveles negativos no quedan activas sobre ningún otro subnivel: ni sobre los subniveles superiores, ni sobre el nivel positivo compañero.

La experiencia que el computador adquiere en la solución de este problema está limitada exclusivamente al proceso efectuado en esta prueba; incluso, si el programa es ejecutado más de una vez con los mismos datos, en todos los casos seguirá exactamente por la misma ruta. Para trasladar esta experiencia lograda a otros procesos de prueba, habría que almacenar tal información para utilizarla en esas siguientes pruebas.

Epílogo

El 31 de mayo de 1981 fue el último día del contrato suscrito por la IBM de Costa Rica y la Universidad de Costa Rica por medio del cual se garantizaba el mantenimiento del computador IBM-1620 (Matilde). Al día siguiente, lunes 1 de junio de 1981, personal de la IBM se presentaron a desconectar para siempre a este prestigioso computador. Antes de que se efectuara esta desconexión, se logró realizar el último trabajo con la corrida de la prueba del «Holyday Venture».

Fueron 20 páginas impresas del programa ensamblador SPS del computador, preparadas en 1179 tarjetas perforadas con ese programa; se imprimieron también 30 páginas con el recorrido de la prueba del «Holiday Venture» en sus 1012 líneas registradas.  Los datos proporcionados a este programa consistieron en 4 tarjetas perforadas: la primera con la conclusión del teorema a probar, la segunda y la tercera tarjeta con las respectivas dos premisas y la cuarta tarjeta con la indicación de que no había más premisas. 

Estas pruebas han quedado como una anécdota sobre una propuesta planteada por el Dr. Claudio Gutiérrez Carranza de un algoritmo de inteligencia artificial para la resolución de teoremas de lógica, en un momento en que se contaba con una tecnología muy rudimentaria desde la perspectiva de hoy.

Al finalizar su artículo citado publicado en la Revista de Filosofía, don Claudio concluye:

Queda como avenida inexplorada de confirmación de esta conclusión la programación y ulterior prueba del algoritmo presentado en su variante de orientación empírica. Si su desempeño en tiempo de corrida fuera por lo menos tan bueno como el de la variante «racionalista», este modelo «empirista» del algoritmo tendrían la enorme ventaja de ser admisible, es decir, de garantizar que las pruebas producidas por él serían las más cortas posibles.

La variante de «análisis racional fue desarrollada por don Claudio en 1973, en un computador IBM-360-65 de New México State University en la ciudad de Las Cruces, New México; utilizó el lenguaje ASSEMBLER (ensamblador) de ese computador. Esta prueba consiguió encontrar la solución a este teorema en el nivel 7

La prueba aquí descrita, utilizando la variante de «orientación empírica» planteada por el mismo don Claudio, encontró la solución en el nivel 5

Referencias

Gutiérrez, Claudio. 1974. «Un algoritmo de inteligencia artificial». Revista de Filosofía de la Universidad de Costa Rica 12, No. 34. Disponible en: https://inif.ucr.ac.cr/volumen/revista-de-filosofia-ucr-1974-volumen-xii-numero-34/

Quine. Willard.V.O. 1960. Methods of Logic. Nueva York: Henry Holt & Co.

José Ángel Rojas Romero (j.a.rojasromero13@gmail.com) Programador y analista de sistemas informáticos. Fue docente de la escuela de Filosofía y la Escuela de Ciencias de la Computación e Informática y director del Centro de Informática entre el 83 y el 91.

Recibido: 30 de octubre, 2023.

Aprobado: 6 de noviembre, 2023.