Jakie są prawa równań dla typów zerowych?

13

Oświadczenie : chociaż dbam o teorię typów, nie uważam się za eksperta w dziedzinie teorii typów.

W prostym typie rachunku lambda typ zerowy nie ma konstruktorów i unikalnego eliminatora:

ΓM:0Γinitial(M):A

Z denotacyjnego punktu widzenia równanie initial(M1)=initial(M2) jest oczywiste (gdy typy mają sens).

Jednak z tej perspektywy mogę również wywnioskować, że gdy M,M:0 , to: M=M . Ta dedukcja wydaje się silniejsza, chociaż umyka mi konkretny model, który ją pokazuje.

(Mam jednak pewną intuicję teoretyczną: nie ma znaczenia, jakiej sprzeczności używasz w celu uzyskania mieszkańca, ale mogą istnieć różne dowody sprzeczności).

Więc moje pytania to:

  1. Jakie są standardowe prawa równań dla typów zerowych?
  2. Czy którekolwiek z nich są klasyfikowane jako prawa η lub β ?
Ohad Kammar
źródło

Odpowiedzi:

12
  1. Standardowe reguły równań dla pustego typu to, jak się domyślacie, . Pomyśl o standardowym modelu teoretycznym, w którym zbiory są interpretowane według typów: typy sum są rozłącznymi związkami, a pusty typ jest pustym zbiorem. Tak więc dowolne dwie funkcje e , e : Γ 0 również muszą być równe, ponieważ mają wspólny wykres (mianowicie pusty wykres). .Γe=e:0e,e:Γ0

  2. Pusty typ nie ma reguł , ponieważ nie ma dla niego żadnych formularzy wprowadzających. Jedyną regułą równania jest reguła η . Jednak w zależności od tego, jak ściśle chcesz interpretować zasadę eta, możesz podzielić to na η plus konwersję dojazdów do pracy. Ścisłe η Regułę jest:βηηη

    e=initial(e)

    Coversion dojazdów do pracy to:

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

EDYTOWAĆ:

Oto dlaczego dystrybucja w typie zerowym oznacza równość wszystkich map .A0

Aby naprawić notację, napiszmy aby być unikalną mapą od 0 do A , i napiszmy e : A 0, aby była mapą od A do 0 .!A:0A0Ae:A0A0

Teraz warunek dystrybucji mówi, że występuje izomorfizm . Ponieważ obiekty początkowe są unikalne aż do izomorfizmu, oznacza to, że A × 0 jest samym obiektem początkowym. Możemy teraz użyć tego, aby pokazać, że sam A jest obiektem początkowym.i:0A×0A×0A

Ponieważ jest obiektem początkowym, znamy mapy π 1 : A × 0 A i ! Aπ 2 są równe.A×0π1:A×0A!Aπ2

Teraz, aby pokazać, że jest obiektem początkowym, musimy pokazać izomorfizm między nim a 0 . Wybierzmy e : A 0 i ! O : 0 A jako składniki izomorfizmu. Chcemy pokazać, że e ! A = i d 0 i ! e = I d A .A0e:A0!A:0Ae!A=id0!Ae=idA

Pokazuje to jest natychmiastowe, ponieważ istnieje tylko jedna mapa typu 0 0 i wiemy, że zawsze istnieje mapa tożsamości.e!A=id000

Aby pokazać inny kierunek, zwróć uwagę

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

Stąd mamy izomorfizm , a więc A jest obiektem początkowym. Dlatego mapy A 0 są unikalne, więc jeśli masz e , e : A 0 , to e = e .A0AA0e,e:A0e=e

