Computability theory focuses on the classification of problems as either solvable or not.
Alphabets
An alphabet is any nonempty finite set. The members of an alphabet are called symbols of the alphabet. A string over an alphabet is a finite sequence of symbols from that alphabet, usually written next to one another without separation.
Then length of a string over an alphabet, denoted , is the number of symbols contains. The empty string, denoted , is the string of length . The reverse of is the string obtained by writing in the opposite order.
String is a substring of if appears consecutively within . The concatenation of strings and , written , is the string obtained by appending to the end of . We say string is a prefix of string if a string exists where . We say is a proper prefix of if .
Languages
A language is a set of strings. The complement of a language is the language consisting of all strings not in . A language is prefix-free if no member is a proper prefix of another member. Likewise it is suffix-free if no member is a proper suffix of another member.
For any language , the endmarked language is the collection of strings where .