Adrian,
I sent off my previous note before your addition. But I'd like to respond to it: AW> ... what about SQL? Much of our commercial and scientific life > depends on it, and it undoubtedly uses negation as "failure to prove". > > Are you saying that we should move all commercial databases to a > different query language using classical negation? As I pointed out in my previous note, *every* useful interpretation of *every* version of nonmonotonic logic, including failure to prove, *always* explains what it does in terms of classical logic. The way SQL is used abundantly illustrates that point. Knowledgeable practitioners, whether or not they explicitly talk about classical logic, are very careful to use SQL in a way that avoids the problems. See the books by Chris Date and others, who are very careful to explain the issues and recommend solutions that are classically sound. Newbies, despite their lack of knowledge, actually use SQL very safely. They rarely use negation, and they just use SQL as a convenient access method for their data. In those cases when they do use negation, they interpret it as absence (which is a perfectly reasonable classical interpretation). These ways of using SQL can interpreted very nicely with CL semantics. John