type stack T { s : seq T; axioms: { true } push(t:T) { s' = s \. <> } { s \neq << >> } pop() { s = { s' } \. <> } }; slide: The specification of a stack