An interpretation is an assignment of meaning to the symbols of a formal language. Many formal languages used in mathematics, logic, and theoretical computer science are defined in solely syntactic terms, and as such do not have any meaning until they are given some interpretation. The general study of interpretations of formal languages is called formal semantics. The most commonly studied formal logics are propositional logic, predicate logic and their modal analogs, and for these there are standard ways of presenting an interpretation. In these contexts an interpretation is a function that provides the extension of symbols and strings of symbols of an object language. For example, an interpretation function could take the predicate T (for “tall”) and assign it the extension {a} (for “Abraham Lincoln”). Note that all our interpretation does is assign the extension {a} to the non-logical constant T, and does not make a claim about whether T is to stand for tall and ‘a’ for Abraham Lincoln. Nor does logical interpretation have anything to say about logical connectives like ‘and’, ‘or’ and ‘not’. Though we may take these symbols to stand for certain things or concepts, this is not determined by the interpretation function. An interpretation often (but not always) provides a way to determine the truth values of sentences in a language. If a given interpretation assigns the value True to a sentence or theory, the interpretation is called a model of that sentence or theory.