Resultados da pesquisa a pedido "dependent-type"
Recursão estrutural em um parâmetro dependente
Estou tentando escrever a peneira de Eratóstenes na Coq. Eu tenho uma função
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 ...
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 ...
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 ...
Coisa `Refl` em Cálculo de construções?
Em idiomas comoAgda, IdrisouHaskell com extensões de tipo, existe um= tipo como o seguinte data a :~: b where Refl :: a :~: aa :~: b significa quea eb são os mesmos. Esse tipo pode ser definido nocálculo de ...
Compreendendo a assinatura `k: Nat ** 5 * k = n`
A seguinte função compila: onlyModByFive : (n : Nat) -> (k : Nat ** 5 * k = n) -> Nat onlyModByFive n k = 100Mas o que fazk representar com a suaNat ** 5 * k = n sintaxe? Além disso, como posso chamá-lo? Aqui está o que eu tentei, mas não ...