Diskussion:Fixpunkt-Kombinator

Letzter Kommentar: vor 9 Jahren von Daniel5Ko in Abschnitt Ganz viele Punkte

Ganz viele Punkte Bearbeiten

Da ich gerade wenig Lust habe, direkt am Artikel zu arbeiten, hier ein paar Punkte, die wahlweise als Kritik, Hilfestellung, dummes Gelaber oder sonstwas aufgefasst werden dürfen :)

  • Der Typ eines Fixpunktoperators (je nach Drumherum ist es möglicherweise eine Familie, ein Fixpunktoperator pro Typ) sollte angegeben werden. In System-F also sowas wie  . Logisch gesehen, mit "propositions as types", eine blatante Lüge! :)
  • Die Story mit den rekursiven Definitionen ist schwamming bis komisch. Hier meine ungefähr:
    • Wir wollen Definitionen der Form   zulassen, wobei der Name   in   frei vorkommen darf und sich semantisch auf das hiermit definierte   beziehen soll.
    • Um uns nicht so sehr mit Definitionen und Namen herumschlagen zu müssen, und uns auf die Rekursion konzentrieren zu können, fügen wir der abstrakten Syntax für Lambda-Ausdrücke   eine Produktion hinzu:
       .
    • Obige Definition kann man dann mit   ersetzen; dass so eine Definition vorliegt ist im weiteren aber irrelevant. Die rechte Seite (in der   nicht frei vorkommt!) ist eigenständig.
    • Von der Semantik her wollen wir   haben.
    • Alternativ könnte man sich überlegen, anstelle von  -Termen eine Konstante   bereitzustellen:
       ,
    wobei   gelten soll.
    • Ob man nun rekursive Definitionen zulässt, oder ein solches   bereitstellt, ist aber egal, denn das eine ist in das andere übersetzbar:
       ,
       .
    • Im unigetypten Lambdakalkül gibt es einen ganz normalen  -Term ohne freie Variablen, der die Rolle von   einnehmen kann. Das gilt auch für unigetypte PCAs mit   und  .
    • In STLC, was einer intuitionistischen Aussagenlogik entspricht, gibt es keinen solchen  -Term (tatsächlich sind alle  -definierbaren Funktionen da total;   ist illegal, da nicht typbar). Wenn man dort aber Rekursion oder   als Primitiv hinzufügt, wird's als Logik automatisch inkonsistent.
    • Man müsste noch so etwas wie folgendes darlegen: Nehmen wir an, wir wollen die Fibonnacci-Folge als Funktion   in einem STLC+Y definieren.
Das soll ja gerade   sein. Aber der Term, auf den   angewandt wird, ist ja selbst ein normaler rekursionsfreier  -Term. Welchen Typs und was bedeutet der für sich genommen?
Nun, der hat den Typ   und er stellt einen "Approximations-Verbesserer" für das gesuchte (bzw. von   gefundene)   dar!
Er nimmt eine Approximation für   (als partielle Funktion) und gibt eine neue partielle Funktion zurück, die an mehr Stellen definiert ist als das Eingabe-Approximat, und ansonsten mit ihm konsistent ist. Dieser Strang der Betrachtung geht zum Beispiel in Richtung Bereichstheorie weiter, da der Approximationsverbesserer  -definierbar und somit bzgl. der passenden Approximations-Ordnung Scott-stetig ist.
  • Das Curry-Paradoxon sollte man vll. ein wenig auswalzen. Ich verstehe zum Beispiel nicht, warum das erwähnt wird (was seit ca. einem Jahr in enWP steht, ist übrigens hochgradig hahnebüchen). Ganz ohne Rekursion können wir   aus   schließen (STLC):
     ,
     .
Hieran ist erstmal nichts paradox. Im Spezialfall   haben wir als Voraussetzung die Äquivalenz  , und mit Fixpunktoperator ist dieser Typ für alle   bewohnt. Für manche Typen ist er auch ohne Rekursion zu haben bewohnt. So what? Dass wir mit Fixpunktoperator Inkonsistenz haben, sieht man ja schon an seinem Typ.
Womöglich ist von ThePigDog, der den Unfug in enWP verzapft hat, nicht propositions-as-types gemeint, sondern irgendeine andere Beziehung zur Logik. Es sieht irgendwie so ähnlich aus wie folgende ziemlich dämliche Umsetzung des Lügner-Paradoxons:
  • Wir können im unigetypten  -Kalkül Booleans definieren,
  • dann definieren wir die  -Funktion auf den Booleans,
  • und zeigen dann mittels  , dass   einen Fixpunkt hat (nämlich: Nicht-Termination). Daraus schließen wir Inkonsistenz!? Käse hoch Zehn.
  • Ganz sinnvoll, um nicht allzuviel Chaos zu veranstalten, ist natürlich Literatur!

Gruß, --Daniel5Ko (Diskussion) 23:50, 19. Sep. 2014 (CEST)Beantworten