Come si può motivare la parametricità relazionale?


15

Esiste un modo naturale per comprendere l'essenza della semantica relazionale per il polimorfismo parametrico?

Ho appena iniziato a leggere la nozione di parametria relazionale, "Tipi, astrazione e polimorfismo parametrico" di John Reynolds, e ho difficoltà a capire come è motivata la semantica relazionale. La semantica del set ha perfettamente senso per me e mi rendo conto che la semantica del set non è sufficiente per descrivere il polimorfismo parametrico, ma il salto alla semantica relazionale sembra essere magico, uscendo completamente dal nulla.

Esiste un modo per spiegarlo secondo le linee "Assumi relazioni sui tipi e i termini di base, e quindi l'interpretazione dei termini derivati ​​è solo la relazione naturale tra ... tale e una cosa così naturale ... nel tuo linguaggio di programmazione "? O qualche altra spiegazione naturale?

Risposte:


22

Bene, la parametricità relazionale è una delle idee più importanti introdotte da John Reynolds, quindi non dovrebbe sorprendere troppo che assomigli alla magia. Ecco una fiaba su come potrebbe averla inventata.

Supponiamo che tu stia cercando di formalizzare l'idea che determinate funzioni (identità, mappa, piega, inversione di elenchi) agiscano "allo stesso modo su molti tipi", cioè hai delle idee intuitive sul polimorfismo parametrico e hai formulato alcune regole per creare tali mappe, cioè il polimorfico λ calcolo o qualche sua prima variante. Notate che l'ingenua semantica teorica set non funziona.

Ad esempio, fissiamo il tipo

X:Type.XX,
che dovrebbe contenere solo la mappa dell'identità, ma ingenua semantica teorica set consente funzioni indesiderate come
λX:Type.λa:X.if (X={0,1}) then 0 else a.
Per eliminare questo genere di cose, dobbiamo imporre alcune ulteriori condizioni alle funzioni. Ad esempio, potremmo provare qualche teoria del dominio: equipaggiare ogni set X con un ordine parziale X e richiedere che tutte le funzioni siano monotone. Ma ciò non lo taglia del tutto perché la funzione indesiderata di cui sopra è costante o identitaria, a seconda di X , e quelle sono mappe monotone.

Un ordine parziale è relissivo, transitivo e antisimmetrico. Possiamo provare a modificare la struttura, ad esempio potremmo provare a usare un ordine parziale rigoroso, o un ordine lineare, o una relazione di equivalenza, o semplicemente una relazione simmetrica. Tuttavia, in ogni caso si insinuano alcuni esempi indesiderati. Ad esempio, le relazioni simmetriche eliminano la nostra funzione indesiderata ma consentono altre funzioni indesiderate (esercizio).

E poi noti due cose:

  1. Gli esempi desiderati non vengono mai eliminati, qualunque relazione si usi al posto di ordini parziali .
  2. Per ogni particolare esempio indesiderato che guardi, puoi trovare una relazione che la elimina, ma non esiste una relazione singola che li elimini tutti.

Quindi, hai il geniale pensiero che le funzioni desiderate siano quelle che preservano tutte le relazioni e nasce il modello relazionale.


1
Grazie Andrej. Ciò solleva l'ulteriore domanda: c'è qualche sottoclasse di relazioni più piccola che elimina tutti gli esempi indesiderati?
Tom Ellis,

Bene, possiamo probabilmente limitare la complessità logica delle relazioni perché dobbiamo preoccuparci solo di mappe calcolabili. Ma non sono abbastanza esperto da rispondere. Chiamo @UdayReddy.
Andrej Bauer,

2
@TomEllis. Sì, in casi speciali, potrebbe essere sufficiente una sottoclasse di relazioni. Il caso speciale più immediato è che, se tutte le operazioni sono di primo ordine, allora le funzioni (relazioni totali a valore singolo) sono sufficienti. Per i campi sono sufficienti isomorfismi parziali. Ricordiamo che l'esempio principale di Reynolds è il campo dei numeri complessi, e la sua relazione logica tra Bessel e Cartesio è un parziale isomorfismo.
Uday Reddy,

4
@AndrejBauer. Si noti che ha esattamente un elemento parametrico, ma gli elementi ad hoc sono troppi per formare un insieme! Quindi, c'èmoltoda tagliare. Una teoria alternativa su come Reynolds avrebbe potuto ottenere la parametricità appare nella nostra prossima "Essence of Reynolds". X.XX
Uday Reddy,

Dimostrate che se interpretate i tipi come set ci sono funzioni indesiderate. Lo stesso non si applica alle relazioni? \X:Type. \a:X. if X = {(0,0), (1,0), (0,1), (1,1)} then 0 else a
Jules,

11

La risposta alla tua domanda è davvero lì nella favola di Reynolds (Sezione 1). Lasciami provare ad interpretarlo per te.

In un linguaggio o formalismo in cui i tipi sono trattati come astrazioni , una variabile di tipo può rappresentare qualsiasi concetto astratto di sorta. Non assumiamo che i tipi siano generati tramite una sintassi dei termini del tipo, o una raccolta fissa di operatori del tipo, o che possiamo testare due tipi per l'uguaglianza ecc. In tale linguaggio, se una funzione coinvolge una variabile di tipo allora l'unica cosa che la funzione può fare ai valori di quel tipo è di rimescolare i valori che è stato dato. Non può inventare nuovi valori di quel tipo, perché non "sa" cos'è quel tipo! Questa è l'idea intuitiva della parametricità .

