Here’s an odd thing. There seems, browsing along my shelves, to be no really standard symbolic metalinguistic shorthand used in elementary books for assigning a truth-value to a wff (say, in the propositional calculus). You would have expected there to be some.

In the first edition of my *Introduction to Formal Logic*, I borrowed the symbol ‘$latex \Rightarrow$’

to abbreviate ‘has the value … [on some given valuation]’ and wrote the likes of e.g.

If $latex \mathsf{P} \Rightarrow \textrm{T}$ and $latex \mathsf{Q} \Rightarrow \textrm{F}$ then $latex \mathsf{(P \land Q)} \Rightarrow \textrm{F}$.

But on reflection this was pretty silly, given that the symbol ‘$latex \Rightarrow$’ is already overloaded (not in my book, but elsewhere — like on math.stackexchange! — where, for a start, some use it for the conditional, some use it in place of a turnstile, and some get in a tangle by using it ambiguously for both!). It seems wiser not to add to possible confusion, especially when readers might well simultaneously get to see the double arrow being used in one of these different ways.

A bit of notation that *is* used, not at all consistently but often enough, is square double-brackets, so ‘$latex [\![\ldots]\!]$’ is used for ‘the value of …’, and we write the likes of ‘$latex [\![\mathsf{P}]\!] = \textrm{T}$’. But this seems to me a bit cluttered for elementary purposes — I’m after readability, rather than portability to more sophisticated contexts. And it misses the dynamism(??) of some type of arrow.

So for the upcoming second edition, I’m tentatively minded to use the \mapsto symbol for value-assignment, and write instead

If $latex \mathsf{P} \mapsto \textrm{T}$ and $latex \mathsf{Q} \mapsto \textrm{F}$ then $latex \mathsf{(P \land Q)} \mapsto \textrm{F}$.

(I suppose a colon could be another possibility, but I’d rather have something more distinctive. And the likes of ‘T($latex \mathsf{P}$)’ isn’t so pretty/easy to read in bulk and is conventionally part of an augmented object language.)

Any objection to the revised arrow? Am I missing some sufficiently established (or even just nicer) alternative??

TylerHave you considered the fairly lightweight pipe or bar notation found in say David Bostock’s intermediate logic text e.g. |P ^ Q|= T iff |P|=T and |Q|=T? This may avoid any confusion caused by repurposing other metalogical symbols like the double turnstile. It may also appear friendlier to the absolute beginner than notations which rely on model-theoretic ideas like valuations or interpretation functions. Just my thought…

MichaelI suppose mapsto is a fairly intuitive symbol and the phrase is perfect, if you introduce the symbol as meaning such.

In newer programming languages, there is a preference to avoid = as assignment, as it can be too easy for new programmers to confuse = and ==. The new preference seems to be for := as assignment (taking from older approaches, of course, the choice of symbol isn’t new, just that it’s been newly adopted). Maybe something along those lines?

Jon AwbreyIf you don’t mind using model-theoretic language, there is $latex A \models p$ for the fact that sentence $latex p$ is true in model $latex A,$ where $latex A$ is defined as a subset of the relevant set $latex \mathcal{S}$ of simple sentences.

Cf: My notes on Chang and Keisler (1973) • (4) • (8)

David AuerbachI think mapsto has the same arrowish drawbacks as arrow. I think something that is clearly a not an operator but functional (yes, both meanings). I like double bar (or its cousin double brackets) though Nagase’s v( ) I like too, since intro students are likely familar with that form of functional notation. And, just to cover the bases, there’s also over-bar (or whatever it’s called–a bar over the letter). But I do urge a shunning of arrows.

David MakinsonWhen solving exercises in class, I find it goes smoothly to use a colon, writing p : 1 and p : 0. This reduces clutter to a minimum, and creates no confusion so long as only one valuation is in question.

But in theoretical contexts, when stating or proving theorems about classical propositional logic, and in contexts where we may be considering more than one valuation, I revert to v(p) = 1 as suggested by Daniel.

A related notation works well for substitutions: a colon followed by an equality sign. Thus p := (q&r) when substituting q&r for p, and in predicate logic likewise x := a and x := y when substituting a constant a or a variable y for free occurrences of x in a formula. Same caveats for contexts of theory or when more than one substitution is in play.

Daniel NagaseHave you already defined valuations? If so, why not just using v(P) = T or something similar? Too cluttered?