Finite Automata, Formal Logic, and Circuit Complexity (Progress in Theoretical Computer Science)