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) @ 0
mit f a
in meinem Kopf verwenden wir die folgende Tatsache: \(a : A) -> (p a) @ 0 = f a
zu umschreiben (lassen Sie uns Namen auf der linken und rechten Seite geben) fpa = \(a : A) -> (p a) @ 0
in 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?
quelle
(p a) @ 0
es urteilsmäßig gleich ist(f a)
? Der Unterschied ist also wertend gegenüber der Pfadgleichheit. Für mich ergibt das Sinn.0
oder diesem1
gleichwertig entspricht, obwohli
Sie den Wert aus beliebigen Gründen möglicherweise nicht kennen.