Вопросы по теме 'dependent-type'
Как индексировать тип элемента по значению исходного контейнера?
Итак, у меня есть ситуация, очень похожая на этот (намного упрощенный) код:
import Data.Maybe
import Data.List
data Container a = Container [a]
-- Assumption: an Element can only obtained from a Container. The operation
-- guarentees the...
266 просмотров
schedule
31.08.2022
С чего начать программирование зависимого типа?
Существует учебник Idris, учебник Agda и многие другие документы в стиле учебника и вводные материалы с бесконечными ссылками на вещи, которые еще предстоит изучить. Я как бы ползаю посреди всего этого и большую часть времени застреваю в...
2879 просмотров
schedule
27.09.2022
Кодирование меньше, чем с помощью Haskell
я надеюсь, что некоторые эксперты Haskell могут помочь кое-что прояснить.
Можно ли определить Nat обычным способом (через @dorchard Singleton-типы в Haskell )
data S n = Succ n
data Z = Zero
class Nat n
instance Nat Z
instance Nat n...
1558 просмотров
schedule
21.09.2022
Как мне написать этот пример с зависимой типизацией в Haskell?
Предположим, я хочу представить конечные модели языка первого порядка с константой c, символом унарной функции f и предикатом P. Я могу представить носитель как список m , константу как элемент m , функцию как список упорядоченных пар элементов m...
239 просмотров
schedule
24.07.2023
Тип Cong, subst и равенство в языках программирования с зависимой типизацией
В теории зависимо типизированных типов есть тип равенства. Обычно при определении этого типа вводится ряд утилит, а именно cong и subst. Насколько они выразительны? Можно ли выразить все, что можно, с помощью элиминатора на равенство с ними?
242 просмотров
schedule
18.06.2023
Нужно ли мне неоднородное равенство?
Краткая предыстория: я реализую контексты и переименования, используя индексы де Брейна, а затем расширяю эти понятия с помощью «неопределенного» имени, написанного ε. Неопределенное имя индуцирует частичный порядок имен в Γ, а также переименований...
400 просмотров
schedule
28.03.2022
В чем разница между зависимыми типами и зависимыми типами?
В Scala есть типы, зависящие от пути, но говорят, что Scala не поддерживает зависимую типизацию. В чем разница между зависимыми типами и зависимыми типами?
Насколько я понимаю, зависящие от пути типы - это один из видов зависимых типов.
548 просмотров
schedule
19.07.2022
Можете ли вы создать функции, возвращающие функции зависимой арности на языке с зависимой типизацией?
Исходя из того, что я знаю о зависимых типах, я думаю, что это должно быть возможно, но я никогда раньше не видел такого примера на языке с зависимой типизацией, поэтому я не совсем уверен, с чего начать.
Я хочу, чтобы функция формы:
f : [Int]...
673 просмотров
schedule
11.01.2023
Метод класса с гетерогенным рекурсивным бесконечным и зависимым аргументом типа
Я застрял, играя с "гетерогенным рекурсивным бесконечным типом" (какое-нибудь название получше?).
Пусть следующая рабочая "Глубокая сортировка"
class Ord f => DeepSort f where
deepSort :: f -> f
deepSort = id
instance DeepSort...
144 просмотров
schedule
26.09.2022
Внедрение Total Parsers в Idris на основе статьи на Agda
Я пытаюсь реализовать общие парсеры с Idris на основе этой статьи . Сначала я попытался реализовать более простой тип распознавателя P :
Tok : Type
Tok = Char
mutual
data P : Bool -> Type where
fail : P False
empty : P True...
451 просмотров
schedule
05.09.2022
Agda: имитируйте тактику перезаписи Coq
У меня есть некоторый опыт использования Coq, и сейчас я изучаю Agda. Я работаю над доказательством правильности сортировки вставками и дошел до точки, когда я хотел бы выполнить что-то похожее на тактику перезаписи Coq. В настоящее время у меня...
468 просмотров
schedule
08.09.2023
Смешивание черты, зависящей от пути
Итак, есть эти различные черты, которые я хочу смешать с базовым классом под названием GPState (состояние генетического программирования). Однако некоторые вещи, которые я хочу смешать, зависят от вещей, о которых я не узнаю, пока не будет создан...
52 просмотров
schedule
07.09.2022
Зависимые типы в C#: создание зависимости типа вывода от входного значения
Я хочу иметь возможность создать метод на С#, тип вывода которого зависит от значения его аргумента; свободно,
delegate B(a) DFunc<A,B>(A a);
В качестве примера я хотел бы написать функцию, которая принимает целое число и возвращает...
2117 просмотров
schedule
05.07.2023
Почему Idris не принимает мой пользовательский фолд?
Вот вектор, элементы которого индексируются по длине вектора.
data IxVect : (n : Nat) -> (a : Nat -> Type) -> Type where
Nil : IxVect 0 a
(::) : a n -> IxVect n a -> IxVect (S n) a
Я хочу сложить IxVect .
total...
301 просмотров
schedule
28.05.2023
Можно ли частично применить n-й параметр в Haskell?
Мне любопытно, можно ли написать функцию apply_nth , которая принимает функцию, номер параметра и значение этого параметра, а затем возвращает новую, частично примененную функцию.
У меня такое ощущение, что это невозможно из-за системы типов, но я...
387 просмотров
schedule
26.07.2022
Индексированные изменяемые массивы размера в Haskell
В Haskell можно писать функции над индексированным по размеру списком, которые гарантируют, что мы никогда не выйдем за границы. Возможная реализация:
data Nat = Zero | Succ Nat deriving (Eq, Ord, Show)
infixr 5 :-
data Vec (n :: Nat) a where...
155 просмотров
schedule
27.01.2023
Ограничения равенства для списков уровня типов
Я пытаюсь наложить ограничение на уровне типа, согласно которому список уровня типа должен иметь ту же длину, что и переносимый Nat уровня типа. Например, при использовании пакета Length from singletons [1]:
data (n ~ Length ls) => NumList (n...
364 просмотров
schedule
01.01.2023
В Идрисе, как добавить 1 к плавнику, пока не будет достигнут максимум
У меня есть тип данных, который принимает число в конструкторе, и это число ДОЛЖНО быть между 1 и 5 (представлено как 0..4):
import Data.Fin
data Stars = MkStars (Fin 5)
Я хочу создать функцию, которая добавляет единицу к существующему star...
272 просмотров
schedule
08.12.2022
Массивы и подъем класса типов (и зависимые типы?)
Предположим, что тип b является экземпляром Monoid , и для фиксированного диапазона индексов (v1,v2) :: (i,i) с i , принадлежащим классу типов Ix , я хочу определить соответствующий тип Data.Array как моноид. Как это может быть сделано? Здесь...
238 просмотров
schedule
14.05.2022
Зависимые типы/параметрический полиморфизм в Common Lisp?
Я хочу написать некоторый общий код, связанный с группами отражения, и поэтому мне нужно настроить некоторые типы, которые отражают математические структуры (векторное пространство, аффинное пространство,...). Поскольку я действительно хочу точно...
1430 просмотров
schedule
04.06.2022