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) @ 0bằng f asuy 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) @ 0và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) @ 0phá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.