Follow your curiosity

What discovery has been shared with you?

Start with one fact. Explore it, go deeper, then follow whichever branch catches your imagination.

Choose subjects for a surprise

Exploring any topic

Begin your discovery

Your next discovery is one click away.

Choose one or more subjects above, or leave Any Topic selected and let curiosity decide.

Philosophy

The Logic of Nonmonotonic Reasoning and Default Logic

Quick fact

Default logic, introduced by Raymond Reiter in 1980, extends classical logic with default rules that allow drawing conclusions 'unless contradicted.' It is a foundational formalism for nonmonotonic reasoning, distinguishing it from other approaches like circumscription and autoepistemic logic.

Why this is interesting

You probably believe that if all birds fly, and Tweety is a bird, then Tweety flies. But what if you later learn that Tweety is a penguin? Would you still hold that conclusion?

Read the full explanation

Understanding The Logic of Nonmonotonic Reasoning and Default Logic

Imagine you're walking in a park and see a small, feathered creature. You conclude it's a bird, and since typical birds fly, you infer it can fly. That's a reasonable inference based on typicality. But then you spot a sign that says it's a penguin exhibit—you immediately withdraw your conclusion that it flies. This is everyday reasoning: we make leaps based on what's normally true, but we revise when new information arrives. Classical logic, however, cannot handle this. In classical logic, once we derive a conclusion from a set of premises, adding more premises never invalidates it—this is called monotonicity. If 'Tweety is a bird' and 'All birds fly' logically imply 'Tweety flies,' then adding 'Tweety is a penguin' doesn't change that implication—the conclusion still follows logically from the original premises. But we don't want to say that. We want a logic where 'Tweety is a bird' allows us to conclude 'flies' as a default, but where that conclusion is defeated when we learn it's a penguin. This is nonmonotonic reasoning. Default logic provides one way to formalize this. It introduces default rules of the form: if we have some prerequisite (like 'Tweety is a bird'), and a consistency condition (it is consistent to assume 'Tweety flies', i.e., we don't know she's flightless), then we may conclude the consequent (flies). Such a rule allows us to draw a conclusion tentatively, and that conclusion can be retracted if we later learn something that contradicts the consistency condition. The result is a set of beliefs called an extension. An extension is like a possible 'complete' set of conclusions we could reach, given the defaults we use. There may be multiple extensions, reflecting different choices of which defaults to apply.

A deeper explanation

Default logic, as defined by Reiter, works on top of classical first-order logic. A default theory consists of a set of premises (facts) and a set of default rules. A default rule is written as "A : B / C", meaning: "If A holds, and it's consistent to assume B (i.e., we have no evidence against B), then conclude C." The mechanism for generating an extension is a fixed-point procedure. We start with the initial facts and apply defaults one by one. For each default, if its prerequisite is already derived, and if the negation of its justification is not derivable from the current set plus the conclusions we've committed to, then we add the conclusion. Crucially, 'consistency' is checked with respect to the final extension, not just the current set. This leads to a careful definition: an extension is a set of formulas that is closed under classical logical consequence and contains all defaults that are 'safe' with respect to it. This non-constructive definition ensures that extensions are internally consistent and maximal. The key property is nonmonotonicity: adding new facts can cause an extension to change, possibly losing conclusions. For example, with facts {Bird(Tweety)} and default 'Bird(x):Flies(x)/Flies(x)', we get an extension containing Flies(Tweety). But if we add Penguin(Tweety) and a rule that penguins don't fly, the new extension no longer contains Flies(Tweety). The logic allows us to reason about typical cases while remaining open to revision when exceptions arise. This mechanism matters because it mirrors the way we reason with incomplete information: we prefer normal outcomes but can abandon them when specifics contradict. It is widely used in artificial intelligence for knowledge representation, especially in areas like reasoning about actions, database queries, and natural language understanding. Default logic also clarifies the distinction between deductive certainty and defeasible inference, providing a formal account of 'rules with exceptions.'

Keep FACTREE close

Internet access is required. Updates arrive when you reopen or reload the app. You may need to sign in again in the installed app.