Không, trong trường hợp này, tính dự đoán và tính đơn điệu không liên quan chặt chẽ với nhau.
Kiểm tra tính tích cực trong Coq / Adga phục vụ để đảm bảo rằng bạn đang lấy điểm cố định ít nhất của một thứ đơn điệu, đại khái.
Dưới đây là cách nghĩ về các loại quy nạp theo mạng tinh thể và toán tử đơn điệu. Hãy nhớ lại rằng định lý Knaster-Tarski nói rằng trên một mạng tinh thể hoàn chỉnh , mọi toán tử đơn điệu có một điểm cố định ít nhất . Tiếp theo, chúng ta có thể nghĩ về các loại trong một lý thuyết loại là hình thành một mạng dưới khả năng chứng minh. Đó là, gõ nằm dưới nếu sự thật của đòi hỏi của . Bây giờ, những gì chúng tôi muốn làm là sử dụng toán tử đơn điệu trên các loại và sử dụng Knaster-Tarski để tìm ra cách giải thích về điểm ít cố định nhất của toán tử này . f : L → L μ ( f ) S T S T F μ ( F )Lf:L→Lμ(f)STSTFμ(F)
Tuy nhiên, các loại trong lý thuyết loại không chỉ là một mạng: chúng tạo thành một thể loại. Đó là, cho hai loại và , có khả năng nhiều cách để được dưới , với một cách cho mỗi bằng chứng . Vì vậy, một toán tử loại cũng phải làm một cái gì đó hợp lý trên các bằng chứng này. Sự khái quát hóa thích hợp của tính đơn điệu là functoriality . Đó là, chúng tôi muốn có một toán tử trên các loại và cũng có hành động về bằng chứng, sao cho nếu , thì .T S T e : S → T F F e : S → T F ( e ) : F ( S ) → F ( T )STSTe:S→TFFe:S→TF(e):F(S)→F(T)
Bây giờ, functoriality được bảo toàn bởi các khoản tiền và sản phẩm (ví dụ: nếu và là endofunctor trên các loại, thì và (hành động theo chiều ngược lại) cũng là functor trên các loại (giả sử chúng ta có tổng và sản phẩm trong đại số của chúng ta của các loại). Tuy nhiên, nó không được bảo toàn bởi không gian hàm, vì hàm bifunctor theo hàm mũ là chống chỉ định trong đối số bên trái của nó. Vì vậy, khi bạn viết một định nghĩa kiểu quy nạp, bạn đang xác định một hàm functor để lấy một điểm cố định ít nhất của. Để đảm bảo rằng nó thực sự là một functor, bạn cần loại trừ các lần xuất hiện của tham số đệ quy ở phía bên trái của các không gian hàm --- do đó kiểm tra độ dương.G F + G F × G F → GFGF+GF×GF→G
Nói chung, không thể tránh khỏi (theo nghĩa của Hệ thống F), vì đó là một nguyên tắc buộc bạn phải lựa chọn giữa logic cổ điển và các mô hình lý thuyết tập hợp. Bạn không thể diễn giải các kiểu như các tập hợp trong lý thuyết tập cổ điển nếu bạn có lập chỉ mục kiểu F. (Xem phần "Đa hình không nổi tiếng" của Reynold.)
Về mặt phân loại, tính ngẫu nhiên theo kiểu F nói rằng phạm trù các loại và thuật ngữ tạo thành một phạm trù hoàn chỉnh nhỏ (nghĩa là homs và đối tượng là cả hai tập hợp và giới hạn của tất cả các sơ đồ nhỏ tồn tại). Về mặt kinh điển, điều này buộc một thể loại phải là một tư thế. Nhiều nhà xây dựng có tính xây dựng vì họ muốn các định lý của họ nắm giữ nhiều hệ thống hơn là logic cổ điển, và vì vậy họ không muốn chứng minh bất cứ điều gì sai về mặt kinh điển. Do đó, họ là tinh ranh của đa hình bẩm sinh.
F
Fmap:∀α,β.(α→β)→(F(α)→F(β))
Xem làm thế nào điều này tương ứng với functoriality? IMO, đây sẽ là một lựa chọn rất hay có trong Coq, vì nó sẽ cho phép bạn lập trình chung dễ dàng hơn nhiều. Bản chất cú pháp của kiểm tra tính tích cực là một trở ngại lớn đối với lập trình chung và tôi sẽ rất vui khi đánh đổi khả năng của các tiên đề cổ điển cho các chương trình chức năng linh hoạt hơn.
EDIT: Câu hỏi bạn đang hỏi về sự khác biệt giữa Prop và Set xuất phát từ thực tế là các nhà phát triển Coq muốn cho phép bạn nghĩ về các định lý Coq theo các thuật ngữ lý thuyết tập hợp ngây thơ nếu bạn muốn, mà không buộc bạn phải làm như vậy. Về mặt kỹ thuật, họ phân chia Prop và Set, và sau đó cấm các bộ tùy thuộc vào nội dung tính toán của Prop.
Vì vậy, bạn có thể hiểu Prop là giá trị thật trong ZFC, đó là giá trị đúng và sai. Trong thế giới này, tất cả các bằng chứng về các mệnh đề đều bằng nhau, và vì vậy rõ ràng bạn không thể phân nhánh trên bằng chứng của một mệnh đề. Vì vậy, việc cấm các bộ tùy thuộc vào nội dung tính toán của bằng chứng Prop là hoàn toàn hợp lý. Hơn nữa, mạng boolean 2 phần tử rõ ràng là một mạng hoàn chỉnh, do đó, nó nên hỗ trợ lập chỉ mục bắt buộc, vì đáp ứng giá trị tập hợp tùy ý tồn tại. Hạn chế dự báo trên Bộ phát sinh từ thực tế (đã đề cập ở trên) rằng lập chỉ mục kiểu F bị suy biến trong các mô hình lý thuyết tập hợp cổ điển.
Coq có các mô hình khác (đó là logic xây dựng!) Nhưng vấn đề là ngoài kệ nó sẽ không bao giờ chứng minh bất cứ điều gì mà một nhà toán học cổ điển sẽ bối rối.