Logic-of-Thought

Logic-of-Thought в 2026: logic-augmented reasoning pattern, где текст сначала переводится в propositions и формальные связи, а уже потом проходит пошаговую верификацию.

Logic-of-Thought (LoT, «логика мысли») — техника, которая расширяет Chain-of-Thought элементами формальной логики. В 2026 её полезно подавать как logic-augmented reasoning pattern: сначала задача разбирается на propositions и формальные связи, затем reasoning проходит через более жёсткий логический каркас, чем в обычном natural-language CoT.

Представьте юриста, который разбирает дело. Обычный подход — прочитать материалы и рассуждать «из головы». Logic-of-Thought — это как если бы юрист сначала выписал все факты по пунктам, перевёл их в формулы («если А, то Б»; «если не В, то не Г»), а потом проверял каждый свой вывод по этим формулам. Это дольше, но гарантирует, что ни один логический шаг не пропущен и ни одно допущение не нарушено.

Зачем нужна логика поверх CoT

Chain of Thought отлично работает на многих задачах: модель рассуждает по шагам и приходит к ответу. Но на задачах формальной логики (силлогизмы, условные выводы, задачи с отрицанием) CoT часто ошибается: модель «перескакивает» через шаги, путает «если» с «только если», игнорирует отрицания. Причина — CoT опирается на естественный язык, который допускает двусмысленности.

Logic-of-Thought решает проблему в три этапа: (1) извлечь факты из задачи, (2) записать их формально, (3) рассуждать, проверяя каждый шаг по формальным правилам. Модель получает «логический каркас» до генерации ответа — это как шпаргалка с правилами, которая не позволяет ошибиться.

Стандартный CoT
Задача: Все учёные — исследователи. Некоторые исследователи — преподаватели. Вывод: Некоторые учёные — преподаватели. CoT: Все учёные — исследователи. Некоторые исследователи — преподаватели. Значит, среди учёных есть преподаватели. Ответ: Верно. ❌ Ошибка! Из «все A ⊂ B» и «некоторые B ∩ C ≠ ∅» НЕ следует «некоторые A ∩ C ≠ ∅».
Logic-of-Thought (LoT)
LoT — фаза 1 (пропозиции): P1: Все учёные — исследователи. P2: Некоторые исследователи — преподаватели. LoT — фаза 2 (логические выражения): P1: ∀x: Учёный(x) → Исследователь(x) P2: ∃x: Исследователь(x) ∧ Преподаватель(x) LoT — фаза 3 (верификация): Из P1 и P2 не следует ∃x: Учёный(x) ∧ Преподаватель(x). Исследователи-преподаватели могут не быть учёными. Ответ: Неверно — вывод логически не обоснован.
LoT не заменяет CoT, а усиливает его. Формальные выражения добавляются в контекст перед рассуждением — модель «видит» логическую структуру задачи и использует её как опору. По данным авторов, это повышает точность на логических бенчмарках до +19% по сравнению с CoT.

Как работает Logic-of-Thought

Три фазы LoT

Ключевая идея LoT — разделить процесс на три последовательные фазы. Каждая фаза трансформирует представление задачи: от естественного языка к формальной логике и обратно.

Примеры применения

Claude
Реши задачу методом Logic-of-Thought.

Задача: В компании действуют правила:
1. Все сотрудники с опытом более 5 лет получают бонус.
2. Все сотрудники с бонусом могут взять дополнительный отпуск.
3. Мария работает в компании 3 года.
4. Иван работает в компании 7 лет.

Вопрос: Кто может взять дополнительный отпуск?

Шаг 1 — Извлеки пропозиции.
Шаг 2 — Запиши логические выражения.
Шаг 3 — Рассуждай и верифицируй каждый вывод.
Ответ модели

Фаза 1 — Пропозиции: P1: Все сотрудники с опытом > 5 лет получают бонус. P2: Все сотрудники с бонусом могут взять допотпуск. P3: Опыт(Мария) = 3 года. P4: Опыт(Иван) = 7 лет.

Фаза 2 — Логические выражения: P1: ∀x: Опыт(x) > 5 → Бонус(x) P2: ∀x: Бонус(x) → ДопОтпуск(x) P3: Опыт(Мария) = 3 P4: Опыт(Иван) = 7

Фаза 3 — Верификация:

• Иван: Опыт(Иван) = 7 > 5 → по P1: Бонус(Иван) = true → по P2: ДопОтпуск(Иван) = true. ✓ Логически обосновано.

• Мария: Опыт(Мария) = 3, что НЕ > 5 → P1 не применима → Бонус(Мария) неизвестен → P2 не применима → ДопОтпуск(Мария) — не следует из данных.

⚠ Важно: мы НЕ можем утверждать, что Мария не получает бонус — только что из данных правил это не следует. Бонус может быть получен другим способом.

