Semantics for dealing with irreferential singular terms and vagueness

In philosophical logic, **supervaluationism** is a semantics for dealing with irreferential singular terms and vagueness.^{[1]} It allows one to apply the tautologies of propositional logic in cases where truth values are undefined.

According to supervaluationism, a proposition can have a definite truth value even when its components do not. The proposition "Pegasus likes licorice", for example, is often interpreted as having no truth-value given the assumption that the name "Pegasus" fails to refer. If indeed reference fails for "Pegasus", then it seems as though there is nothing that can justify an assignment of a truth-value to any apparent assertion in which the term "Pegasus" occurs. The statement "Pegasus likes licorice or Pegasus doesn't like licorice", however, is an instance of the valid schema $p\vee \neg p$ ("*$p$ or not-$p$*"), so, according to supervaluationism, it should be true regardless of whether or not its disjuncts have a truth value; that is, it should be true in all interpretations. If, in general, something is true in all precisifications, supervaluationism describes it as "supertrue", while something false in all precisifications is described as "superfalse".^{[2]}

**Supervaluations** were first formalized by Bas van Fraassen.^{[3]}

##
Example abstraction

Let *v* be a classical valuation defined on every atomic sentence of the language *L* and let At(*x*) be the number of distinct atomic sentences in a formula *x*. There are then at most 2^{At(x)} classical valuations defined on every sentence *x*. A supervaluation *V* is a function from sentences to truth values such that *x* is supertrue (i.e. *V*(*x*)=True) if and only if *v*(*x*)=True for every *v*. Likewise for superfalse.

*V(x)* is undefined when there are exactly two valuations *v* and *v** such that *v(x)*=True and *v***(x)*=False. For example, let *Lp* be the formal translation of "Pegasus likes licorice". There are then exactly two classical valuations *v* and *v** on *Lp*, namely *v(Lp)*=True and *v***(Lp)*=False. So *Lp* is neither supertrue nor superfalse.