Apply to my task
arXiv:2601.09373 ★ 74 Jan 14, 2026

The Imperfective Paradox: LLMs Assume Goal-Directed Actions Got Finished

Key result

An LLM sees 'was developing a system' → concludes 'developed a system' 98% of the time. Even if the text says 'but the project was put on ice', the model still concludes it was completed. That breaks resume screening, pre-investment company checks, and project progress reviews — the model invents results where there are none. The cause: reporting bias in the training data. Texts usually mention goals once they've been achieved ('was launching a product' shows up more often in the context of success). Statistics outweigh logic — the model works as a narrative predictor, not a fact analyst. With explicit anti-bias instructions it drops from 98% to 40%, but it can't be removed completely.

01

TL;DR

The Imperfective Paradox is a logical phenomenon where "was in the middle of doing something" doesn't mean "finished doing it" for goal-directed verbs. "Was building a house" ≠ "built a house" (it could have been interrupted). But "was running" = "ran" (the process is the event). The researchers tested whether LLMs can tell these two kinds of actions apart, using a dataset of premise-hypothesis pairs.

Models systematically hallucinate completion for goal-directed actions (98% of cases in zero-shot). Even when the text explicitly reports an interruption — "was building a gazebo, but a storm destroyed it" — the model still concludes "built a gazebo." The cause: reporting bias in the training data. Texts usually mention goals once they've been achieved. Statistics ("was building" → "built" is a common pairing) outweigh logic. The model acts as a narrative predictor, not a logical analyst.

Chain-of-Thought reduces hallucinations for goal-directed actions (from 98% to ~40%), but breaks correct inferences for process actions ("was running" → "ran" drops from 98% to 65%). A counterfactual prompt ("imagine interruptions") removes the bias completely, but makes the model paranoid and skeptical — it stops drawing any conclusions at all. Models can't calibrate their reasoning to the type of action — they swing between "everything got done" and "nothing is known."

Want this for your own case? Apply this study to your task: AI adapts its method to what you are working on and writes the prompt.

02

The Problem at a Glance

TWO KINDS OF ACTIONS:

