Вопросы по теме '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 просмотров

Можно ли получить свободные теоремы как пропозициональные равенства?
«Свободные теоремы» в смысле статьи Уодлера «Теоремы бесплатно!» уравнения о некоторых значениях выводятся только на основе их типа. Так что, например, 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 просмотров

Проблемы с проводящим доказательством
Я пытаюсь понять коиндукцию (читаю книгу Санджорджи), используя Агду. Мне уже удалось доказать некоторые простые равенства между потоками, но я застрял, пытаясь доказать, что все натуральные числа (значения типа ℕ) находятся в потоке 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 просмотров

Липкий отказ
Этот вопрос касается как помочь Агде расклеиться при решении проблем унификации, и как убедить Агду решить «гетерогенное ограничение» (что бы это ни значило) Полный код для моего вопроса можно найти здесь . Я выложу свой код и в конце...
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