Simple machines that take in strings (sequences of symbols) as input and recognize whether or note each input string satisfies some condition(s)
Finite automata use states to keep track of important information about symbols
## Mathematical definition of a finite automaton
$M = (Q, \sum, \delta, q, F)$
- $Q$ is a finite set of states
- $\sum$ is a finite set of input symbols called the input alphabet
- $\delta$ is the transition function
- Takes every pair consisting of a state and an input smbol and returns the next state, this tells us everything we need to know about what the machine does in one computation step
- $q \in Q$ is the start state
- $F \subseteq Q$ is the set of accept states
## Acceptance by a finite automaton
Let M be a finite automaton
Let $w = w_1, w_2, ..., w_n$ be n input string over \sum
As input string w is process by $M$, define the sequence of visited states $r_0, r_1, ..., r_n$ as follows: