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.
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
- Modgil & Prakken (2014) — ASPIC+ tutorial; opens with Tweety.
- Reiter (1980) — the default logic paper that first posed the problem.