espec ListaGenerica

usa Booleano, Natural;

dominios Lista(Elemento) como Lista;

parametro formal
dominio Elemento
fparametro

operaciones
listaVacia : -> Lista
anhade : Lista Elemento -> Lista
longitud : Lista -> Natural
esVacia : Lista -> Booleano
concatena : Lista Lista -> Lista
parcial cabeza : Lista -> Elemento
parcial borraCabeza : Lista -> Lista
variables
l, l2 : Lista; e: Elemento;
precondiciones
[longitud(l) > 0] cabeza(l)
[longitud(l) > 0] borraCabeza(l)
ecuaciones

longitud(listaVacia) = 0
longitud(anhade(l,e)) = (1 + longitud(l))

esVacia(listaVacia) = TRUE
esVacia(anhade(l,e)) = FALSE

concatena(l,listaVacia) = l
concatena(l,anhade(l2,e)) = anhade(concatena(l,l2),e)

cabeza(anhade(l,e)) = e

borraCabeza(anhade(l,e)) = l
fspec

Última modificación: viernes, 26 de mayo de 2017, 10:23