Вопросы с тегом «coq»

Coq - это интерактивное средство доказательства теорем, основанное на исчислении индуктивных построений.

44
Автоматизированное доказательство теорем

Я сам изучаю Автоматизированное доказательство теорем / SMT-решатели / Помощники по проверке и выкладываю серию вопросов о процессе, начинающемся здесь. Обратите внимание, что эти темы нелегко усваиваются без знания (математической) логики. Если у вас есть проблемы с основными терминами,...

28
Почему пустой тип C не аналогичен пустому / нижнему типу?

Википедия, а также другие источники, которые я обнаружил в списке voidтипа C как тип единицы, а не пустой тип. Мне кажется, что это сбивает с толку, так как мне кажется, что оно voidлучше подходит под определение пустого / нижнего типа voidНасколько я могу судить, ценности не обитают . Функция с...

23
Можно ли доказать неразрешимость проблемы остановки в Coq?

Я смотрел « Пять этапов принятия конструктивной математики » Андрея Бауэра, и он говорит, что существует два вида доказательств от противного (или две вещи, которые математики называют доказательством от противного): Предположим, что является ложным ... бла-бла-бла, противоречие. Следовательно,...

21
Рекурсивные определения над индуктивным типом с вложенными компонентами

Рассмотрим индуктивный тип, который имеет некоторые рекурсивные вхождения во вложенном, но строго положительном месте. Например, деревья с конечным ветвлением с узлами, использующими общую структуру данных списка для хранения дочерних элементов. Inductive LTree : Set := Node : list LTree ->...

17
Кто-нибудь на самом деле создал систему, которая пишет компьютерные программы из спецификации?

Кто-нибудь когда-либо писал систему (программное обеспечение или подробное объяснение на бумаге с простыми примерами), которая генерирует компьютерные программы? Я ввожу и он создает программу, которая перечисляет простые числа меньше 10. P r i m e ( x ) просто определяется как 1 < x ∧ ∄ Aпг я м...

14
Монадическая логика второго порядка для чайников

Я программист с автоматом, но не с логикой. Я читал в газетах, что они очень тесно связаны. Детерминированные конечные автоматы (DFA), древовидные автоматы и автоматы видимого нажатия - все они связаны с монадической логикой второго порядка (MSO). Хотя, я понимаю, что автоматы и люди (в статьях)...

13
Чем отличается Set от Type в Coq? [закрыто]

Закрыто. Этот вопрос не по теме . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос так это на тему для Computer Science Stack Exchange. Закрыто 2 года назад . Типы AFAIU могут быть Setэлементами, чьи элементы являются программами, или propositionэлементами,...

12
Доказательство тавтологии с coq

В настоящее время я должен изучить Coq и не знаю, как бороться с or: Как простой пример, я не вижу, как это доказать: Theorem T0: x \/ ~x. Буду очень признателен, если кто-нибудь сможет мне помочь. Для справки я использую этот шпаргалку . Также пример доказательства, которое я имею в виду: здесь...

10
Полиморфизм и индуктивные типы данных

Мне любопытно. Я работал над этим типом данных в OCaml : type 'a exptree = | Epsilon | Delta of 'a exptree * 'a exptree | Omicron of 'a | Iota of 'a exptree exptree Которым можно манипулировать, используя явно типизированные рекурсивные функции (функция, которая была добавлена ​​совсем недавно)....

10
Доказательство теорем в Coq

Фон Я обучаю помощи, Coq, самостоятельно. До сих пор я закончил читать Coq Ива Берто в спешке . Теперь моя цель состоит в том, чтобы доказать некоторые базовые результаты, касающиеся натуральных чисел, что завершается так называемым алгоритмом деления. Однако я столкнулся с некоторыми препятствиями...

10
Стандартные конструктивные определения целых, рациональных и действительных?

Натуральные числа определяются индуктивно как (используя синтаксис Coq в качестве примера) Inductive nat: Set := | O: nat | S: nat -> nat. Существует ли стандартный способ конструктивного определения целых чисел (и, возможно, других множеств, таких как рациональные и...

10
Почему рекурсивные типы необходимы в качестве примитивов для доказательств в системах зависимых типов?

Я относительно новичок в теории типов и зависимом программировании. Я изучал исчисление конструкций (CoC) и других систем чистого типа. Я особенно заинтересован в том, чтобы использовать его в качестве промежуточного представления для сохранения системы компиляции. Я понимаю , что (со) рекурсивные...

9
Почему Coq включает выражения let в основной язык

Coq включает в себя выражения let на своем основном языке. Мы можем переводить выражения let в приложения, подобные этому: let x : t = v in b ~> (\(x:t). b) v я понимаю, что это не всегда работает, потому что значение vне будет доступно при проверке типов b. Однако это можно легко исправить с...