- Opaque context
-
An opaque context is a linguistic context in which it is not always possible to substitute co-referential expressions (usually grammatically singular terms) salva veritate. In other words, substitution of co-referential expressions into an opaque context does not always preserve truth. For example, "Lois believes x is a hero" is an opaque context because "Louis believes Superman is a hero" is true while "Lois believes Clark Kent is a hero" is false, even though 'Superman' and 'Clark Kent' are co-referential expressions.
The term is used in philosophical theories of reference, and is to be contrasted with "transparent context". In rough outline:
- Opacity: "Mary believes that Cicero is a great orator" gives rise to an opaque context; although Cicero was also called 'Tully', we can't simply substitute 'Tully' for 'Cicero' in this context ("Mary believes that Tully is a great orator") and guarantee the same truth value, for Mary might not know that the names 'Tully' and 'Cicero' refer to one and the same thing. Of course, if Mary does believe that Cicero is a great orator, then there is a sense in which Mary believes that Tully is a great orator, even if she does not know that 'Tully' and 'Cicero' corefer. It is the sense forced on us by "direct reference" theories of proper names, i.e. those that maintain that the meaning of a proper name just is its referent.
- Transparency: "Cicero was a Roman orator" gives rise to a transparent context; there is no problem substituting 'Tully' for 'Cicero' here: "Tully was a Roman orator". Both sentences necessarily express the same thing if 'Cicero' and 'Tully' refer to the same person. Note that this element is missing in the opaque contexts, where a shift in the name can result in a sentence that expresses something different from the original.
Similar usage of the term applies for artificial languages such as programming languages and logics. The Cicero-Tully example above can be easily adapted. Let [x] be interpreted as a function symbol returning a "name" of the value of the variable x on a language L with domain M. Define a LengthIsSix predicate with the property that LengthIsSix([x]) is true if and only if [x] has 6 characters. Then [x] induces an opaque context, or is referentially opaque, because LengthIsSix([Cicero]) is true while LengthIsSix([Tully]) is false. Programming languages often have richer semantics than logics' semantics of truth and falsity, and so an operator such as [x] may fail to be referentially transparent for other reasons if it is not a pure function.
See also
- Masked man fallacy
- Transitivity of identity
- W.V.O. Quine
- Pure functions
- Fuzzy concept
- Saul Kripke
References
Categories:
Wikimedia Foundation. 2010.