Skip to main content

Tweety the penguin

Birds fly. Penguins are birds. Penguins don't fly. Tweety is a penguin. Does Tweety fly?

The canonical defeasible reasoning example, used throughout non-monotonic logic and featured as the opening demo in the ASPIC+ tutorial literature.

The rules

  • Strict rule: penguins are birds.
  • Defeasible rule R1: birds generally fly.
  • Defeasible rule R2: penguins generally don't fly.
  • Premise: Tweety is a penguin.

Two arguments

A₁ uses R1: Tweety → bird (strict) → flies (defeasible). A₂ uses R2: Tweety → penguin → doesn't fly (defeasible).

A₁ and A₂ rebut each other — they reach contradictory conclusions about Tweety's flying.

Tweety — rebutting arguments
attacksdrag nodes · scroll to pan
Mutual rebut. Without preferences this is the same symmetric-attack problem as Nixon diamond. ASPIC+ breaks the tie with a preference ordering: the more-specific rule (R2) dominates, so A₂ defeats A₁.

Which wins?

ASPIC+ adds a preference ordering: more specific rules dominate more general ones. R2 (about penguins specifically) beats R1 (about birds in general). Therefore A₂ defeats A₁ and Tweety does not fly.

Without the preference ordering, the framework has two preferred extensions — same symmetric-attack problem as Nixon. Preferences are the tool ASPIC+ gives you to resolve this kind of draw structurally.

In code

The argumentation::aspic module builds the framework, applies the specificity preference, and reports A₂ as the winner. See the aspic::demo::tweety helper in the API reference.

Why it matters

Tweety is the smallest case where Dung's attack-only abstraction is not enough to get the intuitive answer. ASPIC+'s contribution was packaging "structured arguments + preferences" as machinery that still reduces to an abstract framework that standard semantics can evaluate.

Further reading