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

Работа над аксиомами Пеано в Агде и наткнулся на камень преткновения
PA6 : ∀{m n} -> m ≡ n -> n ≡ m это аксиома, которую я пытаюсь решить и поддержать, я пытался использовать конг (из основной библиотеки), но у меня проблемы с конструктором конг PA6 = cong ни к чему меня не приводит, я знаю, что...
676 просмотров
schedule 12.06.2022

Устранение subst для доказательства равенства
Я пытаюсь представить счетчики mod-n как разрез интервала [0, ..., n-1] на две части: data Counter : ℕ → Set where cut : (i j : ℕ) → Counter (suc (i + j)) Используя это, определить две важные операции несложно (некоторые доказательства...
248 просмотров
schedule 21.04.2024

Agda: пара векторов одинаковой длины
Как в Agda определить пару векторов одинаковой длины? -- my first try, but need to have 'n' implicitly b : ∀ ( n : ℕ ) → Σ (Vec ℕ n) (λ _ → Vec ℕ n) b 2 = (1 ∷ 2 ∷ []) , (3 ∷ 4 ∷ []) b 3 = (1 ∷ 2 ∷ 3 ∷ []) , (4 ∷ 5 ∷ 6 ∷ []) b _ = _ -- how can...
795 просмотров
schedule 28.06.2022

Последствия экземпляра для проверки типа
Я изучаю, как в Agda реализованы «классы типов». В качестве примера я пытаюсь реализовать римские цифры, композиция которых с # будет проверять тип. Я не понимаю, почему Agda жалуется, что нет экземпляра для Join (Roman _ _) (Roman _ _) _ -...
131 просмотров
schedule 01.03.2023

вставка двойного отрицания в agda
Мне нужны пояснения по поводу двойных отрицаний в agda. Несмотря на то z≡z : 0 ≡ 0 z≡z = refl Не могу понять, как доказать: ¬¬z≡z : (0 ≡ 0 → ⊥) → ⊥ ¬¬z≡z ? Это длинная рука для ¬ (0 ≢ 0) . Возможно, я где-то пропустил идиому...
274 просмотров
schedule 27.02.2024

Agda: Почему я не могу найти совпадение с образцом по ссылке?
Я пытаюсь доказать что-то о делимости целых чисел. Сначала я попытался доказать, что делимость рефлексивна. ∣-refl : ∀{n} → n ∣ n Потому что я определил делимость на основе вычитания ... data _∣_ : ℤ → ℤ → Set where 0∣d : ∀{d} → zero ∣...
708 просмотров
schedule 21.03.2024

Как применить разрешимые, когда они известны?
Я пытаюсь доказать, что вставка дерева бинарной сортировки. Я нахожусь в середине доказательства, и среда выглядит так: -- new rx : ℕ Goal: SortedTree (node leaf x (node (insertTree new rl) rx rr)) Have: SortedTree (insertTree new (node rl...
68 просмотров
schedule 18.08.2022

Нетрудные доказательства преобразований AST в Agda
Я нахожусь в главе "простые императивные программы" в Software Foundations, попутно выполняя упражнения с Agda. В книге отмечается, что создание доказательств на AST-s утомительно, и продолжается представление средств автоматизации в Coq. Как...
310 просмотров
schedule 22.05.2023

Использование перезаписи внутри цели не верхнего уровня требует вспомогательной функции?
У меня есть формализация Agda-исчисления с индексами де Брейна. Большая часть настройки не имеет отношения к моей проблеме, поэтому я буду использовать пустые типы для переименований Ren и действий и просто постулирую базовое переименование sucᴿ ,...
54 просмотров
schedule 13.08.2023

Неразрешимые ограничения размера
Я хочу определить функцию сохранения размера при выводе отношения перехода для исчисления числа Пи. Я не могу убедить Агду в том, что он действительно сохраняет размер. Я также получаю сообщение об ошибке, которое кажется бессмысленным, так что,...
55 просмотров
schedule 05.02.2022

Эквивалентность поиска плоской матрицы и 2D-матрицы (доказательство) — стремление к большей элегантности
У меня есть доказательство (очевидного) утверждения о том, что поиск элементов в сплющенном представлении матрицы в виде вектора длины m * n совпадает с представлением вектора вектора. Но мое доказательство кажется неуклюжим. [Я не буду приводить...
52 просмотров
schedule 25.12.2023

Универсальное программирование Arity в Agda
Как написать общие функции арности в Agda? Можно ли написать полностью зависимые и полиморфные вселенную общие функции с арностью?
655 просмотров

Как сравнить Векторы натов в Агде
Я пытаюсь использовать Decidable Equality для сравнения двух векторов Nats в Agda. Я попытался открыть модуль Vector Equality, передав в качестве аргумента Nat DecSetoid следующим образом: open import Data.Nat open import Data.Vec open import...
234 просмотров

Саморепрезентация и вселенные в ОТТ
Вопрос касается теории наблюдательных типов . Рассмотрим этот параметр: data level : Set where # : ℕ -> level ω : level _⊔_ : level -> level -> level # α ⊔ # β = # (α ⊔ℕ β) _ ⊔ _ = ω _⊔ᵢ_ : level -> level -> level α ⊔ᵢ...
187 просмотров

Формализация звездной идемпотентности Клини в регулярных выражениях
Я пытаюсь формализовать некоторые свойства регулярных выражений (RE) в Agda. Я застрял на доказательстве идемпотентности звездной операции Клини. Мне удалось это доказать xs <-[[ (e *) * ]] -> xs <-[[ e * ]] т.е. если строка xs...
392 просмотров
schedule 27.11.2023

Мира мало
Я все еще пытаюсь внедрить теорию типов наблюдений в себя и все это в Агду. В настоящее время у меня есть следующая иерархия вселенных: Prop : Type 0 : Type 1 : ... (∀ α -> Type α) : Type ω₀ : Type ω₁ Чтобы определить равенство...
208 просмотров

Механизм получения Haskell для Agda
Мне интересно, есть ли в Agda что-нибудь похожее на предложение deriving Eq в Haskell - тогда у меня также есть связанный вопрос ниже. Например, предположим, что у меня есть типы для игрушечного языка, data Type : Set where Nat : Type...
291 просмотров
schedule 13.10.2022

Доказательство `T b`, когда` b` уже совпадает с
Я пытаюсь доказать простое: open import Data.List open import Data.Nat open import Data.Bool open import Data.Bool.Properties open import Relation.Binary.PropositionalEquality open import Data.Unit repeat : ∀ {a} {A : Set a} → ℕ → A → List A...
71 просмотров
schedule 18.09.2022

Нерелевантные имплициты: почему agda не делает этого доказательства?
Недавно я сделал тип для конечных множеств в Agda со следующей реализацией: open import Relation.Nullary open import Relation.Nullary.Negation open import Data.Empty open import Data.Unit open import Relation.Binary.PropositionalEquality open...
162 просмотров
schedule 22.11.2023

Отслеживание состояния при написании доказательств равенства, которые представляют собой длинные цепочки транзитивно связанных шагов
Я писал в Идрисе следующее доказательство: n : Nat n = S (k + k) lemma: n * n = ((k * n) + k) + (1 + (((k * n) + k) + 0)) lemma = sym $ rewrite plusZeroRightNeutral ((k * n) + k) in rewrite plusAssociative ((k * n) + k) 1 ((k *...
103 просмотров
schedule 27.08.2022