Quindi Reynolds ha pensato a come catturare matematicamente questa idea intuitiva e ha notato il seguente principio. Supponiamo di istanziare la variabile type, diciamo , a due diversi tipi concreti, diciamo A e A , in istanze separate, e teniamo a mente una corrispondenza R : A A tra i due tipi concreti. Quindi possiamo immaginare che, in un caso, forniamo un valore x A alla funzione e, nell'altro caso, un valore corrispondente x A (dove "corrispondente" significa che x etAAR:AAxAxAx sono correlati da R ). Quindi, poiché la funzione non sa nulla sui tipi stiamo fornendo per t oppure i valori di quel tipo, si deve trattare x e x ' esattamente nello stesso modo. Quindi, i risultati che otteniamo dalla funzione dovrebbero nuovamente corrispondere alla relazione R che abbiamo tenuto presente nella nostra mente, cioè, ovunque l'elemento x appaia nel risultato di un'istanza, l'elemento x deve apparire nell'altra istanza. Pertanto,una funzione parametricamente polimorfica dovrebbe preservare tutte le possibili corrispondenze relazionali tra possibili istanze di variabili di tipo.xRtxxRxx

Questa idea di conservazione delle corrispondenze non è nuova. I matematici lo sanno da molto tempo. In primo luogo, hanno pensato che le funzioni polimorfiche dovrebbero preservare gli isomorfismi tra le istanze di tipo. Nota che isomorfismo significa avere un'idea di una corrispondenza uno a uno . Apparentemente, gli isomorfismi erano originariamente chiamati "omomorfismi". Quindi si resero conto che anche quelli che ora chiamiamo "omomorfismi", cioè un'idea di corrispondenze molte-a-una , sarebbero stati preservati. Tale conservazione prende il nome di trasformazione naturale nella teoria delle categorie. Ma, se ci pensiamo intensamente, ci rendiamo conto che la conservazione degli omomorfismi è assolutamente insoddisfacente. I tipi e A AAabbiamo menzionato sono completamente arbitrari. Se scegliamo come A e A come A , dovremmo ottenere la stessa proprietà. Quindi, perché la "corrispondenza molti-a-uno", un concetto asimmetrico, dovrebbe avere un ruolo nella formulazione di una proprietà simmetrica? Pertanto, Reynolds ha fatto il grande passo di generalizzare dagli omomorfismi alle relazioni logiche, che sono corrispondenze molte-a-molte . Il pieno impatto di questa generalizzazione non è ancora del tutto chiaro. Ma l'intuizione di base è abbastanza chiara.AAAA

RIKKt×IntInt×tR×IIntIInt×Rf(x,n)(x,n)(m,x)(m,x)F(IA1,,IAn)=IF(A1,,An) estensione dell'identità

tttIntInttt×tt×t(tt)t(tt)(tt)


Finalmente la mia convocazione ha funzionato!
Andrej Bauer,

2
@AndrejBauer. Hmm, in realtà non ho ricevuto una convocazione. È possibile che l'incantesimo @ UdayReddy funzioni solo all'inizio del commento. In ogni caso, non è necessaria alcuna convocazione. "Parametricità" è tra i miei filtri.
Uday Reddy,

"l'unica cosa che la funzione può fare ai valori di quel tipo è rimescolare i valori che è stata data" - in realtà, a parte lo shuffle, la funzione può cancellare il valore dato (indebolimento) e copiarlo (contrazione). Poiché queste operazioni sono sempre disponibili, il valore non è così astratto come potrebbe sembrare.
Łukasz Lew,

@ ŁukaszLew, hai ragione. Non so se ciò possa essere caratterizzato come perdita di "astrazione".
Uday Reddy,

@UdayReddy Ho rimosso la lode e l'ho fatta come domanda autonoma .
Łukasz Lew,

3

ω

Inoltre, è allettante identificare funzioni con lo stesso comportamento estensivo, portando così a una relazione di equivalenza. La relazione è parziale se si escludono le funzioni "non definite", ovvero le funzioni che "ripetono" per alcuni input ben formati.

I modelli PER ne sono una generalizzazione.

Un altro modo di vedere questi modelli è come un caso (molto) speciale dei modelli di set semplici della teoria dei tipi di omotopia . In quel quadro, i tipi sono interpretati come (una generalizzazione di), insiemi con relazioni e relazioni tra tali relazioni, ecc. Al livello più basso, abbiamo semplicemente i modelli PER.

Infine, il campo della matematica costruttiva ha visto la comparsa di nozioni correlate, in particolare la Teoria degli insiemi di Bishop implica la descrizione di un insieme dando entrambi gli elementi e una relazione esplicita sull'uguaglianza, che deve essere un'equivalenza. È naturale aspettarsi che alcuni principi della matematica costruttiva si facciano strada nella teoria dei tipi.


1
Ah, ma i modelli PER non sono molto belli e possono contenere funzioni polimorfiche illuminate. Bisogna passare ai modelli PER relazionali per liberarsene.
Andrej Bauer,

Sento comunque che motiva l'approccio relazionale.
cody,

@cody. Sono d'accordo. Penso ai PER come a un modo di costruire relazioni nella "teoria degli insiemi" in modo da poter ottenere in primo luogo modelli impredicativi. Grazie per aver menzionato la teoria dei tipi di Homotopy. Non sapevo che avesse idee simili.
Uday Reddy,

@UdayReddy: le idee sono molto simili! In particolare, l'idea di "implementazioni dipendenti compatibili" che mettono in relazione tipi astratti con dipendenze può essere compresa attraverso l'obiettivo dell'eguaglianza univalente.
cody
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.