StackBasics (E, C): trait % Essential LIFO operators includes Integer introduces empty: -> C push: E, C -> C top: C -> E pop: C -> C asserts C generated by empty, push forall e: E, stk: C top(push(e, stk)) == e; pop(push(e, stk)) == stk; implies converts top, pop exempting top(empty), pop(empty)[Table of Contents] [Index]