Описание тега ssreflect
Язык доказательства SSReflect - это набор тактик Coq, который допускает мелкомасштабное отражение. Это основной язык, используемый в проекте Mathematical Components, который был интегрирован в vanilla Coq, начиная с версии 8.7.
1
ответ
Канонические структуры в ssreflect
Я пытаюсь разобраться с каноническими структурами в ssreflect. Есть 2 фрагмента кода, которые я взял отсюда. Я принесу кусочки для bool и варианты типов. Section BoolFinType. Lemma bool_enumP : Finite.axiom [:: true; false]. Proof. by case. Qed. Def…
23 авг '17 в 13:55
1
ответ
Равенство мощностей двух типов finType с биекцией
У меня два finTypeс биекцией между ними. На данный момент мне нужен тот факт, что у них одинаковый кардинал. Однако я не могу найти ни этой леммы, ни других лемм, с помощью которых можно легко доказать утверждение. Мне кажется, что доказательство не…
08 июн '18 в 15:33
2
ответа
Когда необходимо использовать `:` (двоеточие) в ssreflect/Coq?
Я пытаюсь понять точное значение : (двоеточие) в Coq/ssreflect доказательствах в терминах не-ssreflect Coq. Я читал, что это как-то связано с движением вещей к цели (как обобщение??) и является противоположностью =>, которые двигают вещи в гипоте…
28 дек '15 в 21:16
1
ответ
Получите ssreflect finType из seq над finType с помощью uniq
У меня есть структура, состоящая из последовательности над конечным типом и доказательства uniq этой последовательности. Это должно описывать тип, который, конечно, конечен, но я не вижу, как это показать. Я думал, что мог бы использовать UniqFinMix…
17 фев '19 в 23:18
0
ответов
Приведение finset к finType в Coq/Ssreflect
Я изучаю Ssreflect и хочу знать, как решить эту ситуацию. Моя идея состоит в том, чтобы определить график (как запись), а затем сгенерировать другой график. Ниже я показываю фрагмент кода (который я извлек из большего), который говорит сам за себя: …
06 дек '18 в 23:24
1
ответ
Coq - доказательство более пустого диапазона в Ssreflect
Я должен доказать цель в виде: forall x: ordinal_finType m, P x Я в настоящее время в случае, когда у меня есть Hm: m = 0 в моем стеке, так что это по сути forall по пустому набору. Как я могу действовать в этом случае? С помощью case => x. остав…
24 май '17 в 12:56
1
ответ
Автоматизация ssreflect, Coq при работе с противоречивыми гипотезами о натуральных числах
При использовании ssreflect в следующей лемме: From mathcomp Require Import ssreflect ssrfun ssrbool ssrnat eqtype. Lemma nat_dec n m: (m <= n) -> (~~ (m <= n)) -> False. Proof. intros A notA. (* auto. *) red in A. red in notA. (* auto. …
18 июл '17 в 15:17
1
ответ
Конечный список с неизвестным размером
Я немного запутался, пытаясь определить некоторые структуры, используя библиотеку math-comp. Я хочу определить структуру, которая имеет функцию, начиная от набора значений и возвращая списки других значений. Я пытаюсь определить эту структуру как fi…
24 окт '18 в 12:03
1
ответ
Доказательство изоморфизма равенства Мартин-Лофа и индукции пути в Coq
Я изучаю Coq и пытаюсь доказать изоморфизм между равенством Мартина-Лофа и равенством Пути. Я определил два равенства следующим образом. Module MartinLof. Axiom eq : forall A, A -> A -> Prop. Axiom refl : forall A, forall x : A, eq A x x. Axio…
03 авг '17 в 15:16
1
ответ
Nix: установка ssreflect
Я использую Coq (версии 8.5-6), установленный с Nix. Я хочу установить ssreflect, желательно также с Nix. Единственная информация, которую я нашел об этом, здесь. Тем не менее, речь идет не об установке ssreflect, а о том, чтобы просто попробовать е…
09 июн '17 в 20:14
2
ответа
Доказательство простого неравенства в Ssreflect
У меня проблемы с некоторыми довольно простыми доказательствами в Coq, использующими библиотеку MathComp для рефлексии. Предположим, я хочу доказать эту лемму: From mathcomp Require Import ssreflect ssrbool ssrnat. Lemma example m n: n.+1 < m -&g…
10 апр '17 в 21:19
1
ответ
Coq Reals и Ssreflect GRings
Я хотел бы использовать леммы ssreflect на реалах, определенных в Coq.Reals.Raxioms, Как я могу это сделать? Например, я хотел бы иметь возможность использовать add, mulи т. д. операции, определенные для ssralg.GRing.Ring непосредственно на переменн…
16 апр '18 в 16:42
1
ответ
Coq - Условие доказательства элементов последовательности в Ssreflect
У меня есть цель, которая выглядит так: x \in [seq (f v j) | j <- enum 'I_m & P v j] -> 0 < x В приведенном выше f является определением, порождающим решение неравенства в зависимости от v, j а также P v j является предикатом, ограничив…
29 май '17 в 13:01
1
ответ
Мощность finFieldType / критерий Эйлера
Я пытаюсь доказать очень ограниченную форму критерия Эйлера: Variable F : finFieldType. Hypothesis HF : (1 != -1 :> F). Lemma euler (a : F) : a^+(#|F|.-1./2) = -1 -> forall x, x^+2 != a. У меня уже есть большая часть доказательств, но я осталс…
25 июн '18 в 20:05
2
ответа
Как установить SSReflect и MathComp в Linux?
Я успешно установил Coq 8.6 и CoqIDE в Linux (Ubuntu 17.04). Тем не менее, я не знаю, чтобы продолжить, чтобы добавить SSReflect и MathComp к этой установке. Все ссылки, которые я проверил, показались мне очень запутанными. У кого-нибудь есть прямой…
13 май '17 в 15:54
1
ответ
Что делают фигурные скобки {} в ssreflect rewrite
Я читаю и играю с учебником ssreflect и столкнулся с использованием {} для цитирования вещей, которые я не совсем понимаю: Variables P Q : bool -> Prop. Hypothesis P2Q : forall a b, P (a || b) -> Q a. Goal forall a, P (a || a) -> True. move…
01 янв '16 в 23:59
1
ответ
Извлечь / использовать подтверждение членства из набора ssreflect
РЕДАКТИРОВАТЬ: я сделал пример более минимальным, введя структуру, которая увеличивает элемент путем переноса доказательства членства указанного элемента в набор: Structure elem_and_in_proof {T : finType} (s : {set T}) := {el :> T ; Helin : el \i…
18 фев '19 в 00:47
2
ответа
Предполагает ли ssreflect исключенную середину?
Я читаю учебник ssreflect, который гласит: Ниже мы докажем..., переведя высказывание в его логический аналог, что легко доказать с помощью грубой силы. Этот метод доказательства называется отражением. Дизайн Ssreflect учитывает, и дух ssreflect реко…
29 дек '15 в 23:49
1
ответ
Упорядоченный seq в Coq/SSreflect
В настоящее время я играю с красно-черными деревьями в Coq и хотел бы составить списки nat с заказом, так что они могут быть сохранены на красно-черном дереве с помощью MSetRBT модуль. По этой причине я определил seq_lt как показано: Fixpoint seq_lt…
23 июн '17 в 23:28
1
ответ
Coq - ошибка зависимого типа при перезаписи
Я использую библиотеку математических компонентов, и я пытаюсь доказать это: Lemma card_sub_ord (k : nat) (P : nat -> bool) : #|[set i : 'I_k | P i]| <= k. Proof. set S := [set i : 'I_k | P i]. have H1 : S \subset 'I_k. by apply: subset_predT.…
11 май '17 в 15:13