Вопросы по теме '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 просмотров
schedule
02.11.2023
Можно ли ввести min в теории нормализации, такой как System-F или Исчисление конструкций?
Это min определение ниже работает с двумя церковными числами и возвращает наименьшее значение. Каждое число становится продолжением, которое отправляет свое предысторию другому, зигзагообразно и загадочно, до тех пор, пока не будет достигнут ноль....
236 просмотров
schedule
05.03.2024
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 просмотров
schedule
27.11.2022
Подпись типа «половина» функции в Idris
Я новичок в Idris и пытаюсь уловить основные понятия и синтаксис.
Даже если это может показаться бессмысленным, я пытаюсь определить функцию half , которая вдвое уменьшает натуральное число.
Я хочу придумать что-то вроде:
half : (n : Nat)...
163 просмотров
schedule
14.10.2022
Доказательство того, что конкатенация языков ассоциативна в Agda
Я новичок в языке Agda, и я работаю над формальными языками, используя Agda.
У меня возникают проблемы с доказательством ассоциативности конкатенации языков. Доказательство будет выделено желтым цветом, поскольку Agda не смогла найти слова для "++...
351 просмотров
schedule
30.01.2024
Сопоставление с образцом с двумя значениями индуктивного типа по одному и тому же индексу
Почему следующее не проверяет тип (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