Ответ: Из данных правил следует, что Иван может взять дополнительный отпуск. Для Марии — недостаточно информации.

ChatGPT
Метод: Logic-of-Thought.

Задача (контрапозиция):
Если идёт дождь, то улицы мокрые.
Улицы сухие.
Идёт ли дождь?

Выполни три фазы LoT: пропозиции → логика → верификация.
Ответ модели

Фаза 1 — Пропозиции: P1: Если идёт дождь, то улицы мокрые. P2: Улицы сухие (= не мокрые).

Фаза 2 — Логические выражения: P1: Дождь → Мокрые_улицы P2: ¬Мокрые_улицы

Фаза 3 — Верификация: Применяем контрапозицию к P1: Дождь → Мокрые_улицы ≡ ¬Мокрые_улицы → ¬Дождь (modus tollens)

Из P2 (¬Мокрые_улицы) и контрапозиции P1: ¬Мокрые_улицы → ¬Дождь ¬Мокрые_улицы = true Следовательно: ¬Дождь = true

Ответ: Нет, дождь не идёт. Вывод получен через modus tollens — формально корректная логическая операция.

Gemini
Метод: Logic-of-Thought.

Задача: Рассмотрим утверждения:
1. Ни один робот не испытывает эмоций.
2. Все существа, испытывающие эмоции, способны к эмпатии.
3. Некоторые ассистенты — роботы.

Вопрос: Верно ли, что некоторые ассистенты неспособны к эмпатии?

Выполни три фазы LoT.
Ответ модели

Фаза 1 — Пропозиции: P1: Ни один робот не испытывает эмоций. P2: Все существа с эмоциями способны к эмпатии. P3: Некоторые ассистенты — роботы.

Фаза 2 — Логические выражения: P1: ∀x: Робот(x) → ¬Эмоции(x) P2: ∀x: Эмоции(x) → Эмпатия(x) P3: ∃x: Ассистент(x) ∧ Робот(x)

Фаза 3 — Верификация:

Из P3: существуют ассистенты-роботы. Назовём такого x. Из P1: Робот(x) → ¬Эмоции(x). Значит, x не испытывает эмоций.

Теперь ключевой момент: из P2 следует Эмоции(x) → Эмпатия(x). Контрапозиция P2: ¬Эмпатия(x) → ¬Эмоции(x).

Но нам нужно обратное: ¬Эмоции(x) → ¬Эмпатия(x)? Это НЕВЕРНАЯ контрапозиция! Из P2 следует только что «если есть эмоции, то есть эмпатия», но не «если нет эмоций, то нет эмпатии». Эмпатия может существовать и без эмоций.

Мы знаем: ассистенты-роботы не имеют эмоций (из P1 + P3). Но мы НЕ можем заключить, что они неспособны к эмпатии — P2 не даёт такого вывода.

Ответ: Из данных посылок нельзя сделать вывод, что некоторые ассистенты неспособны к эмпатии. Это было бы ошибкой отрицания антецедента (denying the antecedent).

Сравнение точности

Авторы тестировали LoT на нескольких логических бенчмарках, сравнивая с базовым CoT-промптингом. Наибольший прирост — на задачах с отрицанием и контрапозицией, где CoT систематически ошибается.

Точность на логических бенчмарках: CoT vs LoT (%)
LoT — ReClor75%
CoT — ReClor62%
LoT — LogiQA68%
CoT — LogiQA53%
LoT — AR-LSAT58%
CoT — AR-LSAT39%

LoT особенно эффективен на:

  • Силлогизмах и выводах — задачи с кванторами «все», «некоторые», «ни один»
  • Контрапозиции и modus tollens — «если А, то Б» + «не Б» → «не А»
  • Задачах с отрицанием — двойные отрицания, «не все» vs «все не»
  • Многоступенчатых рассуждениях — цепочки из 3+ логических шагов

Где LoT реально уместен

Техника особенно полезна там, где:

  • важны логические отношения, а не просто world knowledge;
  • ошибка часто возникает из-за отрицаний, кванторов и условий;
  • задачу можно reasonably formalize без огромных потерь смысла.

Это хороший fit для:

  • formal logic tasks;
  • policy / contract reasoning;
  • compliance rules;
  • сложных conditional workflows.

Но LoT слабее там, где ответ зависит не от логической формы, а от внешних фактов, retrieval или domain knowledge. Там формализация сама по себе не спасает.

Реализация в промптах

Шаблон LoT-промпта

Ключ к успешной реализации — чёткое разделение на три фазы в системном промпте. Модель должна явно пройти каждую фазу, а не «перескочить» сразу к ответу.

from openai import OpenAI

client = OpenAI()

