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

Строго позитивно в Агде
Я пытаюсь закодировать некоторую денотационную семантику в Agda на основе программы, которую я написал на Haskell. data Value = FunVal (Value -> Value) | PriVal Int | ConVal Id [Value] | Error String В...
3574 просмотров
schedule 24.09.2023

Агда, логическое предложение
В предисловии обратите внимание, что это для задания. Вопрос по первому вопросу уже задан. Итак, у нас есть тип данных: data BoolProp : ??? where ptrue : BoolProp true pfalse : BoolProp false pand : (P Q : Bool) -> (BoolProp P) ->...
496 просмотров
schedule 03.01.2023

Agda: функция запуска для примера стека Конора
На ICFP 2012 Конор МакБрайд выступил с программным докладом «Агда-любопытно?». В нем была реализована небольшая стековая машина. Видео находится на YouTube: http://www.youtube.com/watch?v=XGyJ519RY6Y Код также находится в сети:...
617 просмотров
schedule 10.06.2023

Схемы рекурсии в Agda
Излишне говорить, что стандартная конструкция в Haskell newtype Fix f = Fix { getFix :: f (Fix f) } cata :: (Functor f) => (f a -> a) -> Fix f -> a cata f = f . fmap (cata f) . getFix это здорово и очень полезно. Пытаюсь...
1058 просмотров

Иерархия типов в Agda
Я пытаюсь понять, как иерархии типов работают в Agda. Предполагая, что я определяю тип набора X: X : Set а затем приступить к построению индуктивного типа data Y : X -> Set where Какой тип X -> Set ? Это набор или тип?...
945 просмотров
schedule 07.06.2022

неразрешенные мета-данные при определении записи в Agda
Рассмотрим следующий код: module UnresolvedMeta where record Test (M : Set) : Set1 where field _≈_ : M -> M -> Set _⊕_ : M -> M -> M assoc⊕ : ∀ {r s t} -> ((r ⊕ s) ⊕ t) ≈ (r ⊕ (s ⊕ t)) data ℕ : Set where...
179 просмотров
schedule 19.02.2023

Как определить одноэлементный набор?
Предположим, у меня есть значение x : A , и я хочу определить набор, содержащий только x . Вот что я пробовал: open import Data.Product open import Relation.Binary.PropositionalEquality -- Singleton x is the set that only contains x. Its...
706 просмотров
schedule 08.08.2023

Завершение проверки функции по дереву
Мне трудно убедить Agda выполнить проверку завершения функции fmap ниже и аналогичных функций, определенных рекурсивно в структуре Trie . Trie - это дерево , домен которого является Type , тип уровня объекта, состоящий из единицы, продуктов...
181 просмотров
schedule 18.05.2023

Ошибка типа Agda
Я новичок в Agda и пытаюсь определить константу prod типа: Z → (Z → ((Z → Set) → Set)) Теперь я написал следующий код Agda: data Prod (X : Set) : ℕ → X where prod : ℕ → (ℕ → ((ℕ → X) → X)) Когда я проверяю тип, agda выдает следующее...
371 просмотров
schedule 03.05.2022

Недостаточно оцененный контекст внутри предложения `with`
Я застрял на следующем доказательстве. module Temp where open import Data.Empty open import Data.Fin hiding (compare) open import Data.Nat hiding (compare); open import Data.Nat.Properties open import Function open import Level...
48 просмотров
schedule 10.04.2022

Разница между параметрами типа и индексами?
Я новичок в зависимых типах, и меня смущает разница между ними. Кажется, люди обычно говорят, что тип параметризуется другим типом и индексируется некоторым значением . Но разве нет различия между типами и терминами в языке с зависимой...
3134 просмотров
schedule 26.09.2022

Понимание синтаксиса Agda
Используя следующее в качестве примера postulate DNE : {A : Set} → ¬ (¬ A) → A data ∨ (A B : Set) : Set where inl : A → A ∨ B inr : B → A ∨ B -- Use double negation to prove exclude middle classical-2 : {A : Set} → A ∨ ¬ A classical-2 = λ...
754 просмотров
schedule 16.04.2022

Как работать с потоком в agda?
Я написал потоковый тип данных и одну головную операцию в Agda. Теперь я хочу проверить правильность работы головки. Итак, я принимаю свой входной поток как 1 :: 2 :: 3 ::. . . Но agda не принимает это как поток. Итак, мой вопрос в том, как...
295 просмотров
schedule 05.02.2023

Проблемы с индексами типов данных, в которых используется конкатенация списков
У меня возникла неприятная проблема с формализацией теоремы, которая использует тип данных, у которого есть некоторые конструкторы, индексы которых имеют конкатенацию списков. Когда я пытаюсь использовать режим emacs для разделения регистра, Agda...
383 просмотров
schedule 22.04.2023

Неожиданный уровень вселенной
Вот определение, подобное тому, что в Data.List.All : open import Data.Vec data All {α π} {A : Set α} (P : A -> Set π) : ∀ {n} -> Vec A n -> Set π where []ₐ : All P [] _∷ₐ_ : ∀ {n x} {xs : Vec A n} -> P x -> All P xs ->...
81 просмотров
schedule 04.01.2023

Как пронумеровать элементы списка по `Fin`s за линейное время?
Мы можем перечислить элементы списка следующим образом: -- enumerate-ℕ = zip [0..] enumerate-ℕ : ∀ {α} {A : Set α} -> List A -> List (ℕ × A) enumerate-ℕ = go 0 where go : ∀ {α} {A : Set α} -> ℕ -> List A -> List (ℕ × A) go n []...
517 просмотров

Зачем нужны контейнеры?
(В качестве оправдания: заголовок имитирует заголовок Зачем нам нужны монады? ) Существуют контейнеры (и проиндексированные ) (и хазохистские ) и описания . Но контейнеры проблемны , и, судя по моему небольшому опыту, мне труднее думать с...
1301 просмотров

Как установить agda-mode на OSX El Capitan?
Пытаюсь установить agda-mode на OSX. Я следовал официальному руководству (пробовал и несколько других), но, похоже, не могу заставить его работать. При загрузке Emacs / Aquamacs я получаю следующую ошибку: Warning (initialization): An error...
483 просмотров
schedule 02.04.2024

Равенство по зависимым типам записей
Некоторое время я ломал голову над этой проблемой: у меня есть типы записей с зависимыми полями, и я хочу доказать равенство при преобразованиях записей. Я попытался выразить суть моей проблемы в небольшом примере. Рассмотрим следующий тип записи...
447 просмотров
schedule 20.04.2022

Можно ли создать представление общих АТД на уровне типов?
Используя кодировку Черча, можно представить любой произвольный алгебраический тип данных без использования встроенной системы АТД. Например, Nat можно представить (пример в Идрисе) как: -- Original type data Nat : Type where natSucc : Nat...
231 просмотров