pila_(stack)

//--------------------------------------------//
// Especificacion Algebraica TAD Pila //
// Autor: Pablo Sanchez (p.sanchez@unican.es) //
// http://personales.unican.es/sanchezbp //
//--------------------------------------------//

espec Pila

usa Boolean, Natural

generos Stack(Element)como Stack

parametro
generos Element como E
fparametro

operaciones
emptyStack : -> Stack
push : Stack E -> Stack
parcial peek : Stack -> E
parcial pop : Stack -> Stack
isEmpty : Stack -> Boolean
size : Stack -> Natural
vars
s : Stack; x : Element;

precondiciones
[isEmpty(s) != TRUE] pop(s), peek(s)

ecuaciones
// Las generadoras son emptyStack y push(s,x) y son libres
// Los patrones del tipo son:
// - emptyStack
// - push(s,x)

size(emptyStack) = 0
size(push(s,x)) = 1 + size(s)

pop(push(s,x)) = s

peek(push(s,x)) = x

isEmpty(emptyStack) = TRUE
isEmpty(push(s,x)) = FALSE


fespec

Last modified: Friday, 26 May 2017, 11:20 AM