Chúng dường như có mục đích tương tự. Sự khác biệt mà tôi đã nhận thấy cho đến thời điểm này là trong khi Program Fixpoint
sẽ chấp nhận một biện pháp hợp chất như {measure (length l1 + length l2) }
, Function
dường như từ chối điều này và sẽ chỉ cho phép {measure length l1}
.Sự khác nhau giữa Program Fixpoint và Function trong Coq là gì?
Có phải Program Fixpoint
nghiêm ngặt hơn Function
hoặc chúng phù hợp hơn cho các trường hợp sử dụng khác nhau không?
Ngẫu nhiên, [Lộ trình Coq v8.7] (https://github.com/coq/roadmaps/blob/master/text/roadmap-8.7.md#implementation-cleanups) cho biết việc triển khai của họ sẽ được sáp nhập. –
Đây là một câu hỏi hay, tôi khuyên bạn nên đến với Coq's gitter nếu bạn cần câu trả lời chi tiết khi mọi người hiểu biết về nó không đọc SO AFAIK; việc thực hiện chức năng và chương trình đã được thực hiện bởi những người khác nhau và trong các ngữ cảnh khác nhau nên thực sự bộ tính năng của họ không phải là một tập hợp con của người khác. Có kế hoạch hợp nhất cả hai trên chúng trong một plugin "Phương trình" mới, nhưng điều đó sẽ không xảy ra trong 8.7, ngay cả khi có nhiều tiến bộ đã được thực hiện. Điều đó đang được nói, tôi nghĩ rằng bạn sẽ thường tốt hơn với Chương trình nếu bạn quan tâm đến khả năng tương thích với các phiên bản Coq trong tương lai. – ejgallego