Вопросы по теме 'coq'

Сохранение информации при использовании индукции?
Я использую Coq Proof Assistant для реализации модели (небольшого) языка программирования (расширение реализации Featherweight Java Бруно Де Фрайне, Эриком Эрнстом, Марио Зюдхолтом). Одна вещь, которая постоянно возникает при использовании тактики...
3534 просмотров
coq
schedule 12.05.2022

Параметр подмножества
У меня есть набор в качестве параметра: Parameter Q:Set. Теперь я хочу определить еще один параметр, который является подмножеством Q. Что-то вроде: Parameter F: subset Q. Как я могу это определить? Я думаю, что я могу добавить...
1022 просмотров
coq
schedule 26.05.2022

Как делать кейсы с индуктивным типом в Coq
Я хочу использовать тактику destruct , чтобы доказать утверждение случаями. Я прочитал пару примеров в Интернете, и я запутался. Может кто-нибудь объяснить это лучше? Вот небольшой пример (есть и другие способы решения, но попробуйте...
4286 просмотров
schedule 21.11.2022

Использовать функцию после сгенерированной извлечением из Coq в Ocaml
У меня есть папка tmp , которая создается после извлечения из coq в ocaml. ~/tmp/cpf0.ml cpf0.mli cpf0.o cpf0.cmi cpf0.cmx cpf0.cmo main.ml - это файл, который я использую для вызова одной функции в cpf0 : let prf = Cpf0.proof;;...
200 просмотров
schedule 03.04.2024

экзистенциальный квантификатор: как обращаться к экземпляру
У меня есть теорема, в которой я показываю, что существует объект, обладающий некоторым свойством. Я доказал эту теорему, построив объект. Затем, в другом доказательстве, я хотел бы сослаться на объект, определенный в первой теореме в формулировке...
621 просмотров
coq
schedule 20.05.2022

функции в Coq
Я должен доказать некоторые формализованные вещи. Есть две функции: получает несколько строк и массив строк, сравнивает, если есть совпадение, и возвращает bool. Я хочу проверить их обе в лемме и проверить ее. В программировании функции выглядят...
1138 просмотров
schedule 15.06.2022

как использовать модули, чтобы скрыть леммы в coq?
У меня есть теорема T, ее доказательство и бесчисленное количество лемм, использованных при ее доказательстве. Я хотел бы скрыть леммы и сделать доступной только теорему - главным образом потому, что я не хочу думать о хороших, глобальных именах...
234 просмотров
coq
schedule 31.01.2023

Отделение данных, которыми нужно манипулировать, от доказательств того, что манипуляции оправданы.
У меня есть тип списков, головы и хвосты которых должны быть в определенном смысле "совместимы": Inductive tag := A | B. (* Just an example *) Inductive element : tag -> tag -> Set := | AA : element A A | AB : element A B | BB :...
77 просмотров
coq
schedule 02.12.2022

Абстрагирование приводит к некорректно набранному, но хорошо напечатанному термину
На какое-то время я застрял в проблеме, для которой я привел небольшой автономный пример: Axiom f : nat -> Set. Goal forall (n : nat) (e : n = n) (x : f n), match e in _ = _n return f _n -> Prop with | Logic.eq_refl => fun v : f n...
823 просмотров
coq
schedule 15.04.2023

Другой способ индукции списков, требующих доказательства
Я дал индуктивное определение списков (называемых listkind ), чтобы облегчить мне доказательство конкретной теоремы индукцией по listkind , а не по списку. Inductive listkind {X}: list X -> Prop := | l_nil : listkind [] | l_one : forall a:X,...
591 просмотров
schedule 17.04.2022

Двойная индукция в Coq
По сути, я хотел бы доказать это следующим результатом: Lemma nat_ind_2 (P: nat -> Prop): P 0 -> P 1 -> (forall n, P n -> P (2+n)) -> forall n, P n. это рекуррентная схема так называемой двойной индукции. Я два раза...
1404 просмотров
schedule 12.02.2023

Спросите о времени работы программы
Я пишу программу синтаксического анализатора (написанную на OCaml), которая принимает входные данные в формате xsd, а затем генерирует их в файл Coq. Но потребовалось много времени (~: 0m.0152s) для генерации в терминале. Я хотел бы знать некоторые...
85 просмотров
schedule 07.08.2022

Coq: Как добавить содержательные подсказки?
Я новичок в Coq и, возможно, делаю совершенно неправильный путь. Мне кажется, что мне нужно выбирать между написанием аксиом / теорем, которые хорошо читаются человеком, и аксиомами / теоремами, которые полезны в качестве подсказок, поскольку в...
1238 просмотров
coq
schedule 13.04.2023

Тип Cong, subst и равенство в языках программирования с зависимой типизацией
В теории зависимо типизированных типов есть тип равенства. Обычно при определении этого типа вводится ряд утилит, а именно cong и subst. Насколько они выразительны? Можно ли выразить все, что можно, с помощью элиминатора на равенство с ними?
242 просмотров
schedule 18.06.2023

Теорема plus_n_n_injective, упражнение
Нужна помощь с упражнением от Software Foundations . Это теорема: Theorem plus_n_n_injective : ∀n m, n + n = m + m → n = m. Proof. Я получаю n = 0 в качестве цели и n + n = 0 в качестве гипотезы. Как двигаться дальше?
995 просмотров
coq
schedule 13.06.2022

Директива Coq Arguments
Я читаю книгу Основы программного обеспечения и наткнулся на команду, которая объявляет параметры как неявные : Arguments nil {X}. где, например: Inductive list (X:Type) : Type := | nil : list X | cons : X -> list X -> list X....
897 просмотров
schedule 21.08.2022

Проверить теоремы coq в скрипте сборки?
Я использую coq для изучения метатеории языка программирования. Составление и проверка теорем в интерактивном режиме в среде IDE — это хорошо, но мне нужно автоматизировать (повторную) проверку. Я вижу справочные страницы, но нигде не вижу...
151 просмотров
schedule 28.07.2023

Не удается загрузить плагин CoqIDE для vim
Я пытаюсь использовать плагин CoqIDE для vim, который нашел на этой странице. Я поместил файл coq_IDE.vim в папку ~ / .vim / ftplugin. Мой текущий файл .vimrc: set showcmd set number imap hl <Esc> filetype plugin on Но когда я...
796 просмотров
schedule 29.05.2022

применение функции с другим полем
Есть ли способ применить гипотез к нашей цели в Coq? Например: Гипотеза: 1 subgoal a : nat l1 : list nat l2 : list nat H : Prefix (a :: l1) l2 IHl1 : Prefix l1 l2 -> sum l1 <= sum l2 Цель...
146 просмотров
coq
schedule 24.06.2023

Файловый ввод/вывод в Coq через ynot
У кого-нибудь есть небольшой рабочий фрагмент кода для чтения строк из файла в Coq (похоже, это делает библиотека ynot, но я не могу понять)? Ynot можно найти здесь: http://ynot.cs.harvard.edu/ Дистрибутив содержит Каталог IO в примерах,...
464 просмотров
schedule 19.11.2022