Вопросы по теме 'agda'
Почему не может (Set - ›Set) иметь тип Set?
В Agda тип forall определяется таким образом, что все следующие имеют тип Set1 (где Set1 - тип Set , а A - тип Set ):
Set → A
A → Set
Set → Set
Однако следующее имеет тип Set :
A → A
Я понимаю, что если бы Set имел тип...
1055 просмотров
schedule
11.07.2023
С чего начать программирование зависимого типа?
Существует учебник Idris, учебник Agda и многие другие документы в стиле учебника и вводные материалы с бесконечными ссылками на вещи, которые еще предстоит изучить. Я как бы ползаю посреди всего этого и большую часть времени застреваю в...
2879 просмотров
schedule
27.09.2022
Насколько опасен TrustMe?
Вот что я понимаю о Relation.Binary.PropositionalEquality.TrustMe.trustMe : кажется, что он принимает произвольные x и y и:
если x и y действительно равны, становится refl
если это не так, он ведет себя как postulate lie : x ≡ y ....
372 просмотров
schedule
01.07.2023
Разрешаемые предикаты в Агде
Я новичок в Agda, и мне нужна помощь, чтобы понять функцию Decidable и тип Dec .
Я пытаюсь определить предикат логики первого порядка и хочу закодировать с доказательством какое-то логическое значение. Я нашел способ сделать это с помощью типа...
474 просмотров
schedule
14.10.2023
Тип Cong, subst и равенство в языках программирования с зависимой типизацией
В теории зависимо типизированных типов есть тип равенства. Обычно при определении этого типа вводится ряд утилит, а именно cong и subst. Насколько они выразительны? Можно ли выразить все, что можно, с помощью элиминатора на равенство с ними?
242 просмотров
schedule
18.06.2023
Нужно ли мне неоднородное равенство?
Краткая предыстория: я реализую контексты и переименования, используя индексы де Брейна, а затем расширяю эти понятия с помощью «неопределенного» имени, написанного ε. Неопределенное имя индуцирует частичный порядок имен в Γ, а также переименований...
400 просмотров
schedule
28.03.2022
Можно ли получить свободные теоремы как пропозициональные равенства?
«Свободные теоремы» в смысле статьи Уодлера «Теоремы бесплатно!» уравнения о некоторых значениях выводятся только на основе их типа. Так что, например,
f : {A : Set} → List A → List A
автоматически удовлетворяет
f . map g = map g . f...
370 просмотров
schedule
02.04.2023
Как мне доказать, казалось бы, очевидный факт, когда соответствующие типы абстрагируются лямбдой в Идрисе?
Я пишу базовый монадический парсер в Idris, чтобы привыкнуть к синтаксису и отличиям от Haskell. У меня есть основы, которые работают нормально, но я застрял на попытке создать экземпляры VerifiedSemigroup и VerifiedMonoid для парсера.
Без лишних...
1015 просмотров
schedule
26.03.2022
Можете ли вы создать функции, возвращающие функции зависимой арности на языке с зависимой типизацией?
Исходя из того, что я знаю о зависимых типах, я думаю, что это должно быть возможно, но я никогда раньше не видел такого примера на языке с зависимой типизацией, поэтому я не совсем уверен, с чего начать.
Я хочу, чтобы функция формы:
f : [Int]...
673 просмотров
schedule
11.01.2023
Как определять абстрактные типы в agda
Как можно определять абстрактные типы в Agda. Для этого мы используем typedecl в Isabelle.
Точнее, мне нужен аналог agda приведенного ниже кода в Isabelle:
typedecl A
Спасибо
283 просмотров
schedule
25.10.2022
Внедрение Total Parsers в Idris на основе статьи на Agda
Я пытаюсь реализовать общие парсеры с Idris на основе этой статьи . Сначала я попытался реализовать более простой тип распознавателя P :
Tok : Type
Tok = Char
mutual
data P : Bool -> Type where
fail : P False
empty : P True...
451 просмотров
schedule
05.09.2022
Проблемы с проводящим доказательством
Я пытаюсь понять коиндукцию (читаю книгу Санджорджи), используя Агду. Мне уже удалось доказать некоторые простые равенства между потоками, но я застрял, пытаясь доказать, что все натуральные числа (значения типа ℕ) находятся в потоке allℕ --- функция...
78 просмотров
schedule
15.12.2022
Как мы можем определить тип симметричных бинарных операций в Agda?
Я не понимаю, как мы можем определить в Агде тип «симметричного бинарного отношения». Представьте, что у меня есть что-то вроде:
{-
First, we define a polymorphic idenity
-}
data _==_ {A : Set} (a : A) : A → Set where
definition-of-idenity :...
302 просмотров
schedule
14.03.2023
результат с шаблоном не виден
Я пытаюсь понять, как перейти к «безопасно набранному» коду. Например, ниже предполагается вызывать tail только на безопасном пути, т.е. если список на входе непуст. Конечно, был бы простой способ просто сопоставить список с образцом, но идея...
46 просмотров
schedule
03.07.2023
Agda: имитируйте тактику перезаписи Coq
У меня есть некоторый опыт использования Coq, и сейчас я изучаю Agda. Я работаю над доказательством правильности сортировки вставками и дошел до точки, когда я хотел бы выполнить что-то похожее на тактику перезаписи Coq. В настоящее время у меня...
468 просмотров
schedule
08.09.2023
Липкий отказ
Этот вопрос касается
как помочь Агде расклеиться при решении проблем унификации, и
как убедить Агду решить «гетерогенное ограничение» (что бы это ни значило)
Полный код для моего вопроса можно найти здесь . Я выложу свой код и в конце...
127 просмотров
schedule
12.05.2023
Как доказать коммутативность рационального числа в Agda?
Я пытаюсь доказать коммутативность agda. Я попытался изучить стандартную библиотеку, но есть много сложных вещей, которые я не мог понять. Я так пробовал -
comm : (a b : Q) -> (a + b) === (b + a)
проблема здесь в +, который не определен...
235 просмотров
schedule
28.02.2022
Ошибка проверки типа Agda
В настоящее время я создаю упорядоченный векторный тип данных и пытаюсь создать операции из этого типа данных, но получаю сообщение об ошибке:
(Set (.Agda.Primitive.lsuc ℓ)) != Set
when checking that the expression A has type Set ℓ
Это тип...
173 просмотров
schedule
12.10.2022
Как построить возможно непустое множество в Agda
Я знаю, что (A \/ ~A) вообще недоказуемо. Как можно построить пример множества A, где (A \/ ~A) недоказуемо, возможно ли это? И если можно, то можно ли без квантификаторов?
86 просмотров
schedule
20.08.2022
Загрузка стандартной библиотеки Agda
Я установил Agda (версия 2.3.2.2) и стандартную библиотеку (версия 0.7). Я могу загрузить программу, которая не импортирует стандартную библиотеку. Например, я могу загрузить
data Bool : Set where
true : Bool
false : Bool
not : Bool -> Bool...
474 просмотров
schedule
01.01.2023