Sophie

Sophie

distrib > Fedora > 13 > x86_64 > media > updates > by-pkgid > 06217ba1598a3cfb92b8cc9a2809e008 > files > 539

pvs-sbcl-4.2-4.20100126svn.fc13.x86_64.rpm


stacks [t: TYPE+] : THEORY
  BEGIN

  stack : TYPE+
  s : VAR stack
  empty : stack
  nonemptystack?(s) : bool = s /= empty
  nonemptystack_exists: AXIOM EXISTS s: nonemptystack?(s)

  push: [t, stack -> (nonemptystack?)]
  pop: [(nonemptystack?) -> stack]
  top: [(nonemptystack?) -> t]

  x,y: VAR t

  push_top_pop: AXIOM
    nonemptystack?(s) IMPLIES push(top(s), pop(s)) = s

  pop_push: AXIOM pop(push(x, s)) = s

  top_push: AXIOM top(push(x, s)) = x

  pop2push2: THEOREM pop(pop(push(x, push(y, s)))) = s   

END stacks