A pushdown automata (PDA) is a tuple where:

  • is an alphabet (finite set of atomic symbols)
  • is a finite set of states
  • is the set of symbols that can be stored on stack
  • is the initial state
  • is the set of accepting states
  • is the transition function

The transition function maps to a set of pairs of the form .

  • Symbol in domain is to be popped.
  • Symbol in co-domain is to be pushed.
  • If symbol is (empty), nothing is to be popped / pushed.

Transitions may also be labelled . A word is accepted if there is any trace from initial state to accepting state that leaves the stack empty.