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

Идрис нетерпеливая оценка
В Haskell я мог бы реализовать if следующим образом: if' True x y = x if' False x y = y spin 0 = () spin n = spin (n - 1) Это ведет себя так, как я ожидаю : haskell> if' True (spin 1000000) () -- takes a moment haskell> if'...
1591 просмотров

Haskell-версия Idris !-нотации (нотация взрыва)
В последнее время я имел роскошь немного изучить Идрис, и одна вещь, которую я нашел чрезвычайно удобной, — это !-нотация, которая позволяет мне сокращать монадический код внутри блока do, такого как a' <- a b' <- b c' <- c someFunction...
541 просмотров
schedule 15.11.2022

Условия пропуска объявлений типа в предложении where
Раздел учебника по where предложениям содержит 2 условия. за возможность опустить объявление типа функции f в предложении where : f появляется в правой части определения верхнего уровня. Тип f можно полностью определить с...
76 просмотров
schedule 02.02.2024

Идрис: Можно ли переписать все функции с помощью прецедента вместо with? Если нет, не могли бы вы привести контрпример?
Можно ли в Идрисе переписать все функции с помощью " с помощью «использовать case» вместо «with»? Если нет, не могли бы вы привести контрпример?
186 просмотров
schedule 30.12.2023

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

Есть ли у Идриса эквивалент взлома или погони?
То есть существует ли центральный репозиторий пакетов программного обеспечения с открытым исходным кодом, написанного на Idris? Некоторое гугление привело меня на страницу idris-hackers на github, здесь . А еще я могу поискать проекты на гитхабе,...
93 просмотров
schedule 29.12.2023

Вывод типа Идриса для арифметической операции
В следующем коде Idris> :t \x => x + x \x => x + x : Integer -> Integer Idris выводит тип Integer для переменной x, где я думаю, что он должен выводить ограничение интерфейса, как в Haskell: Haskell> :t (\x y -> x + y)...
112 просмотров
schedule 04.05.2024

Как переписать термин в подписи типа для доказательства в Идрисе?
По сути, я хочу доказать, что либо n - m , либо m - n равны нулю в рекурсивной арифметике. Для этого я безуспешно пытался использовать шаблон rewrite ... in ... . Ниже приведен базовый код: data Natural = C | S Natural resta : Natural...
185 просмотров
schedule 12.02.2024

Можно ли извлечь второй элемент сигмы по исчислению конструкций с простыми несовместными аксиомами?
Это кажется невозможным для извлечения второго элемента сигмы по исчислению конструкций. Более того, похоже, что не существует известного простого способа расширить исчисление конструкций с зависимыми исключениями без потери согласованности. Таким...
135 просмотров

Как доказать ((x :: xs) = (y :: ys)) с учетом (x = y) & (xs = ys)
Я изучаю Идрис, и у меня есть небольшой вопрос для новичков. Я выполняю упражнение 2 из главы 8.3 книги по разработке с использованием Idris. Дело в том, чтобы реализовать DecEq для вашего собственного Vector . Вот как далеко я зашел: data...
149 просмотров
schedule 28.02.2024

Почему «нейтральный» не нормализуется до «[]» в моноиде списка?
Следующие определения типов Idris проверяются с помощью Idris 1.3.0: foo : (xs : List Nat) -> xs = ([] <+> xs) foo xs = Refl однако это не так: foo : (xs : List Nat) -> xs = (neutral <+> xs) foo xs = Refl дает...
59 просмотров
schedule 09.12.2022

Доказательство равенства типов в зависимости от (дальнейших) доказательств
Предположим, мы хотели бы иметь «правильный» 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

Проверка достоверности доказательства в Идрисе
Я пытаюсь написать тестовый код, чтобы проверить, действительно ли plusComm : (a : Nat) -> (b : Nat) -> a + b = b + a доказывает a + b = b + a на натуральных числах, то есть код не подделывает их, используя типизированные отверстия,...
74 просмотров
schedule 16.05.2024