Resultados de la búsqueda a petición "dependent-type"
Total de colas persistentes en tiempo real
Okasaki describe colas persistentes en tiempo real que se pueden realizar en Haskell utilizando el tipo data Queue a = forall x . Queue { front :: [a] , rear :: [a] , schedule :: [x] } donde las rotaciones incrementales mantienen la ...
Comprender `k: Nat ** 5 * k = n` Firma
La siguiente función compila: onlyModByFive : (n : Nat) -> (k : Nat ** 5 * k = n) -> Nat onlyModByFive n k = 100Pero que hacek representar con suNat ** 5 * k = n ¿sintaxis? Además, ¿cómo puedo llamarlo? Esto es lo que probé, pero no entiendo ...
¿Cosa 'Refl' en Cálculo de Construcciones?
En idiomas comoAgda, IdrisoHaskell con extensiones de tipo, hay un= escriba algo así como lo siguiente data a :~: b where Refl :: a :~: aa :~: b significa quea yb son lo mismo. ¿Se puede definir tal tipo en elcálculo de ...
¿Qué son los universos acumulativos y `*: *`?
En Agda, haySet n. Según entiendo,Set n extiende la jerarquía de tipo de valor de tipo estilo Haskell a niveles infinitos. Es decir,Set 0 es el universo de los tipos normales,Set 1 es el universo de los tipos normales,Set 2 es el universo de los ...
¿Cómo enumerar los elementos de una lista por `Fin`s en tiempo lineal?
Podemos enumerar los elementos de una 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) ...
¿Entonces cuál es el punto?
¿Cuál es el propósito previsto de laSo [https://github.com/idris-lang/Idris-dev/blob/master/libs/base/Data/So.idr#L14] ¿tipo? Transliterando a Agda: data So : Bool → Set where oh : So trueSo eleva una proposición booleana a una lógica. Documento ...
Haskell: especificación de restricciones de igual longitud de listas en el sistema de tipos
En Haskell, a menudo tengo una función comof, que acepta una lista y devuelve una lista de igual longitud: f :: [a] -> [a] -- length f(xs) == length xsDel mismo modo, podría tener una función comog, que acepta dos listas que deberían tener la ...
¿Cuál es una buena manera de representar grupos libres?
Es fácil representar magmas libres (árboles de hojas binarias), semigrupos libres (listas no vacías) y monoides (listas) libres, y no es difícil demostrar que realmente son lo que dicen ser. Pero los grupos libres parecen mucho más complicados. ...
Programación genérica de Arity en Agda
¿Cómo escribir funciones genéricas de aridad en Agda? ¿Es posible escribir funciones genéricas de aridad polimórficas totalmente dependientes y universales?
Tipo de argumento del constructor de clase de caso según el valor del argumento anterior
Estoy tratando de hacer lo siguiente trait Stateful { type State } case class SystemState(system: Stateful, state: system.State) // does not compileEs decir, el tipo destatedepende de (el valor de)system. Eso, sin embargo, no es ...