Quali sono le leggi equazionali per zero tipi?


13

Disclaimer : mentre mi interessa la teoria dei tipi, non mi considero un esperto di teoria dei tipi.

Nel calcolo lambda tipizzato in modo semplice, il tipo zero non ha costruttori e un eliminatore univoco:

ΓM:0Γinitial(M):A

Da un punto di vista denotazionale, l'equazione è ovvia (quando i tipi hanno senso).initial(M1)=initial(M2)

Tuttavia, da quella prospettiva, posso anche dedurre che, quando , allora: . Questa deduzione sembra più forte, anche se un modello particolare che mostra che mi sfugge.M,M:0M=M

(Ho qualche intuizione teorica della prova però: non importa quale contraddizione usi per ottenere un abitante, ma potrebbero esserci diverse prove di contraddizione.)

Quindi le mie domande sono:

  1. Quali sono le leggi equazionali standard per i tipi zero?
  2. Qualcuno di loro è classificato come o leggi?ηβ

Risposte:


12
  1. Le regole equazionali standard per il tipo vuoto sono, come si suppone, . Pensa al modello teorico dell'insieme standard, in cui gli insiemi sono interpretati da tipi: i tipi di somma sono unioni disgiunte e il tipo vuoto è l'insieme vuoto. Quindi ogni due funzioni devono essere uguali, poiché hanno un grafico comune (vale a dire, il grafico vuoto). .Γe=e:0e,e:Γ0

  2. Il tipo vuoto non ha regole , poiché non ci sono moduli di introduzione per esso. La sua unica regola equazionale è una regola . Tuttavia, a seconda di quanto rigorosamente desideri interpretare ciò che è una regola eta, potresti voler suddividere questo in un più una conversione pendolarismo. La regola rigorosa è:βηηη

    e=initial(e)

    La copertura del pendolarismo è:

    C[initial(e)]=initial(e)

MODIFICARE:

Ecco perché la distribuzione al tipo zero implica l'uguaglianza di tutte le mappe da .A0

Per correggere la notazione, scriviamo per essere la mappa univoca da a , e scriviamo per essere una mappa da a .0 A e : A 0 A 0!A:0A0Ae:A0A0

Ora, la condizione di distribuzione dice che c'è un isomorfismo . Poiché gli oggetti iniziali sono unici fino all'isomorfismo, ciò significa che è esso stesso un oggetto iniziale. Ora possiamo usarlo per mostrare che stesso è un oggetto iniziale.A × 0 Ai:0A×0A×0A

Poiché è un oggetto iniziale, sappiamo che le mappe e sono uguali.π 1 : A × 0 A ! Aπ 2A×0π1:A×0A!Aπ2

Ora, per dimostrare che è un oggetto iniziale, dobbiamo mostrare un isomorfismo tra esso e . Scegliamo e come componenti dell'isomorfismo. Vogliamo mostrare che e .0 e : A 0 ! A : 0 A e ! A = i d 0 ! Ae = i d AA0e:A0!A:0Ae!A=id0!Ae=idA

Mostrare che è immediato, poiché esiste solo una mappa di tipo da e sappiamo che esiste sempre una mappa di identità. 0 0e!A=id000

Per mostrare l'altra direzione, nota

idA=π1(idA,e)Product equations=!Aπ2(idA,e)Since A×0 is initial=!AeProduct equations

Quindi abbiamo un isomorfismo , e quindi è un oggetto iniziale. Pertanto le mappe da sono uniche, quindi se hai , quindi .A A 0 e , e : A 0 e = e A0AA0e,e:A0e=e

EDIT 2: Si scopre che la situazione è più bella di quanto pensassi inizialmente. Ho appreso da Ulrich Bucholz che è ovvio (nel senso matematico di "retrospettivamente ovvio") che ogni biCCC è distributivo. Ecco una piccola dimostrazione carina:

Hom((A+B)×C,(A+B)×C)Hom((A+B)×C,(A+B)×C)Hom((A+B),C(A+B)×C)Hom(A,C(A+B)×C)×Hom(B,C(A+B)×C)Hom(A×C,(A+B)×C)×Hom(B×C,(A+B)×C)Hom((A×C)+(B×C),(A+B)×C)

