Вопросы по теме 'dependent-type'

Нельзя использовать инверсию для индуктивного предиката
Я застрял на простом доказательстве индуктивного предиката. Я должен доказать, что натуральный 0 не является положительным, где натуральный — это список битов, а 0 — это любой список, содержащий только биты, равные 0. H1: pos Empt ____________...
253 просмотров
schedule 01.03.2024

Зависимо типизированные приложения ZipVector
Я сделал себе стиль " ZipVector " Applicative на конечных Vector , который использует тип суммы для склеивания конечных векторов с Unit , которые моделируют "бесконечные" векторы. data ZipVector a = Unit a | ZipVector (Vector a)...
143 просмотров
schedule 26.09.2022

Зависимые типы методов конфликтуют с аргументами по умолчанию
При игре с зависимыми типами методов scala я столкнулся с конфликтом с параметрами метода по умолчанию: abstract class X { type Y case class YY(y: Y) } object XX extends X { type Y = String } trait SomeTrait { def method(x: X)(y: x.YY,...
146 просмотров

Можно ли ввести min в теории нормализации, такой как System-F или Исчисление конструкций?
Это min определение ниже работает с двумя церковными числами и возвращает наименьшее значение. Каждое число становится продолжением, которое отправляет свое предысторию другому, зигзагообразно и загадочно, до тех пор, пока не будет достигнут ноль....
236 просмотров

Agda: Как вывести доказательство _≤_ (или как реализовать двоичное дерево поиска)
Я, вероятно, не буду подходить к этому наилучшим образом, поскольку Agda и, в частности, стандартная библиотека Agda все еще для меня в новинку. Я пытаюсь реализовать понятие двоичных деревьев поиска. У меня есть простое определение двоичного...
273 просмотров
schedule 25.04.2024

Проблемы с определением аппликативного экземпляра
Предположим, что я хочу определить тип данных, индексированный двумя средами уровня типа. Что-то типа: data Woo s a = Woo a | Waa s a data Foo (s :: *) (env :: [(Symbol,*)]) (env' :: [(Symbol,*)]) (a :: *) = Foo { runFoo :: s -> Sing env...
116 просмотров

Подпись типа «половина» функции в Idris
Я новичок в Idris и пытаюсь уловить основные понятия и синтаксис. Даже если это может показаться бессмысленным, я пытаюсь определить функцию half , которая вдвое уменьшает натуральное число. Я хочу придумать что-то вроде: half : (n : Nat)...
163 просмотров
schedule 14.10.2022

Доказательство того, что конкатенация языков ассоциативна в Agda
Я новичок в языке Agda, и я работаю над формальными языками, используя Agda. У меня возникают проблемы с доказательством ассоциативности конкатенации языков. Доказательство будет выделено желтым цветом, поскольку Agda не смогла найти слова для "++...
351 просмотров

Сопоставление с образцом с двумя значениями индуктивного типа по одному и тому же индексу
Почему следующее не проверяет тип (coq-8.5pl3)? Сопоставление с образцом, кажется, забывает, что u и v имеют один и тот же тип. Inductive X : Type -> Type := | XId : forall a, X a -> X a | XUnit : X unit. Fixpoint f {a : Type} (x : X...
72 просмотров
schedule 06.02.2024

Доказательство равенства типов в зависимости от (дальнейших) доказательств
Предположим, мы хотели бы иметь «правильный» minus для Nat s, требуя m <= n для n `minus` m , чтобы иметь смысл: %hide minus minus : (n, m : Nat) -> { auto prf : m `LTE` n } -> Nat minus { prf = LTEZero } n Z = n minus { prf =...
84 просмотров
schedule 30.10.2022

Можно ли в scala shapeless использовать буквальный тип в качестве параметра универсального типа?
Предполагая, что я пишу программу для умножения векторов. Следуя требованиям этой статьи: https://etrain.github.io/2015/05/28/type-safe-linear-algebra-in-scala Умножение должно успешно скомпилироваться только в том случае, если размерности...
271 просмотров
schedule 25.10.2022

Как создать хорошо типизированную функцию, которая возвращает два разных типа?
Я очень заинтересован в компиляции модулей Formality-Core в библиотеки Haskell. Хотя я мог бы использовать unsafeCoerce везде, было бы интереснее, если бы я мог сохранить информацию о типе, позволяя публиковать скомпилированные модули в Cabal и...
161 просмотров
schedule 01.11.2022