Goal-directed (telic): building a house, writing a report, baking a pie → "was in the process" ≠ "finished" (there's an endpoint)

Process (atelic): running, swimming, playing → "was in the process" = "did it" (the process is the event)

THE LLM PROBLEM:

The model sees: "The programmer was developing a system" → Concludes: "The programmer developed a system" ❌

Even if the text says: "...but the project was put on ice" → It still concludes: "developed" ❌

ATTEMPTS TO FIX IT:

  • CoT: reduces bias for goal-directed actions, but breaks process ones
  • Counterfactual: removes the bias completely, but makes the model skeptical of everything
  • Result: the model swings between extremes and can't tell the action types apart
03

Practical Application

The problem: An LLM fills in facts when it analyzes unfinished actions. That's critical when evaluating experience, project progress, or whether commitments were fulfilled.

Example task: Reviewing a resume from a candidate for a product manager role.

Standard prompt (with the problem):

Here is a candidate's resume. List the products they successfully launched:

[Resume:]
- Was developing a mobile food delivery app (2022-2023)
- Was launching a services marketplace for small businesses (2023-2024)
- Was rolling out a CRM system for the sales team

What the model will return: Most likely it'll list all three projects as "launched," even though the wording points to a process, not a result. The model sees "was launching a marketplace" → fills in "launched a marketplace."


Improved prompt (with bias protection):

Analyze the resume and split the candidate's activities into TWO categories:

1. COMPLETED PROJECTS — where a result is explicitly stated ("launched", "rolled out", "shipped")
2. PROCESS WITHOUT A CONFIRMED RESULT — where only involvement is stated ("was developing", "was launching", "was rolling out")

CRITICALLY IMPORTANT: 
- "Was launching" does NOT mean "launched"
- "Was developing" does NOT mean "developed"
- Don't fill in results. If no explicit result is stated — category 2

For category 2, note: "Clarify in the interview — was the result achieved?"

[Resume:]
- Was developing a mobile food delivery app (2022-2023)
- Launched a services marketplace for small businesses with 500+ service providers
- Was rolling out a CRM system for the sales team

Result: The model will sort the activities into categories, flagging only the second item as completed (the wording "launched" + a concrete result, "500+ service providers"). The rest it'll mark "needs clarification." You'll see the candidate's real experience, not an imagined one.

04

Why This Happens

The LLM weakness: The model was trained on texts where goals are usually mentioned once they've been reached. News, reports, and stories say "the company was launching a product" only when the context is relevant — which most often means a successful launch. Reporting bias: everyday failures don't make it into texts, successes do. The model memorized the statistics: "was launching" → "launched" holds in 80%+ of cases.

The LLM strength: The model is good at following explicit, structured instructions. When you break a task into clear categories with examples ("this ≠ that"), the model can suppress the statistical pattern. Pseudo-XML tags, numbering, and contrasting examples work as "attention anchors" — the model focuses on distinguishing rather than predicting the most likely continuation.

How the fix works: Instead of an abstract "analyze the resume," you give the model an explicit fork: "completed" vs "in progress." You add an inference-blocking rule: "was developing ≠ developed." You reinforce it with a meta-instruction: "don't fill in the gaps." This creates a counterweight to the statistical prior. The model doesn't fully correct itself (teleological bias is very strong), but accuracy goes up.

Important to understand: This isn't "fixing" the model, it's compensating for an architectural weakness through prompt engineering. In zero-shot, models hallucinate completion 98% of the time. With explicit instructions, that drops to 40-60% (depending on the model). You can only remove the bias completely with aggressive methods (counterfactual: "imagine the action was interrupted"), but then the model becomes skeptical of everything.

The trade-off in prompts: - No explicit instructions → 98% false completions - With explicit instructions → ~40-60% false completions + ~35% false refusals (the model starts doubting even the obvious) - With aggressive blocking → 0% false completions, but ~90% false refusals

Pick the strictness level for the task: stricter for high-stakes decisions (hiring, legal analysis), looser for drafts.

05

Prompt Template

Analyze the text and split the actions into TWO categories:

1. COMPLETED ACTIONS — where a result is explicitly stated
   Markers: "did", "launched", "created", "achieved", + concrete result metrics

2. PROCESS WITHOUT A CONFIRMED RESULT — where involvement or intent is stated
   Markers: "was doing", "was launching", "was developing", "worked on"

CRITICALLY IMPORTANT:
- {action_in_progress} does NOT mean {action_completed}
- Examples:
  • "was developing a system" ≠ "developed a system"
  • "was launching a product" ≠ "launched a product"
  • "was writing a book" ≠ "wrote a book"
- If an explicit result is NOT stated — it's category 2
- Don't assume completion. Work ONLY with what's written

For category 2, add a note: "Result not confirmed — needs clarification"

[Text to analyze:]
{your_text}

What to fill in: - {action_in_progress} and {action_completed} — replace with verbs from your context. For resumes: "was developing/developed", for projects: "was implementing/implemented", for marketing: "was launching/launched" - {your_text} — a resume, project descriptions, a report, any text with actions in it

When to use it: - Reviewing resumes and portfolios - Assessing project progress - Checking whether commitments were fulfilled (contracts, agreements) - Fact-checking articles and press releases - Evaluating a company's or startup's track record (what they actually did vs what they tried)

06

Why This Matters

It's not a bug, it's a feature of the architecture. An LLM is trained to predict the most likely continuation. In the text corpus, "was building a house" most often leads to a context where the house got built. The model doesn't reason logically — it extrapolates patterns. For narratives that's useful (story generation); for factual analysis it's dangerous.

Where the problem is critical: - Hiring: "was involved in the project" → the model concludes "delivered the project" — you overrate the candidate - Due diligence: "the company was launching a product" → the model concludes "launched" — you invest in something that doesn't exist - Legal analysis: "began performing its obligations" ≠ "performed" — the model can distort the facts - Project management: "the team was building the feature" → "built" — you think the task is closed

This study shows the limits of LLMs. The model works as a narrative predictor, not a fact validator. When you ask it to "analyze," the model doesn't switch into "logician mode" — it keeps predicting what's likely. You have to switch the mode explicitly through the prompt: give it categories, rules, and inference blockers.

Practical insight: For tasks where facts matter (not creativity), always add a no-gap-filling rule. Phrases like "don't fill in the gaps," "only what's explicitly written," "if X isn't stated, write 'unknown'" work as a counterweight to the statistical bias.

How it ties into other LLM problems: - Hallucinations: the model fills in facts → same mechanism - Overconfidence: the model is sure about what it made up → reporting bias creates high confidence - Context neglect: the model ignores "but the project was put on ice" → the prior outweighs the context

Understanding the Imperfective Paradox gives you a mental model of how an LLM thinks: it doesn't reason from facts to conclusions, it reasons from statistics to the most likely continuation. Your job is to use the prompt to shift "most likely" toward "logically correct."

07

Limitations and Nuances

⚠️ You can't fully remove the bias with a prompt: Even with explicit instructions, models hallucinate completion in 40-60% of cases (versus 98% in zero-shot). It's an architectural trait, not a prompt mistake.

⚠️ Strictness vs usefulness trade-off: The harder you block gap-filling for goal-directed actions, the more often the model starts doubting obvious conclusions. The counterfactual prompt ("imagine interruptions") kills 100% of false completions but creates ~90% false refusals — the model stops drawing any conclusions from process verbs at all.

⚠️ Depends on model size: Small models (1.5B-7B parameters) barely respond to anti-bias instructions. The study found that the ability to distinguish action types is emergent (it appears abruptly) at the 32B+ parameter level. Qwen2.5-32B jumped from 53% errors (7B) to 9% (32B). If you're using a small model, the prompt will have a weak effect.

⚠️ The bias is strongest for creation verbs: Models hallucinate completion more often for "was creating a product" or "was building a system" (Creation verbs) than for "was transitioning into state X" (Change of State). If your context is about creating artifacts, the problem is sharper.

⚠️ It's not a permanent "fix": Every request needs explicit instructions. If you write "analyze the resume" without the blockers, the bias comes right back. This isn't training the model, it's steering through context.

08

How They Studied It

Researchers from LMU Munich and the University of Tokyo built the IMPERFECTIVENLI dataset — 400 premise-hypothesis pairs for testing logic. They took 100 goal-directed verbs (build, write, fix — there's an endpoint) and 100 process verbs (run, swim, play — no endpoint). For each verb they created 4 conditions:

Group A: "was building a gazebo, but a storm destroyed it" → "built a gazebo" (should be: False) Group B: "were running on the track, but it started to hail" → "ran on the track" (should be: True) Group C: "was building a gazebo" → "built a gazebo" (should be: Unknown) Group D: "were running on the track" → "ran on the track" (should be: True)

They tested 7 models (7-9B parameters): Llama-3.1, Mistral, Qwen2.5, DeepSeek, Gemma-2, GLM-4, Yi-1.5. They also tested Qwen2.5 at different sizes (1.5B → 72B) to check the effect of scale.

Main metric: Teleological Bias Rate (TBR) — the share of cases where the model predicted "completed" for Group C (it should be "unknown"). In zero-shot, nearly all models showed TBR = 94-98%, meaning they hallucinated completion almost every time.

What surprised them: Even when the text explicitly stated an interruption (Group A), models often ignored it. For example, Llama-3.1 in zero-shot said "completed" in 53% of cases despite the text saying "but a storm destroyed it". That showed how strong the bias is — it outweighs explicit context. The model sees "was building a house" → activates the idea of "a built house" so strongly that the attention mechanism doesn't manage to correct for the word "destroyed."

Why it happens: Embedding analysis showed that internally the model does distinguish "process" from "result" (the vectors differ). But at the answer output stage, the prior kicks in: "if a goal-directed action is mentioned → it was most likely completed" (statistics from the training data). The problem isn't knowledge representation, it's decision calibration. The model knows the difference but can't apply that knowledge against a strong statistical pattern.

Effect of prompts: Chain-of-Thought lowered TBR to 40-60%, but broke correct inferences for process verbs (accuracy dropped from 98% to 65%). The counterfactual prompt removed the bias completely (TBR = 0%), but the model began refusing to draw any conclusions. The study exposed a fundamental problem: models can't dynamically calibrate their level of skepticism to the verb type.

Practical insight: If logical correctness matters to you, use explicit instructions + be ready for the trade-off. You won't get a perfect balance through prompting, especially on models <30B parameters. On 32B+ models (Qwen2.5-32B, for example), prompts have a much stronger effect — that's where the ability to distinguish action types shows up as an emergent ability.

09

Resources

The Imperfective Paradox in Large Language Models Dataset and code: https://github.com/boleima/ImperfectiveParadox

Authors: Bolei Ma (LMU Munich & MCML), Yusuke Miyao (The University of Tokyo)

Theoretical background: Vendler (1957) — aspectual classes, Dowty (1977, 1979) — formalization of the Imperfective Paradox, Bennett & Partee (1978) — sub-interval property

Research digest

Key result

An LLM sees 'was developing a system' → concludes 'developed a system' 98% of the time. Even if the text says 'but the project was put on ice', the model still concludes it was completed. That breaks resume screening, pre-investment company checks, and project progress reviews — the model invents results where there are none. The cause: reporting bias in the training data. Texts usually mention goals once they've been achieved ('was launching a product' shows up more often in the context of success). Statistics outweigh logic — the model works as a narrative predictor, not a fact analyst. With explicit anti-bias instructions it drops from 98% to 40%, but it can't be removed completely.

Principle

The model distinguishes two kinds of actions, but reacts to them differently. Goal-directed ones ('was building a house', 'was writing a report') have an endpoint — 'was in the process' doesn't mean 'finished'. Process ones ('was running', 'was playing') have no goal — 'was in the process' = 'did it'. LLMs systematically assume completion for the first type, because in training texts 'was building X' means successful completion 80%+ of the time. Failures don't make it into the corpus (who writes 'started a startup — went bankrupt'?), successes do. The fix: an explicit fork in the prompt — 'completed' (there's a result marker) vs 'process without confirmation' (only involvement). Add a blocking rule: 'was developing ≠ developed'. The model won't fully correct, but accuracy will rise. Trade-off: the harder you block gap-filling, the more often the model starts doubting even the obvious.

Why it works

An LLM is trained on texts where goals are usually mentioned after the fact. News stories say 'the company was launching a product' in the context of relevant events — most often successful ones. Everyday flops ('started doing it, gave up') don't make it into the dataset. The model memorized that 'was launching' → 'launched' correlates with high probability. When you give explicit categories ('completed' vs 'in progress') and a rule ('X ≠ Y'), it creates a counterweight to the statistical pattern. The model focuses on distinguishing instead of predicting the most likely continuation. The study showed that for goal-directed actions ('was building', 'was developing', 'was launching'), hallucinations drop from 98% (zero-shot) to ~40% (with instructions). But there's a price: for process actions ('was running', 'was playing'), correct inferences drop from 98% to 65% — the model starts doubting everywhere. You can remove the bias completely with aggressive methods ('imagine the action was interrupted'), but then the model becomes paranoid and skeptical — it stops drawing any conclusions at all (~90% false refusals).

When to apply

Fact analysis → specifically for judging whether actions were completed, especially when accurate conclusions are critical. Good for: hiring (checking experience on a resume: 'was involved in the project' ≠ 'delivered the project'), vetting companies before investing (due diligence: 'was launching a product' vs 'launched'), project management (task status: 'was building the feature' ≠ 'built'), legal analysis ('began performing' ≠ 'performed'), fact-checking articles. NOT a fit for: creative tasks (story generation, brainstorming) — there, assuming completion is useful. Creative work needs extrapolation; factual analysis needs strictness about what's written.

Mini recipe

1. Give the model a fork: split actions into two categories — 'COMPLETED' (an explicit result marker: 'did', 'launched', 'created' + concrete metrics) vs 'PROCESS WITHOUT CONFIRMATION' (involvement stated: 'was doing', 'was launching', 'was developing'). 2. Add a blocking rule: spell out explicitly that process ≠ result. Give 3-5 concrete examples from your context: `'was developing a system' ≠ 'developed a system'`, `'was launching a product' ≠ 'launched a product'`. Use pseudo-tags for structure. 3. Include a meta-instruction: `'Don't assume completion. Work ONLY with what's written. If an explicit result is NOT stated — it's category 2'`. 4. For unconfirmed actions: ask the model to add the note `'Result not confirmed — needs clarification'`. That makes the uncertainty visible. 5. Calibrate strictness: for high-stakes decisions (hiring, legal analysis), tighten the blocking ('imagine possible interruptions'); for drafts, keep the baseline. Remember the trade-off: stricter = fewer false completions, but more false refusals.

Examples

[BAD]: `Here is a candidate's resume. List the products they successfully launched: [resume text with wording like 'was developing an app', 'was launching a marketplace', 'was rolling out a CRM']` — the model will return all three projects as completed, filling in the results. You'll overrate the candidate's experience. [GOOD]: `Analyze the resume and split the activities into TWO categories: 1. COMPLETED PROJECTS — where a result is explicitly stated ('launched', 'rolled out', 'shipped') 2. PROCESS WITHOUT A CONFIRMED RESULT — where only involvement is stated ('was developing', 'was launching', 'was rolling out') CRITICALLY IMPORTANT: - 'was launching' does NOT mean 'launched' - 'was developing' does NOT mean 'developed' - Don't fill in results. If no explicit result is stated — category 2 For category 2, note: 'Clarify in the interview — was the result achieved?' [resume text]` — the model will split the activities, flagging only explicit results. The rest it will mark 'needs clarification'. You'll see the real picture of the candidate's experience.

In plain words

Language models often trip over logic we handle without breaking a sweat, and the progressive aspect of verbs is their personal nightmare. The gist: for AI, the line between process and result is blurry. Linguists call this the imperfective paradox: if you were building a house, that doesn't mean you built it. You might have quit at the foundation or ridden off into the sunset. But if you were walking, you've already walked. Models mix up these scenarios, assuming any action that was started automatically means success — and that's a fundamental bug in how they understand cause and effect.

It's like watching a movie that cuts off halfway because the power went out. If the hero was running through the woods, the running already happened, and the ending doesn't matter. But if the hero was defusing a bomb when the screen went dark, we have no right to claim the city was saved. In this situation the LLM behaves like an overconfident viewer who imagines a happy ending where there may be none. For a model, "he was baking a cake" too often turns into a confident "the cake is ready", when in reality the kitchen might hold nothing but a pile of dirty dishes and smoke.

The researchers dug deeper and split verbs into two types: activities (running, smoking) and accomplishments (building, writing an article). In the first case the process equals the event; in the second, it doesn't. To test this, they built a dataset of "premise — hypothesis" pairs. It turned out that even top models fumble goal-directed actions. They don't get that a process can be cut short by an outside factor. Add a condition like "he was building a house until the money ran out", and the model may still hallucinate that construction was finished. Their process logic works worse than plain word matching.

Although the test was run in English, the principle is universal for any system that works with text. It applies to legal contracts, where it matters whether an action was completed, or medical reports, where undergoing treatment isn't the same as recovering. If you ask an AI to analyze a task-completion report, it may cheerfully report wins where the work simply got going and then stalled. This isn't a translation hiccup — it's the model's inability to grasp time and the finite nature of effort.

Bottom line: today's LLMs are hallucinating optimists who confuse effort with results. Until they learn to separate "was doing" from "did", trusting them with planning or complex analysis is risky — they'll confirm a task was done just because they saw a familiar verb. 10 out of 10 models need a hard check for this paradox. If you don't want a report about a "built" house that exists only in the model's imagination, watch the wording and demand confirmation of the finish, not the process.

AI lab assistant

Apply this study to your task

Describe what you're working on. AI takes the method and the measured results from this paper and adapts them to your case, or writes a ready prompt built on them.

Based on The Imperfective Paradox: LLMs Assume Goal-Directed Actions Got Finished arXiv:2601.09373

Sign in to apply this study New accounts get 50 free credits.