AutoEvaluacionesLogicaIII

Páginas: 194 (48492 palabras) Publicado: 8 de julio de 2015
SOLUCIONES MÓDULO 01

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.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS