Tôi đang đọc các bài giảng về lý thuyết loại hình khối trong repo github này . Trong bài giảng 1 , tác giả định nghĩa mở rộng chức năng theo cách sau:
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
và viết
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
Tôi không làm theo. Cụ thể, khi chúng ta thay thế (p a) @ 0
bằng f a
suy nghĩ của mình, chúng ta sử dụng thực tế sau đây: \(a : A) -> (p a) @ 0 = f a
để viết lại (hãy đặt tên cho bên trái và bên phải) fpa = \(a : A) -> (p a) @ 0
vào fa = \(a : A) -> f a
. Nhưng đây không phải là bằng cách sử dụng chức năng mở rộng với f = fpa, g = fa
?
Nếu tôi không nhầm, lập luận này là thông tư. Bất cứ ai có thể làm rõ?
(p a) @ 0
phán đoán tương đương với(f a)
chúng ta được phép viết lại nó trong lambda? Vì vậy, sự khác biệt là phán đoán và bình đẳng đường dẫn. Có nghĩa với tôi.