wenn (λ x. xx) einen Typ hat, ist das Typensystem dann inkonsistent?


20

Wenn ein Typsystem einen Typ dem λ x . x xoder dem Nicht-Terminierenden zuordnen kann, (λx . x x) (λ x . x x)ist dieses System in der Folge inkonsistent? Ist jeder Typ unter diesem System bewohnt? Können Sie sich als falsch erweisen?

Antworten:


29

Sicherlich wird ein Typ zugewiesen . x x ist nicht genug für Inkonsistenz: Im System F können wir λ x ableiten . x x : ( X . X ) ( X . X )λx.x xF

λx.x x:(X.X)(X.X)

auf eine ziemlich einfache Weise (dies ist eine gute Übung!). Allerdings kann nicht gut in diesem System eingegeben werden, unter der Annahme , ω -Konsistenz 2. Ordnung Arithmetik, da dies bedeutet , dass alle so gut getippt Begriffe Normalisierungs sind.(λx.x x)(λx.x x) ω

Darüber hinaus ist System konsistent. Dies folgt aus jeder Normalisierung, da man zeigen kann, dass jeder Term vom Typ X ist . X kann keine Normalform hat, oder ein viel einfacheres Argument, in dem jeder Typ einen Satz zugeordnet ist, entweder oder { } und es kann , dass alle ableitbar Typen zugeordnet sind angezeigt { } und X . X ist zugeordnet (und daher nicht ableitbar).FX.X{}{}X.X

Das letztere Argument kann in Arithmetik erster Ordnung ausgeführt werden. Die Tatsache, dass kann in einem konsistenten System gut geschrieben werden und kann als etwas störend angesehen werden und ist eine Folge der Impredikativität des Systems . Es sollte nicht überraschen, dass manche Leute die Vertrauenswürdigkeit von improvisierten Logiksystemen in Frage stellen. In solchen Systemen wurden jedoch bisher keine Inkonsistenzen festgestellt.λx.x x

(λx.x x)(λx.x x)

Weitere Details finden Sie in meiner Antwort auf eine verwandte Frage: /cstheory//a/31321/3984


4
Wenn Sie diese Antworten lesen, haben Sie offensichtlich ein gutes Verständnis für die Sache. Ich würde gerne mehr erfahren, bin mir aber nicht sicher, wo ich suchen soll. Ich habe das TAPL-Buch durchgesehen und nichts davon erwähnt, daher bin ich mir nicht sicher, ob es sich um ein typentheoretisches Thema handelt. Könnten Sie mir sagen, welche CS / Mathe-Bereiche mit dieser Frage zusammenhängen, und vielleicht ein paar Bücher / Artikel? Vielen Dank.
MaiaVictor

2
Ich bin mir nicht sicher, ob diese Fragen per se ein "Forschungsgebiet" sind , eher wie ein paar lustige Fragen, die vor langer Zeit beantwortet worden wären, wenn Experten ernsthafte Anstrengungen unternommen hätten. Es ist definitiv ein typentheoretisches Fach, und die Theorie der reinen Typensysteme hat den Vorteil, das Problem eindeutig und eingeschränkt zu machen. Ich würde wahrscheinlich das Coquand-Herbelin-Papier aus dem anderen Thread empfehlen.
Cody

3
Ähnliche Fragen wurden zum Beispiel hier und hier gestellt . Ich würde Barendregts "Lambda-Kalküle mit Typen" zur Liste hinzufügen .
Cody

1
λx:(X.X).ΛY.x[YY](x[Y])(X.X)(X.X)

1
λλx:(X.X).x[(X.X)(X.X)] xwenn du möchtest. Typinferenz ist hier nicht zu entscheiden, aber dies ist etwas orthogonal zu der Frage. Die Dinge sind natürlich nicht so klar, wenn es abhängige Typen gibt, aber es gibt Versionen des CoC mit impliziten Quantifizierungen (Miquels Berechnung impliziter Konstruktionen), sodass die Frage relevant bleibt.
Cody
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.