Fehlerhaftes Argument beim Nachweis der Funktionserweiterung in der kubischen Typentheorie?

7

Ich lese die Vorlesungen über kubische Typentheorie in diesem Github-Repo . In Vorlesung 1 definiert der Autor die Funktionserweiterung folgendermaßen:

funExt (A B : U) (f g : A -> B)
       (p : (x : A) -> Path B (f x) (g x)) :
       Path (A -> B) f g = <i> \(a : A) -> (p a) @ i

und schreibt

To see that this makes sense compute the end-points of the path:

  (<i> \(a : A) -> (p a) @ i) @ 0 = \(a : A) -> (p a) @ 0
                                  = \(a : A) -> f a
                                  = f

Ich folge nicht. Insbesondere dann , wenn wir ersetzen (p a) @ 0mit f ain meinem Kopf verwenden wir die folgende Tatsache: \(a : A) -> (p a) @ 0 = f azu umschreiben (lassen Sie uns Namen auf der linken und rechten Seite geben) fpa = \(a : A) -> (p a) @ 0in fa = \(a : A) -> f a. Aber nutzt das nicht die Funktionserweiterung mit f = fpa, g = fa?

Wenn ich mich nicht irre, ist dieses Argument zirkulär. Kann jemand klarstellen?

WorldSEnder
quelle

Antworten:

7

Der Ausdruck:

\(a : A) -> (p a) @ 0

analysiert als:

\(a : A) -> ((p a) @ 0)

Das trifft also p a : Path B (f a) (g a)auf den 0Punkt zu. Dies reduziert sich auf f a, weil es der Anfangspunkt des Pfades ist. Es macht im Wesentlichen das Gleiche wie der vorherige Schritt, bei dem die Beta das (<i> ...) @ 0auf reduziert hat (...)[i := 0], außer dass es p afür uns abstrakt aussieht, aber das spielt keine Rolle, da wir wissen, worauf es sich reduziert, wenn es nur auf seinen Typ angewendet wird 0(oder 1).

Es wird also keine Funktionserweiterung verwendet, um die Erweiterbarkeit zu beweisen. Was es tut, ist die Tatsache auszunutzen, dass PathTypen Funktionstypen ähnlich sind und dass die beiden PathTypen in funExt'nur' Funktionen mit unterschiedlicher Argumentreihenfolge sind (also werden sie umgedreht).

Dan Doel
quelle
1
Wäre es richtig zu sagen, dass wir es innerhalb des Lambda umschreiben dürfen , weil (p a) @ 0es urteilsmäßig gleich ist (f a)? Der Unterschied ist also wertend gegenüber der Pfadgleichheit. Für mich ergibt das Sinn.
WorldSEnder
1
Ich denke das ist richtig zu sagen. Ausdrücke, bei denen ein Pfad auf den entsprechenden Endpunkt des Pfads angewendet wird 0oder diesem 1gleichwertig entspricht, obwohl iSie den Wert aus beliebigen Gründen möglicherweise nicht kennen.
Dan Doel