1
Riguardo a 1: penso a un tipo zero come un oggetto iniziale. Oggetti iniziali possono avere più frecce in loro, ma possono avere un solo freccia su di essi. In altre parole, non vedo immediatamente alcun motivo per cui essere bi-CCC implica che 0 sia subterminale. Ce n'è uno?
Ohad Kammar,

Sì: il fatto che l'STLC con somme abbia bisogno di un bi-CCC distributivo ( ) per interpretarlo e l'unicità per lo 0 il tipo arriva come la versione null di quello. (Prova a scrivere l'interpretazione della regola di eliminazione delle somme e la vedrai.)(X×A)+(X×B)X×(A+B)
Neel Krishnaswami,

Non seguo La distribuzione ammonta a con un inverso. Perché questo implica che è subterminale? initial:0A×00
Ohad Kammar,

Aha! Grazie per quella prova! E anche per la pazienza!
Ohad Kammar,

per quanto riguarda la modifica 2: le aggiunte a sinistra conservano i colimit. Se la categoria è cartesiana chiuso, quindi è adjoint sinistra giù di lì è la somma . ()×C()C(A+B)×C A×C+B×C
Ohad Kammar,

8

L'equazione cattura solo il fatto che ha al massimo un elemento, quindi non credo che Neel stia catturando l'intera storia. Assiomatizzerei il tipo vuoto come segue.e=e:000

Non ci sono regole di introduzione. La regola di eliminazione èL'equazione è m a g i c τ ( e ) = e : τ dove e : 0 ed e : τ . In tutto τ è di qualsiasi tipo. L'equazione è motivata come segue: se sei riuscito a formare il termine m a g i c τ ( e ), allora 0 è abitato da e

e:0magicτ(e):τ.
magicτ(e)=e:τ
e:0e:ττmagicτ(e)0e, ma questo è assurdo, quindi valgono tutte le equazioni. Quindi un altro modo per ottenere lo stesso effetto sarebbe quello di porre l'equazione che forse non è così bello perché armeggia con il contesto. D'altra parte, mostra più chiaramente che stiamo affermando che due morfismi da 0 a τ sono uguali ( Γ è una distrazione in un CCC).
x:0,Γe1=e2:τ
0τΓ

1
Ciao Andrej, l'equazione che suggerisci è derivabile dalla conversione del pendolarismo che ho dato. è derivabile da C [ m a g i c ( e ) ] = m a g i c ( e ) , poiché mmagic(e)=eC[magic(e)]=magic(e)realtà non si deve verificare a g i c ( e ) a sinistra. L'analogia è con C [ c a smagic(e) , dove non usare il risultato di un'analisi di caso è ok se si fa lo stesso in entrambi i rami. C[case(e,x.e,y.e)]=case(e,x.C[e],y.C[e])
Neel Krishnaswami,

Dovrei aggiungere, tuttavia, che mi piace di più la presentazione con contesti - anzi, penso in generale che sia più pulito se si consentono effettivamente equazioni sui valori di somma nel contesto! È molto più bello per le prove reali rispetto ai giochi con conversioni pendolari, IMO. (IIRC, questo equivale ad aggiungere l'ipotesi aggiuntiva di coprodotti stabili, ma per tutti i modelli che posso ragionevolmente vedere preoccuparsi di questo vale.)
Neel Krishnaswami

Ah sì, eccellente. Era troppo tardi per pensare alle conversioni pendolari, quindi ho fatto finta di non aver scritto quella parte. Ora Ohad può scegliere.
Andrej Bauer,

1
Stavo convalidando alcuni strutturali ( ,ηregole β , ecc.) In una classe di modelli. Mentre so che l'insieme di equazioni che ho dato non era completo (per questo hai bisogno di CBPV con valori complessi e pile), volevo almeno catturare le equazioni standard che verranno utilizzate per dimostrare la completezza se avessi abbastanza equazioni. In altre parole, volevo le leggi equazionali standard per zero tipi. β
Ohad Kammar,

1
Non esistono leggi equazionali standard per zero tipi. I logici hanno sempre avuto paura del vuoto universo del discorso e gli informatici hanno sempre avuto paura del tipo vuoto. Hanno anche chiamato un tipo non vuoto "vuoto" per negare il tipo vuoto.
Andrej Bauer,
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.