Quy tắc loại bỏ cho loại bằng hay còn gọi là tiên đề J


7

Tôi đang triển khai một trình thông dịch cho phép tính lambda và bây giờ tôi muốn thêm loại bằng. Quy tắc giới thiệu cho nó là dễ dàng, nhưng quy tắc loại bỏ là khá mơ hồ đối với tôi. Tôi tìm thấy luồng stackoverflow này , nhưng nó giải thích tiên đề J chỉ trong một câu. Làm thế nào nó có thể được hiểu bằng trực giác?

Câu trả lời:


7

Một sự hiểu biết đầy đủ về những gì Jđã thực sự nói và tại sao chỉ đến gần đây. Bài đăng blog này thảo luận về nó. Trong khi suy nghĩ về mặt đồng luân và các hàm liên tục cung cấp rất nhiều trực giác và kết nối với một lĩnh vực toán học rất phong phú, tôi sẽ cố gắng duy trì cuộc thảo luận dưới đây ở mức logic.

Hãy nói rằng bạn axiomatized loại bình đẳng trực tiếp (đây là những groupoid hoạt động và pháp luật):

Γx:AΓreflx:x=AxΓ,x:A,y:Ap:x=AyΓ,x:A,y:Ap1:y=AxΓ,x:A,y:Ap:x=AyΓ,y:A,z:Aq:y=AzΓ,x:A,y:A,z:Apq:x=Az
(p1)1ppp1refl(pq)1q1p1reflppprefl(pq)rp(qr)
Chúng tôi có sự thay thế đó là functorial.
Γ,z:AF(z):UΓ,x:A,y:Ap:x=AyΓ,x:A,y:Asubst(F,p):F(x)F(y)
subst(F,refl)=idsubst(F,pq)=subst(F,q)subst(F,p)subst(λx.c=Ax,p)(q)=qp
Cuối cùng, chúng ta sẽ có các quy tắc phù hợp cho tất cả mọi thứ, nói rằng mọi thứ đều tôn trọng sự bình đẳng này. Đây là một trong những công việc quan trọng nhất.
Γ,x:A,y:Ap:x=AyΓ,z:AB(z):UΓ,x:A,y:A,b:B(x)liftB(b,p):x,b=Σx:A.B(x)y,subst(B,p)(b)

Bây giờ hãy xem xét một trường hợp đặc biệt của sự thay thế.

Γc:AΓ,t:Σx:A.c=AxC(t):UΓb:C(c,reflc)Γ,y:A,p:c=Aysubst(C,liftλz.c=z(reflc,p))(b):C(y,p)

Đây là J. Chúng ta có thể sử dụng currying để có được hình thức đẹp hơn:

Γc:AΓ,y:A,p:c=AyC(y,p):UΓb:C(c,reflc)Γ,y:A,p:c=AyJA,c(C,b,y,p):C(y,p)

Tất nhiên, nếu chúng ta bắt đầu với Jchúng ta có thể định hướng lại tất cả các cấu trúc khác mà tôi đã xác định.

Bây giờ nếu chúng ta có p:x=Ayq:y=Ay sau đó liftλz.x=z(p,q):y,p=y,pq. Vì vậy, nếu chúng ta cóy,p, không có cách nào để có được nó từ y,p thông qua một lựa chọn trước q nói chung trừ khi pq=p. (Từ quan điểm đồng luân,pq=p nói rằng chúng ta có thể điền vào hình tam giác với các cạnh p, qp.) Để làm cho nó cùn hơn, đặt p=reflx (và y=x) and we get q=p being the required equality which is not true in general (because a value of type x=Ay can represent an arbitrary equivalence and there's nothing saying two equivalences have to be the same, or, equivalently, because we know groupoids can be non-trivial). The point of this is to demonstrate that things can be equal in more than one way, i.e. one value of y=y is not as good as another in general.

A key thing to understand is that J says the type Σy:A.x=Ay is inductively defined, and says little about the type x=Ay for fixed x and y. One way to see this, and why J is the way it is, is to look at what congruence at equality types with matching endpoints looks like. We have the following rule (ignoring the proof term, it's expressible with subst or J):

Γ,x:Ap:x=AxΓ,x:A,q:x=Ax_:q=x=Axpqp1
With liftλz.x=z we have the option of doing liftλz.x=z(p,p1p):y,p=y,p so every point was equivalent to every other point (though not necessarily trivially). With both endpoints matched, we don't have the flexibility of choosing the equalities to first cancel out the input equality and then performing an arbitrary equality.

While J carefully respects the non-trivial groupoid structure of equality types, in typical dependently typed languages there's no way to actually define a non-trivial element of an equality type. At this point you hit a fork in the road. One route is to add Axiom K which says that the groupoid is actually trivial which makes many proofs much simpler. The other route is to add axioms that allow you to articulate the non-trivial groupoid structure. The most dramatic instance of this is the Univalence Axiom which leads to Homotopy Type Theory.


1
For the next person who sees it: this whole answer only makes sense after you understand homotopy type theory.
盛安安

Are there interesting but less dramatic ways of expressing non-trivial equalities than Univalence Axiom ?
Łukasz Lew

1
@ŁukaszLew You could take results implied by univalence without taking the whole thing. Univalence gives you an (,1)-groupoid, but you could assert only a limited number of homotopy levels (indeed, this is effectively what Axiom K does). You could also assert the existence of particular types with non-trivial identity types, e.g. S1, or assert that a pre-existing type has some non-trivial elements in its identity type.
Derek Elkins left SE

1
@ŁukaszLew It doesn't give everything I mentioned. The existence of S1 goes beyond univalence. It and its structure either need to be asserted explicitly, or higher inductive types are required. Univalence, in some sense, only talks about the identity types for the universe(s).
Derek Elkins left SE

1
@ŁukaszLew As a minor correction S1 is representable (albeit, I believe in a slightly weaker way than a higher inductive type would give). Nevertheless, I don't believe it is known whether all higher spheres are or not. The point is higher inductive types are a separate scheme of axioms neither dependent on nor derivable from univalence, though coming from the same intuitions and certainly interacting.
Derek Elkins left SE
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.