Resultados da pesquisa a pedido "dependent-type"
Existe uma boa maneira de usar `->` diretamente como uma função no Idris?
Pode-se retornar um tipo em uma função em Idris, por exemplo t : Type -> Type -> Type t a b = a -> bMas surgiu a situação (ao experimentar escrever alguns analisadores) que eu queria usar-> dobrar uma lista de tipos, ou seja, typeFold : List ...
O tamanho de aninhado duas vezes pode ser uma expressão dependente?
Notei que o gcc 5.0 rejeita o código a seguir, enquanto o clang 3.6 o aceita. template<int n> struct I { typedef int Type; }; template<typename T> struct A { typedef I<sizeof(sizeof(T))>::Type Type; };Os dois compiladores parecem ...
Como definir operador de divisão na Agda?
Eu quero dividir dois números naturais. Eu fiz funcionar assim _/_ : N -> N -> frac m / one = m / one (suc m) / n = ?? I dont know what to write here.Por favor ajude.
Tipo de argumento do construtor da classe de caso, dependendo do valor do argumento anterior
Estou tentando fazer o seguinte trait Stateful { type State } case class SystemState(system: Stateful, state: system.State) // does not compileOu seja, o tipo destatedepende de (o valor de)system. Isso, no entanto, não é suportado: tipo de ...
Programação genérica do Arity no Agda
Como escrever funções genéricas de arity no Agda? É possível escrever funções genéricas de aridade polimórficas e totalmente dependentes e do universo?
Qual é uma boa maneira de representar grupos livres?
É fácil representar magmas livres (árvores de folhas binárias), semigrupos gratuitos (listas não vazias) e monoides livres (listas), e não é difícil provar que eles realmente são o que afirmam ser. Mas grupos livres parecem muito ...
Haskell: Especificando Restrições de Comprimento Igual a Listas no Sistema de Tipos
Em Haskell, muitas vezes tenho uma função comof, que aceita uma lista e retorna uma lista de igual comprimento: f :: [a] -> [a] -- length f(xs) == length xsDa mesma forma, eu posso ter uma função comog, que aceita duas listas que devem ter o ...
Então: qual é o objetivo?
Qual é o objetivo pretendido doSo [https://github.com/idris-lang/Idris-dev/blob/master/libs/base/Data/So.idr#L14] tipo? Transliterando para o Agda: data So : Bool → Set where oh : So trueSo eleva uma proposição booleana até uma proposição ...
Como enumerar os elementos de uma lista por `Fin`s em tempo linear?
Podemos enumerar os elementos de uma lista como esta: -- enumerate-ℕ = zip [0..] enumerate-ℕ : ∀ {α} {A : Set α} -> List A -> List (ℕ × A) enumerate-ℕ = go 0 where go : ∀ {α} {A : Set α} -> ℕ -> List A -> List (ℕ × A) go n [] = [] go n (x ∷ xs) ...
O que são universos cumulativos e `*: *`?
Na Agda, háSet n. Como eu entendo,Set n estende a hierarquia de tipo de valor no estilo Haskell para níveis infinitos. Isso é,Set 0 é o universo dos tipos normais,Set 1 é o universo de tipos normais,Set 2 é o universo de tipos normais, etc. Por ...