code: func hasDeadStates(a *Automaton) bool {
  	liveStates := liveStates(a)
  	numLive := liveStates.Cardinality()
  	numStates := a.numStates()
  	assert2(numLive <= int64(numStates), "numLive=%v numStates=%v %v", numLive, numStates, liveStates)
  	return numLive < int64(numStates)
  }
docs: /*
  Returns true if the automaton has any states that cannot be reached
  from the initial state or cannot reach an accept state.
  Cost is O(numTransitions+numStates).
  */