AutoEvaluacionesLogicaIII
Páginas: 194 (48492 palabras)
Publicado: 8 de julio de 2015
1. Complete la estructura númeroNatural incluyendo las operaciones módulo, potencia, factorial, máximo común divisor, mínimo común múltiplo, diferente, mayor, mayor o igual, menor y menor o igual.
Solución:
Estructura númeroNatural
Funciones:
cero() númeroNatural
sucesor(númeroNatural) númeroNatural.
esCero(númeroNatural) lógico.
suma(númeroNatural,númeroNatural) númeroNatural
resta(númeroNatural, númeroNatural) númeroNatural
multiplica(númeroNatural, númeroNatural) númeroNatural
divide(númeroNatural, númeroNatural) númeroNatural
modulo(númeroNatural, númeroNatural) númeroNatural
potencia(númeroNatural, númeroNatural) númeroNatural
mcd(númeroNatural, númeroNatural) númeroNatural
mcm(númeroNatural, númeroNatural) númeroNaturalfactorial(númeroNatural) númeroNatural
igual(númeroNatural, númeroNatural) lógico
diferente(númeroNatural, númeroNatural) lógico
mayor(númeroNatural, númeroNatural) lógico
mayorIgual(númeroNatural, númeroNatural) lógico
menor(númeroNatural, númeroNatural) lógico
menorIgual(númeroNatural, númeroNatural) lógico
Axiomas:
esCero(cero()) ::= verdadero
esCero(sucesor(x)) ::= falsosuma(cero(), y) ::= y
suma(sucesor(x), y) ::= sucesor(suma(x, y))
resta(x, cero()) ::= x
resta(cero(), y) ::= if esCero(y) then cero()
else error
resta(sucesor(x), sucesor(y)) ::= resta(x, y)
multiplica(x, cero()) ::= cero()
multiplica(x, sucesor(y)) ::= suma(x, multiplica(x, y))
divide(cero(), y) ::= cero()
divide(x, cero()) ::= error
divide(x, y) ::= if menor(x, y) then cero()else sucesor(divide(resta(x, y), y))
modulo(cero(), y) ::= cero()
modulo(x, cero()) ::= error
modulo(x, y) ::= if menor(x, y) then x
else modulo(resta(x, y), y))
potencia(x, cero()) ::= if esCero(x) then error
else sucesor(cero())
potencia(x, sucesor(y)) ::= if esCero(x) then cero()
else multiplica(x, potencia(x, y))
mcd(x, cero()) ::= error
mcd(cero(),y) ::= error
mcd(x, y) ::= if igual(modulo(x, y), cero()) then y
else mcd(y, modulo(x, y))
mcm(x, y) ::= divide(multiplica(x, y), mcd(x, y))
factorial(cero()) ::= sucesor(cero())
factorial(sucesor(x)) ::= multiplica(sucesor(x), factorial(x))
igual(Cero(), x) ::= esCero(x)
igual(sucesor(x), cero()) ::= falso
igual(sucesor(x), sucesor(y)) ::= igual(x, y)menor(cero(), y) ::= no esCero(y)
menor(sucesor(x), cero()) ::= falso
menor(sucesor(x), sucesor(y)) ::= menor(x, y)
La función cero() crea la estructura número natural vacía.
sucesor(cero()) generará el primer número natural, el 1.
sucesor(sucesor(cero())) representa el número natural 2 y así sucesivamente.
En general, si sucesor(x) es un número natural i, entonces x representa el número natural i– 1.
Analicemos los axiomas escritos.
Los axiomas correspondientes a la función esCero() son simples: un axioma en el cual se hace referencia a la estructura vacía, el cual obviamente es verdad, y otro axioma en el cual se hace referencia a la estructura no vacía, el cual, también obviamente es falso.
Para analizar los axiomas correspondientes a la operación de suma consideremos el ejemplo desumar los números naturales 2 y 3.
El número natural 2 se representa:
sucesor(sucesor(cero()))
El número natural 3 se representa:
sucesor(sucesor(sucesor(cero())))
El planteamiento de la operación de suma según nuestro axioma es:
suma(sucesor(sucesor(cero())), sucesor(sucesor(sucesor(cero()))))
De acuerdo con los axiomas definidos, debemos identificar en la operación planteadalos términos que la conforman, es decir, identificar x e y:
x = sucesor(sucesor(cero()))
sucesor(y) = sucesor(sucesor(sucesor(cero())))
y = sucesor(sucesor(cero()))
teniendo identificados x e y procedemos a aplicar el axioma.
suma(x, sucesor(y)) ::= sucesor(suma(x, y))
y obtenemos lo siguiente:
sucesor(suma(sucesor(sucesor(cero())),sucesor(sucesor(cero()))))
Nuevamente en el llamado a la...
Leer documento completo
Regístrate para leer el documento completo.