I mentioned circumscription reasoning briefly in a previous post, so I thought I'd say something (very rough) about it. One form of human reasoning is the search: out of a given field, we look for a given element. Now, it is often not practical to perform a search out of the field of all possible cases, so an important part of human reasoning consists in circumscribing the field of search. In practice this tends to be rather tricky. To circumscribe the field of search, we have to have some principle or condition of circumscription that indicates that all the normal cases occur within a given area, or that all the relevant information is already in place. What we are trying to do, very often, is to minimize the number of exceptions to our conclusions. Or, to put it in other words, we are usually trying to fix the difference between normal and abnormal cases, so that most, and perhaps all, of our cases are normal.
A common sort of example: You ask the travel agent whether there are any flights to Paris at 3 in the morning; she checks the database, and concludes that there are none. This inference involves circumscription: it involves the condition that all normal bookable flights are found in the database. In other words: the idea is that the database is complete for all practical purposes. And if it so happens that a flight is not in the database, it is considered abnormal, an anomaly. As a rule, the travel agent reasons on the assumption that she has, via her database, access to all the relevant information needed for booking flights. Lapses aren't impossible, but their possibility really doesn't enter into her reasoning.
Obviously, the chief difficulty in circumscription reasoning is being able to establish the right circumscription condition; and I think a lot of reasoning that otherwise seems plausible crashes and burns out of a failure to pay adequate attention to whether we have good reasons for a given principle of circumscription. When we proceed on the assumption that birds fly, for instance, we are basically thinking that for our purposes the class of flying things contains all the relevant normal cases of birds; but we might be illegitimately trying to draw conclusions that need to apply also to abnormal cases like ostriches and penguins. Likewise, if someone asks us, "Birds fly and mammals don't; Tweetie flies. What is Tweetie?" and we respond by saying "Tweetie is a bird," we have circumscribed our field of search to birds and mammals, and have limited 'flying things' to birds. But it could be that Tweetie is a bat (and hence a mammal) or an airplane (and thus neither a mammal nor a bird). In such a case, we have perhaps used the wrong circumscription conditions.
Circumscribed searches, in one form or another, are very common. There has for some time been some interesting work, particularly in work on artificial intelligence, trying to model formally certain aspects of circumscription reasoning. Very complicated work, too; to model circumscription reasoning formally requires 1) establishing well-behaved formal operations; and 2) capturing as much as possible of actual circumscription reasoning. Meeting both of these is immensely difficult; but there's a lot of promising stuff out there.