Contrafactus & Topic XIX — Artificial Intelligence: Prospects
7 min read
Core idea
Where Topic XVIII looked backward at AI's accomplishments, Topic XIX looks forward. Hofstadter argues that the next leaps will come from systems that can do what humans effortlessly do but 1979 AI cannot: handle the same situation as several different conceptual structures simultaneously, slip between concepts when context demands, and recognize analogies across domains. The topic centers on Bongard problems — visual pattern-recognition puzzles devised by Russian computer scientist Mikhail Bongard in the 1960s — as a microcosm of the kind of flexible representation Hofstadter believes future AI will need.
The topic is also the most personal in the book. Hofstadter's later career (the FARG group at Indiana, the Copycat and Tabletop projects, the Fluid Concepts and Creative Analogies book of 1995) was the direct continuation of the program sketched here. The forecast turns out to be both right and wrong in interesting ways: right that flexibility is the missing piece, partly wrong about how the field would achieve it.
Hofstadter's argument: Intelligence is not search plus knowledge — it is fluid concept manipulation. A system that cannot represent the same thing in multiple ways simultaneously, slip between representations, and recognize structural analogies will hit ceilings no amount of search or rules can break.
Why it matters
Bongard problems
A Bongard problem presents twelve boxed figures — six on the left forming Class I, six on the right forming Class II — and asks: "what is the rule that distinguishes Class I from Class II?" The figures might be circles vs squares, but it might also be open figures vs closed, large vs small, convex vs concave, more-than-three-of-something vs fewer, or some subtler combination. The point is that the relevant feature is not given; you must invent the right feature space and then check which axis separates the classes.
This is a microcosm of real intelligence. The hard part is not "checking once you have the rule" — that is trivial. The hard part is "finding the rule" — generating candidate features, dismissing irrelevant ones, attending to the right level of abstraction. Hofstadter argues that any system that can handle Bongard problems has the core machinery of fluid concept manipulation.
Tentative representations
A key idea: representations should be tentative. When you first look at a Bongard problem, you might attend to colors, sizes, or shapes. As you study the figures, you tentatively decide "the relevant axis is shape, not size," then revise — "actually, it's whether the shape is open or closed." The representation is not committed at any one moment; it is held loosely, updated as evidence accrues, and dropped if a better one emerges.
This is hard for 1979 AI. Symbolic systems commit to a representation early and reason within it; revising mid-stream is expensive. Hofstadter's later Copycat program (built with Melanie Mitchell) implements tentative representations as the central design move: a workspace in which structures form, compete, dissolve, and reform under the influence of codelets — small agents that nudge the representation toward coherence.
Concept slippage
The next ingredient is slippage — the ability for one concept to mutate into a neighboring concept under contextual pressure. The example Hofstadter uses (and his later work develops at length): the string "abc" maps to "abd" by "replace the rightmost letter with its successor." Now apply the rule to "iijjkk." A rigid system says "replace the rightmost letter with its successor": "iijjkll." A flexible system slips the rule: "successor of the rightmost group," giving "iijjll." Either answer is defensible; the slippage from "letter" to "group" is the creative move.
The Copycat program explicitly handles this slippage. Each concept (successor, predecessor, leftmost, rightmost, letter, group, sameness) has a slipnet of neighbors it can slip into under pressure. The pressures come from the input — features of the strings being analyzed — and from internal competition for which representation wins. Slippage is the operationalization of analogy.
The Contrafactus dialogue and counterfactual reasoning
The Contrafactus dialogue addresses the related question of counterfactuals — claims of the form "if X were the case, then Y would happen." Achilles and the Tortoise debate whether one can meaningfully speak of "what would have happened if Bach had not visited the king" or "what if Achilles had never been invented by Zeno." Counterfactuals are pervasive in human reasoning, central to causal inference, ethics, planning, and storytelling. They are also notoriously hard to formalize.
The connection to Bongard problems: counterfactual reasoning requires the same fluid concept manipulation. To imagine "if Bach had not visited," you must extract the relevant concept (the visit), suppress it, and let the rest of the world model unfold accordingly. Doing this for any choice of "X" requires the same machinery as Bongard's "find the rule" — flexible feature extraction and selective re-evaluation.
Hofstadter's forecast in 1979 vs reality
The book correctly predicted that:
- Flexible representations would be crucial. (Modern transformers' learned representations are flexible in ways 1979 symbolic systems could not be.)
- Analogy would be a key cognitive primitive. (Modern LLMs are essentially industrial-scale analogy engines.)
- The right level of abstraction is the symbol level, not the logical-formula level. (Modern embeddings are closer to active symbols than to predicate-logic atoms.)
The book partly missed:
- The bitter lesson — most of what Hofstadter hoped clever architectures would do, scale and gradient descent have done instead. The Copycat/FARG agenda turned out to be intellectually rich but commercially eclipsed.
- The role of training data scale. 1979 AI thought of data as expensive and rules as cheap; modern AI is the opposite.
- The fact that fluidity emerges from large-scale learning rather than needing to be engineered.
But the target — fluid, flexible, analogical, multi-representational cognition — is exactly the standard against which modern systems are now measured. The forecast got the destination right while missing the route.
The "AI has far to go" closing
The topic closes with a long list of capabilities Hofstadter thinks AI is far from. The list includes: creativity, real emotional understanding, sense of humor, integration of multiple sensory modalities, true open-domain understanding. Read in 2026, the list is sobering: 47 years later, modern systems handle some of these well (multimodal integration, certain kinds of creativity), are uncomfortably close on others (humor, emotional simulacrum), and remain far from others (genuine open-ended autonomy). Hofstadter's caution about over-claiming was, in retrospect, right for the time and somewhat too pessimistic for the long run.
Key takeaways
Mental model
Practical application
The topic's lessons apply when you face any problem requiring genuine cognitive flexibility — your own or a system you are designing.
1. Hold representations tentatively. Do not commit to the first framing. Maintain two or three candidate representations of the problem and let them compete. The investment is small; the upside on the right framing is large.
2. Look for slippages. When stuck on a problem at the current level of abstraction, ask whether some component concept can slip into a neighboring concept. "Letter" might be "group" might be "pattern." "Customer" might be "user" might be "stakeholder." Each slip opens new framings.
3. Run Bongard exercises. Take any classification you currently believe ("good code vs bad code," "high performers vs low performers") and treat it as a Bongard problem: what is the actual feature space? Often the official answer is a rough proxy and the real distinguisher is at a different level.
4. Use analogy as a primary tool, not a flourish. When you do not know how to solve a problem, look for problems with similar structure you do know how to solve. Then ask which features map and which do not. This is the Hofstadter-style use of analogy and it is more rigorous than its casual use suggests.
Example
Consider designing a fraud-detection system. The naive approach: enumerate fraud patterns and write rules for each. This is closed-world, like SHRDLU, and works on the patterns you enumerated and fails on novel ones. As fraudsters adapt, your rules age out.
The Hofstadter-style approach: treat each transaction as a Bongard-like problem. Maintain a flexible representation that can be analyzed at multiple levels (transaction amount, time, location, device, behavioral pattern, network of related accounts). Allow concepts to slip — "unusual amount" might slip into "unusual amount for this user at this time"; "unusual location" might slip into "location consistent with stated purpose." Allow the system to recognize analogies — "this new pattern resembles the old pattern modulo a substitution."
Modern fraud-detection systems do something like this with learned embeddings and graph neural networks. The transaction is embedded into a vector space where similar (legitimate) transactions cluster and outliers stand out. The embedding is the "active symbol" — a representation that is flexible because it lives in a continuous space rather than a fixed feature set. Anomaly detection then plays the role of "find the rule that distinguishes legitimate from fraud," dynamically updated as new patterns appear.
This is not exactly the architecture Hofstadter sketched — he envisioned competing symbolic codelets, not deep networks — but the underlying logic is his: intelligence comes from flexibility, not from search over rigid representations. The bitter lesson is that the cheapest way to achieve flexibility turned out to be scale + gradient descent. The destination remains Hofstadter's.
Related lessons
Related concepts
- Analogylinked concept
- Bongard Problemlinked concept
- Creativitylinked concept
- Concept Slippagelinked concept
- Artificial Intelligencelinked concept
- Tentative Representationlinked concept