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

Как применить функцию один раз во время упрощения в Coq?
Насколько я понимаю, вызовы функций в Coq непрозрачны. Иногда мне нужно использовать unfold , чтобы применить его, а затем fold , чтобы вернуть определение / тело функции к ее имени. Это часто бывает утомительно. Мой вопрос: есть ли более простой...
1806 просмотров
schedule 09.07.2023

Есть ли соглашение о порядке применения тактики / подсказок ssreflect?
Я пытаюсь понять, как комбинированные тактики ssreflect должны быть «декомпозированы» (или как они складываются в первую очередь). Одна из моих проблем - понять порядок и ассоциативность татикалов. Иногда мне кажется, что порядок идет справа...
121 просмотров
schedule 25.09.2022

Как использовать приложение для извлечения импликации в Coq
Я проиллюстрирую это на примере. H : R -> P -> Q H0 : R Подцель: (Q -> P) \ / (P -> Q) поэтому мой вопрос в том, как мне извлечь (P-> Q). У меня уже есть R, но когда я «применяю H в H0», он оценивает все и дает мне Q.
93 просмотров
schedule 29.03.2022

Coq - недокументированная ошибка при индукции с eqn:
Используя Coq 8.4pl3, я получаю сообщение об ошибке при индукции с вариантом eqn: , который не указан в разделе индукции в справочном руководстве. (* Export below requires Software Foundations 4.0. *) Require Export Logic. Inductive disjoint (X...
133 просмотров
schedule 20.03.2022

Разделите цель соединения на подцели
Рассмотрим следующее игрушечное упражнение: Theorem swap_id: forall (m n : nat), m = n -> (m, n) = (n, m). Proof. intros m n H. На данный момент у меня есть следующее: 1 subgoal m, n : nat H : m = n...
323 просмотров
schedule 12.01.2022

Как вытащить правую часть из равенства в coq
Если у меня есть следующее: H : some complicated expression = some other complicated expression и я хочу схватить u := some other complicated expression без жесткого кодирования в моем доказательстве (т. е. с использованием pose )...
88 просмотров
schedule 27.11.2023

Повышение уровня неудач тактики coq
При реализации сложной тактики в Ltac есть некоторые команды Ltac или вызов тактики, которые, как я ожидаю, потерпят неудачу и где это ожидается (например, чтобы завершить repeat или вызвать обратное отслеживание). Эти сбои обычно возникают на...
125 просмотров
schedule 08.10.2022

Упрощение подформул в Coq
Я пытаюсь решить уравнение вида A * B * C * D * E = F где * некоторая сложная левая ассоциативная операция. На данный момент все непрозрачно (включая * и A до F ), и можно сделать прозрачным через autounfold with M_db . Проблема...
270 просмотров
schedule 31.12.2022

На языке тактики coq в чем разница между интро и интро
На языке тактики Coq, в чем разница между intro и intros ?
483 просмотров
schedule 01.09.2022

Примените функцию к обеим сторонам равенства в гипотезе Coq
Вопрос, который у меня есть, очень похож на вопрос, представленный в приведенной ниже ссылке, но на основе гипотезы, а не цели. Примените функцию к обеим сторонам равенства в Coq? Скажем, у меня есть следующее определение: Definition...
887 просмотров
schedule 28.12.2023

Экзистенциальные цели выполняются слишком рано
У меня есть Class , содержащий как данные, так и аксиомы. Я хочу создать еще один экземпляр в режиме проверки на основе (1) существующего экземпляра и (2) некоторых других входных данных. Я хочу destruct этот второй ввод перед созданием нового...
59 просмотров
schedule 09.03.2023

Ltac: делайте что-то другое в каждой цели
У меня есть сценарий проверки, в котором я исследую несколько случаев, и в настоящее время он довольно медленный, поскольку у меня есть несколько стратегий для решения целей, и я пробую каждую из них в каждом случае. Я знаю, что мне нужно применять...
217 просмотров

Coq: Доказательство связи между ‹и ≤
Я изучаю Coq прямо сейчас, и в более крупном доказательстве меня озадачило следующее подкрепление: Theorem sub : ∀ n m : nat, n ≤ m → n ≠ m → n < m. Или в разложенном виде: Theorem sub : ∀ n m : nat, n ≤ m → n ≠ m → S n ≤ m....
224 просмотров
schedule 08.04.2024

Coq просто / разворачивается только один раз. (Замените часть цели результатом одной итерации функции.)
Я преподаю в университете на курсе Системы типов языков , и профессор использовал следующий пример для индуктивных доказательств в теории типов на доске на прошлой лекции: Предположим, что есть натуральные числа, определенные индуктивно (по...
389 просмотров
schedule 02.06.2022

Объединение баз данных подсказок в ядро
Есть ли способ добавить все леммы в базу данных подсказок в ядро, чтобы мне не приходилось писать auto with foo везде в файле?
30 просмотров
schedule 15.11.2023

Вариант индукционной тактики, не требующий использования слова «запомнить» в подтермах
Скажем, у меня есть два отношения R1 и R2 . Если мне нужно решить проблему индукцией по члену R1 A (R2 B C) , мне нужно сначала сделать remember R2 B C , иначе я потеряю информацию о том, что второй аргумент R1 был равен R2 B C . Есть ли...
22 просмотров
schedule 18.05.2023

Применение зависимого типа к аргументу для утверждения цели в Coq?
Если у меня есть такая общая установка, как следующая, как я могу доказать, что утверждаю (f a)? A : Type f : A -> Prop a : A ... ============================ f a В частности, почему я не могу использовать любую из этих тактик и что...
55 просмотров
schedule 30.04.2023

Дает ли что-нибудь использование тактики разворота с последующим сбросом в Coq?
Добьется ли когда-нибудь unfold def. fold def. чего-нибудь в доказательстве Coq? Иными словами: будет ли когда-нибудь разница между этими двумя последовательностями применения тактики?: unfold def. fold def. cbn. cbn.
107 просмотров
schedule 29.12.2022

Ошибка Coq: невозможно объединить true с is_true (0 ‹a - b - 3)
Не уверен, что делаю неправильно, но я думал, что reflexivity должен работать ниже, но это не так. a, b : nat H : (1 <=? a - b - 3) = true ______________________________________(1/7) is_true (0 < a - b - 3) Я также пробовал apply...
96 просмотров
schedule 23.02.2023