Resultados de la búsqueda a petición "dependent-type"

2 la respuesta

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 ...

1 la respuesta

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 ...

1 la respuesta

¿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 ...

1 la respuesta

¿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 ...

1 la respuesta

¿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) ...

1 la respuesta

¿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 ...

2 la respuesta

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 ...

1 la respuesta

¿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. ...

1 la respuesta

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?

1 la respuesta

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 ...