Introductory knowledge of formal language and automata theory is assumed such as nondeterministic finite automata (\(\) s), pushdown automata (\(\) s), Turing machines, and closure properties
[1]}. An alphabet \(\Sigma \)  is a finite set of symbols, a word \(w\)  over \(\Sigma \)  is a finite sequence of symbols from \(\Sigma \) , and \(\Sigma ^*\)  is the set of all words over \(\Sigma \)  which includes the empty word \(\lambda \) .
A language \(L\)  over \(\Sigma \)  is any \(L \subseteq \Sigma ^*\) . The complement of a language \(L \subseteq \Sigma ^*\) , denoted by \(\overline{L}\) , is \(\Sigma ^* - L\) .
