Esiste un tipo non banale che è uguale alla sua derivata?


20

Un articolo chiamato The Derivative of a Regular Type è il suo tipo di contesti a un foro mostra che la "cerniera" di un tipo - i suoi contesti a un foro - segue le regole di differenziazione nell'algebra di tipo.

Abbiamo:

xx1x00x10x(S+T)xS+xTx(S×T)xS×T+S×xT

Possiamo usare questo modello per derivare che la derivata dell'unità è nulla, che la derivata di list è un prodotto di due liste (prefisso volte suffisso) e così via.

Una domanda naturale da porsi è "che tipo è il suo derivato?" Ovviamente abbiamo già , che ci dice che il vuoto (il tipo disabitato) è il suo derivato, ma questo non è molto interessante. È l'analogo del fatto che la derivata di zero è zero nel normale calcolo infinitesimale.x00

Ci sono altre soluzioni all'equazione ? In particolare, esiste un analogo di nel tipo algebra? Perché o perché no?xTTxex=ex


5
C'è nella teoria delle specie combinatorie e lì corrisponde alle specie di insiemi (finiti), ma ciò non corrisponde a un tipo di dati algebrico.
Derek Elkins lasciò SE

1
Cosa intendi con "uguale"? Nel tuo mondo, e uguali? Che ne dici di e ? ( S U ) × ( T U ) N L i s t ( N )(S+T)U(SU)×(TU)NList(N)
Andrej Bauer,

1
@AndrejBauer Il primo sì, il secondo no. è uguale al prodotto iterato nella mia mente. Detto questo, non ho in mente un modello rigoroso di uguaglianza di tipo, e se hai un modello puoi indicarmi che sarei felice di leggerlo. 1 + N + N × N + N × N × N + = n = 0 N nList(N)1+N+N×N+N×N×N+=n=0Nn
Matthew Piziak,

3
@DerekElkins, come succede, un altro articolo di McBride, chiamato Clowns alla mia sinistra, Jokers alla destra sottolinea che, "Per le strutture finite, [l'iterazione di un operatore su cerniere] dà origine a una formulazione in serie di tipi di dati direttamente, trovando tutti gli elementi da sinistra a destra .... Esiste quindi una connessione significativa con la nozione di specie combinatoria ". Quindi non sarei sorpreso se anche le specie combinatorie hanno un ruolo interessante da svolgere nel contesto di questa domanda.
Matthew Piziak,

@MatthewPiziak Lo fanno sicuramente. Brent Yorgey ne ha parlato un bel po ' . Vedi anche la sua tesi .
Derek Elkins lasciò SE

Risposte:


15

Considerate le multinsiemi finiti . I suoi elementi sono dati da virgolette di permutazioni, in modo che per qualsiasi . Qual è un contesto a un buco per un elemento in una cosa del genere? Bene, dobbiamo aver avuto per selezionare una posizione per il foro, quindi rimaniamo con gli elementi rimanenti , ma non siamo nessuno il più saggio di quale sia. (Questo è diverso dagli elenchi, in cui la scelta di una posizione per il foro taglia un elenco in due sezioni e il secondo taglio derivato seleziona una di quelle sezioni e la taglia ulteriormente, come "punto" e "segno" in un editor, ma sto divagando. ) Un contesto a un foro in a{ x 1 , , x n } { x 1 , , x n } = { x π 1 , , x π n } π S n n > 0 n - 1 B a gBagX{x1,,xn}{x1,,xn}={xπ1,,xπn}πSnn>0n1B a gBagX è quindi un e ogni può presentarsi come tale. Pensando spazialmente, la derivata di dovrebbe essere se stessa.B a gBagXB a gBagXBagX

Adesso,

BagX=nNXn/Sn

una scelta di dimensione tupla , con una tupla di elementi fino a un gruppo di permutazione di ordine, dandoci esattamente l'espansione della serie di potenze di .n n ! e xnnn!ex

Ingenuamente, possiamo caratterizzare i tipi di contenitore da un insieme di forme e una famiglia di posizioni dipendente dalla forma : modo che un contenitore sia dato da un scelta della forma e una mappa dalle posizioni agli elementi. Con borse e simili, c'è un tocco in più.P s : S X ( PSP

s:SX(Ps)

La "forma" di una borsa è qualche ; le "posizioni" sono , l'insieme finito della dimensione , ma la mappa dalle posizioni agli elementi deve essere invariante nelle permutazioni di . Non dovrebbe esserci alcun modo per accedere a una borsa che "rileva" la disposizione dei suoi elementi. { 1 , , n } n S nnN{1,,n}nSn

L'East Midlands Container Consortium ha scritto di tali strutture nella costruzione di programmi polimorfici con tipi di quoziente , per Mathematics of Program Construction 2004. I contenitori di quozienti estendono la nostra consueta analisi delle strutture di "forme" e "posizioni" consentendo a un gruppo di automorfismi di agire sulle posizioni , che ci permette di considerare strutture come coppia non ordinata , con derivata . Una -tupla non ordinata è data dae la sua derivata (quando è una tupla non ordinata ). Le borse ne prendono la somma. Possiamo giocare a giochi simili con -tuple cicliche ,X n X n / n ! n > 0 n - 1 n X n / n X n - 1X2/2XnXn/n!n>0n1 nXn/n, dove la scelta di una posizione per il foro inchioda la rotazione in un punto, lasciando , una tupla più piccola senza permutazione.Xn1

La "divisione dei tipi" è difficile da dare un senso in generale, ma fare una citazione per gruppi di permutazione (come nelle specie combinatorie) ha un senso ed è divertente giocarci. (Esercizio: formulare un principio di induzione strutturale per coppie di numeri non ordinate, , e usarlo per implementare addizioni e moltiplicazioni in modo che siano commutative per costruzione.)N2/2

La caratterizzazione "forme e posizioni" dei contenitori non impone finezza a nessuno dei due. Le specie combinatorie tendono ad essere organizzate per dimensione , piuttosto che per forma, il che equivale a raccogliere termini e calcolare il coefficiente per ciascun esponente. Contenitori quozienti con insiemi di posizioni finite e specie combinatorie sono sostanzialmente diversi giri sulla stessa sostanza.


Appare l'autore originale! Grazie per esserti fermato a mostrarci questo bellissimo risultato.
Matthew Piziak,

3

Che ne dici della somma infinita La derivata è che è uguale all'originale per associatività e commutatività delle somme.i , j N X i + + X i i + 1

i,jNXi?
i,jNXi++Xii+1

Inoltre, la somma infinita è uguale a ), quindi potremmo provare a calcolare la derivata usando le liste.jNList(X)


La derivata di un elenco è una coppia di elenchi (prefisso volte suffisso). In base alla regola di somma, la derivata di un elenco di elenchi è un elenco di coppie di elenchi. Un elenco di coppie di elenchi è isomorfo a un elenco di elenchi?
Matthew Piziak,

@MatthewPiziak Forse è più facile pensare alla prima formulazione come . Prendendo il derivato, otteniamo (con il significato ovvio per ). Ora abbiamo solo bisogno di . A me sembra un po 'simile a (in modo molto informale), tranne che i coefficienti delle serie di potenze sono scelti per essere (cioè, ), in modo che possano soddisfare in a mondo senza divisione. iNN×XiiNi×N×XiiNi×Nex=ixi/n!+Nan=(n+1)an+1
chi,

@MatthewPiziak Oops, ho scritto invece di , ma penso sia chiaro cosa intendevo dire. ni
chi,
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.