LOT_SYSTEM_PROMPT = """Ты решаешь задачи методом Logic-of-Thought (LoT).

Каждую задачу обрабатывай строго в три фазы:

## Фаза 1: Извлечение пропозиций
- Выдели ВСЕ атомарные утверждения из задачи.
- Нумеруй: P1, P2, P3...
- Каждая пропозиция = один факт или одно правило.
- Сложные предложения разбивай на простые.

## Фаза 2: Логические выражения
Переведи пропозиции в формальную логику:
- ∀x (для всех x)
- ∃x (существует x)
- → (импликация: если...то)
- ∧ (конъюнкция: и)
- ∨ (дизъюнкция: или)
- ¬ (отрицание: не)
- ↔ (эквиваленция: тогда и только тогда)

## Фаза 3: Верификация рассуждения
- Рассуждай по шагам, ссылаясь на выражения из Фазы 2.
- Каждый вывод обосновывай формальным правилом:
  modus ponens, modus tollens, транзитивность и т.д.
- Если вывод НЕ следует из посылок — явно отмечай это.
- Остерегайся: отрицание антецедента, утверждение консеквента,
  undistributed middle."""


def solve_with_lot(task: str, title: str = "gpt-4o") -> str:
    """Решает задачу методом Logic-of-Thought."""
    response = client.chat.completions.create(
        model=model,
        messages=[
            {"role": "system", "content": LOT_SYSTEM_PROMPT},
            {"role": "user", "content": task}
        ],
        temperature=0,
        max_tokens=4096,
    )
    return response.choices[0].message.content


result = solve_with_lot(
    "Все менеджеры проекта владеют Jira. "
    "Некоторые владеющие Jira также владеют SQL. "
    "Алексей — менеджер проекта. "
    "Владеет ли Алексей SQL?"
)
print(result)

Логические операторы в контексте LLM

Модели хорошо понимают стандартную логическую нотацию, но для надёжности полезно включить «легенду» прямо в промпт:

ОператорЗаписьПримерЗначение
ИмпликацияA → BЕсли A, то B
КонъюнкцияA ∧ BA и B одновременно
ДизъюнкцияA ∨ BA или B (или оба)
Отрицани嬬AНе A
Квантор всеобщности∀x∀x: P(x)Для всех x верно P
Квантор существования∃x∃x: P(x)Существует x, для которого P
ЭквиваленцияA ↔ BA тогда и только тогда, когда B

На практике модели GPT-4o и Claude хорошо работают с символьной нотацией. Gemini иногда предпочитает текстовую запись — в таком случае явно попросите «используй символы ∀, ∃, →, ∧, ∨, ¬».

Плюсы и минусы

Плюсы

  • Повышает точность на логических задачах до +19% по сравнению с CoT
  • Выявляет скрытые допущения и логические ловушки (отрицание антецедента, undistributed middle)
  • Один промпт — не нужна внешняя оркестрация, всё работает внутри контекста
  • Универсален: совместим с любой моделью, поддерживающей CoT
  • Прозрачность: каждый вывод обоснован формальным правилом

Минусы

  • Дорогой по токенам: формализация и верификация удлиняют ответ в 2-3 раза
  • Не даёт выигрыша на задачах без логической структуры (творчество, суммаризация)
  • Требует сильных моделей — слабые модели ошибаются при формализации
  • Модель может формализовать неправильно — и тогда верификация не спасёт
  • Overkill для простых задач: если достаточно CoT, LoT только замедлит

Как понимать границы техники в 2026

LoT не превращает LLM в theorem prover. Это важно: техника помогает дисциплинировать reasoning, но не заменяет формальные solver-ы и не гарантирует корректность только потому, что модель написала несколько символов и .

Хорошая practical mental model такая:

  • LoT улучшает reasoning discipline;
  • solver/tool даёт настоящую формальную проверку;
  • RAG закрывает factual layer;
  • judge/eval проверяет финальный answer.

Связанные техники

  • Chain of Thought (CoT) — базовая техника пошагового рассуждения, которую LoT расширяет формальной логикой
  • Faithful Chain-of-Thought — верификация фактов в цепочке рассуждений (фокус на фактчекинг vs логику)
  • Contrastive CoT — добавление примеров ошибочных рассуждений к правильным
  • Self-Consistency — мажоритарное голосование по нескольким цепочкам, ортогональный подход к повышению точности
  • Diagram of Thought — DAG-структура рассуждений с критикой, но без формальной логики
  • Program of Thoughts — генерация кода вместо текста, полезна для вычислительных задач (LoT — для логических)

Проверьте себя

Проверьте себя

1. Какие три фазы включает Logic-of-Thought?

2. На каких задачах LoT даёт наибольший прирост по сравнению с обычным CoT?

3. Почему LoT помогает избежать ошибки «отрицание антецедента»?