Logica combinatoria semplicemente digitata?
-
30-10-2019 - |
Domanda
Dato che esiste un calcolo Lambda non tipicato e un calcolo Lambda semplicemente tipizzato (come descritto, ad esempio, nei tipi di libri e nei linguaggi di programmazione di Benjamin Pierce), esiste una logica combinatoria semplicemente tipita?
Ad esempio, sembrerebbe che i tipi naturali per i combinatori s, K, e lo sarei
S : (a -> b -> c) -> (a -> b) -> a -> c
K : a -> b -> a
I : a -> a
Dove A, B e C sono variabili di tipo che vanno da alcuni tipi T. Ora, forse potremmo iniziare con un singolo tipo di base, bool. Il nostro set di tipi t è quindi il bool insieme a qualsiasi tipo può essere formato usando i tre motivi
(a -> b -> c) -> (a -> b) -> a -> c
a -> b -> a
a -> a
Dove A, B, C in T.
Ci sarebbero due nuove costanti nella lingua.
T : Bool
F : Bool
Quindi, questo linguaggio è costituito dai simboli S, K, I, T e F, insieme alle parentesi. Ha un tipo di tipo base e i "tipi di funzione" che possono essere realizzati con i modelli S, K e I Combinator.
Questo sistema può essere fatto funzionare? Ad esempio, esiste una costruzione If-then-Else ben tipita che può essere formata solo da S, K, I, T, F?
Nessuna soluzione corretta