SiguienteAnteriorContenido

1.2. Propiedades del TAD Pila 

El TAD que acabamos de definir no es complicado y por eso modela bien la idea que tenemos de lo que es una pila, sin embargo entre más complejo sea el TAD, más difícil será tener la certeza de que modela el objeto que esperamos. El demostrador de teoremas puede usarse para facilitar la comprobación de propiedades de los TADs definidos

Algunas propiedades que debería cumplir nuestro TAD son:

  1. infoPIL(elimPIL(adicPIL(adicPIL(P,X),Y)))=infoPIL(P,X)
  2. infoPIL(adicPIL(P,infoPIL(adicPIL(Q,X))))=X
  3. esPILVacia(elimPIL(adicPIL(inicPIL,X)))=TRUE
ManTa puede comprobarlas y presentarnos la prueba formal de cada una :
 
 
Regrese al menú principal y elija Teoremas 

Elija Conjeturas, entrará al editor de texto y allí podrá escribir la conjetura o propiedad que desea probar. Puede ingresar más de una conjetura por ejemplo: 
 

   infoPIL(adicPIL(P,infoPIL(adicPIL(Q,X))))=X
   infoPIL(elimPIL(adicPIL(adicPIL(P,X),Y)))=infoPIL(adicPIL(P,X))
   esPILVacia(elimPIL(adicPIL(inicPIL,X)))=TRUE
   NOT(EQ_PIL(elimPIL(adicPIL(inicPIL,X)),inicPIL))=TRUE
Guarde el archivo y salga del editor. ManTa indicará la cantidad de conjeturas que logre probar. En este caso indicará 3 porque la última conjetura no es cierta. Puede examinar las pruebas eligiendo Probadas y Ultima. Por ejemplo la prueba de la tercera conjetura es: 
  esPILVacia(elimPIL(adicPIL(inicPIL,X))) = TRUE
  Regla al lado izquierdo elimPIL(adicPIL(P1,X2))= P1
    esPILVacia(inicPIL) = TRUE
  Regla al lado izquierdo esPILVacia(inicPIL) = TRUE
  TRUE = TRUE
Puede salvar las conjeturas probadas (o las no probadas) con el comando Salvar_Probadas (Salvar_No_Probadas respectivamente). En el mismo menú de TEOREMAS, la opción Directorio le permite ver las conjeturas probadas que se han salvado en Disco.
 

Claro que puede usar el demostrador para probar propiedades más complejas, no sólo del TAD PIL, que hemos definido, sino de otros TADs que estén en el ambiente.  Por ejemplo si edita el TAD NAT  (Tipos/Editar/NAT/Todo),  podrá ver como se definen los naturales en ManTa, descubrirá que la conmutativad y asociatividad de la suma no se deducen trivialmente de esta definición.  Sin embargo el demostrador de ManTa es capaz de mostrar estas propieadades (empleando inducción)

  ADD(X,Y)=ADD(Y,X)
  ADD(ADD(X,Y),Z)=ADD(X,ADD(Y,Z))

Aunque estos ejemplos muestran el poder del demostrador, recuerde que este probador al intentar demostrar una propiedad sólo ejecuta un algoritmo, y habrá muchas pruebas que no logrará concluir.

En la siguiente sección se verá como puede ManTa generar código en C que implementa una Pila de Naturales.


SiguienteAnteriorContenido