Formally prove that every finite language is regular

One-line proof: A finite language can be accepted by a finite machine.

Detailed construction: Suppose the language $\mathcal L$ consists of strings $a_1 ,a_2, \ldots, a_n$.

Consider the following NFA to accept $\mathcal L$: It has a start state $S$ and an accepting state $A$. In between $S$ and $A$ there are $n$ different paths of states, one for each $a_i$. The machine can only get from the beginning of the i'th path to the end if it sees exactly the string $a_i$.

There are $\epsilon$-transitions from $S$ to the beginning of each path, and from the end of each path to $A$.

For example, suppose $\mathcal L$ consists of exactly the three strings "fish", "dog", and "carrot". Then the NFA looks like this:

  .-------- f - i - s - h --.
 /                           \
S---- d - o - g --------------A  
 \                           /
  '- c - a - r - r - o - t -`

If a language contains the strings $v_1, v_2, v_3,\dots, v_n$, one possible expression is $$ v_1\cup v_2\cup v_3 \cup ...\cup v_n=\bigcup_{i=1}^n v_i. $$ $\cup$ is also commonly written $|$, especially on computers. Since there is a regular expression for the language, the language is regular.