EDYCJA 2: Okazuje się, że sytuacja jest ładniejsza niż początkowo myślałem. Nauczyłem się od Ulricha Bucholza, że ​​jest oczywiste (w matematycznym znaczeniu „retrospektywnie oczywiste”), że każde biCCC ma charakter dystrybucyjny. Oto uroczy mały dowód:

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)
Neel Krishnaswami
źródło
1
Odnośnie 1: Myślę, że typ zerowy jest początkowym obiektem. Początkowe obiekty mogą mieć wiele strzałek do nich, ale może mieć tylko jedna strzałka się od nich. Innymi słowy, nie widzę od razu żadnego powodu, dla którego bycie bi-CCC sugeruje, że 0 jest subterminalne. Czy jest jeden
Ohad Kammar
Tak: fakt, że STLC z sumami wymaga rozdzielającego bi-CCC ( ), a także wyjątkowość dla 0 typ jest jego zerową wersją. (Spróbuj zapisać interpretację reguły eliminacji sum, a zobaczysz ją.)(X×A)+(X×B)X×(A+B)
Neel Krishnaswami
Nie podążam. Dystrybucja wynosi o odwrotności. Dlaczego to oznacza, że jest subterminalne? initial:0A×00
Ohad Kammar
Aha! Dzięki za ten dowód! I za cierpliwość!
Ohad Kammar
odnośnie do edycji 2: Lewe punkty pośrednie zachowują kolimity. Jeżeli kategoria jest zamknięty kartezjańskim, a pozostało sprzężona do tak jest suma . ()×C()C(A+B)×C A×C+B×C
Ohad Kammar
8

Równanie uchwyca tylko fakt, że ma najwyżej jeden element, więc nie sądzę, że Neel przechwytuje całą historię. Aksjatyzuję pusty typ w następujący sposób.e=e:000

Brak zasad wprowadzania. Reguła eliminacji toRównanie to gdzie i . W całym jest dowolny typ. Równanie jest motywowane następująco: jeśli udało ci się sformułować termin wówczas jest zamieszkane przez , ale jest to absurd, więc wszystkie równania są ważne. Zatem innym sposobem osiągnięcia tego samego efektu byłoby równania

e:0magicτ(e):τ.
magicτ(e)=e:τ
e:0e:ττmagicτ(e)0e
x:0,Γe1=e2:τ
co może nie jest tak miłe, ponieważ majstruje w kontekście. Z drugiej strony pokazuje to wyraźniej, że stwierdzamy, że dowolne dwa morfizmy od do są równe ( jest rozproszeniem w CCC).0τΓ
Andrej Bauer
źródło
1
Cześć Andrej, równanie, które sugerujesz, można wyprowadzić z podanej przeze mnie konwersji dojazdowej. można uzyskać z , ponieważ tak naprawdę nie musi wystąpić na lewy termin. Analogia jest do , gdzie nieużywanie wyniku analizy przypadków jest w porządku, jeśli robisz to samo w obu gałęziach. magic(e)=eC[magic(e)]=magic(e)magic(e)C[case(e,x.e,y.e)]=case(e,x.C[e],y.C[e])
Neel Krishnaswami
Powinienem jednak dodać, że bardziej podoba mi się prezentacja z kontekstami - myślę, że ogólnie jest najczystsza, jeśli w rzeczywistości pozwalasz na równania na wartościach sumarycznych w kontekście! Jest to o wiele ładniejsze w przypadku faktycznych dowodów niż gry z konwersjami dojazdów do pracy, IMO. (IIRC, jest to równoważne z dodaniem dodatkowego założenia o stabilnych koproduktach, ale dla wszystkich modeli rozsądnie widzę, że dba o to.)
Neel Krishnaswami
Ach tak, świetnie. Było za późno, aby pomyśleć o konwersjach dojazdowych, więc udawałem, że nie napisałeś tej części. Teraz Ohad może wybrać.
Andrej Bauer,
1
Sprawdzałem poprawność niektórych reguł strukturalnych ( , itp.) W klasie modeli. Chociaż wiem, że zestaw równań, które podałem, nie był kompletny (potrzebujesz CBPV ze złożonymi wartościami i stosami do tego), chciałem przynajmniej uchwycić standardowe równania, które zostaną wykorzystane do udowodnienia kompletności, jeśli będę miał wystarczającą liczbę równań. Innymi słowy, chciałem standardowych praw równań dla typów zerowych. ηβ
Ohad Kammar
1
Nie ma standardowych praw równań dla typów zerowych. Logicy zawsze bali się pustego wszechświata dyskursu, a informatycy zawsze bali się pustego typu. Nazwali nawet niepusty typ „void”, aby odmówić pustego typu.
Andrej Bauer,