Trợ lý chứng minh viết toán


12

Tôi muốn viết bằng chứng toán học bằng cách sử dụng một số trợ lý chứng minh. Tất cả mọi thứ sẽ được viết bằng logic thứ tự đầu tiên (với sự bình đẳng) và khấu trừ tự nhiên. Bối cảnh là lý thuyết tập hợp (ZF). Ví dụ, làm thế nào tôi có thể viết bằng chứng sau đây?

Axiom: xy(x=yz(zxzy))

Định lý: xy(z(zx)z(zy)x=y)

Đó là, bộ trống là duy nhất.

Thật là tầm thường đối với tôi khi sử dụng giấy và bút, nhưng điều tôi thực sự cần là một phần mềm giúp tôi kiểm tra bằng chứng cho sự chính xác.

Cảm ơn bạn.


11
Đầu tiên bạn cần chọn một trợ lý bằng chứng. Coq là những gì tôi sử dụng, nhưng có nhiều người khác . Một số trong số này được dựa trên logic thứ tự đầu tiên, vì vậy sẽ phù hợp hơn với nhu cầu của bạn. Sau đó, bạn cần phải cam kết học các trợ lý bằng chứng. Trong vài ngày, bạn phải có thể mã hóa các định lý đơn giản, chẳng hạn như định lý ở trên và chứng minh chúng. Đừng hy vọng rằng chúng tôi sẽ làm điều này cho bạn. Bạn sẽ không học được gì theo cách đó.
Dave Clarke

5
Nếu bạn quan tâm đến lý thuyết tập hợp, không phải lý thuyết loại thì có lẽ Isabelle là hệ thống đơn giản nhất. Coq sẽ có vẻ lạ và khó hiểu.
Đánh dấu Reitblatt

2
Tôi nghĩ rằng tiên đề bạn đã viết không phải là logic thứ nhất, mà là logic thứ hai. Điều này là do trước đây, các biến chỉ phạm vi trên các cá nhân, trong khi ở các biến sau, các biến có thể nằm trên cả các cá nhân và các bộ. Rõ ràng, trong tiên đề đã cho, y là các tập hợp trong khi z là một cá thể. xyz
MS Dousti

9
@Sadeq: Trong ZF không đặt các yếu tố cơ bản của vũ trụ? Vì vậy, bạn sẽ có thể nói những điều như "cho tất cả các bộ" theo logic thứ tự đầu tiên, đó là những gì đang được thực hiện trong tiên đề đó.
Robin Kothari

9
@Sadeq, những gì Robin nói là chính xác, là một lý thuyết thứ tự đầu tiên và tiên đề được viết trong câu hỏi cũng là thứ tự đầu tiên. Trong Z F, mọi thứ chỉ là một tập hợp, không có gì là cá nhân so với tập hợp. . ZFZF
Kaveh

Câu trả lời:


13

Cả Coq và Isabelle đều có thể làm điều này.

[Coq] Đây là một bài viết thảo luận về cách mã hóa ZFC trong CIC, dựa trên Coq.

Benjamin Werner: Đặt theo loại, loại trong bộ (1997). http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.55.1709

[Isabelle] Có một thư viện cho ZF.

http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/l Library / ZF / index.html


3
Mặc dù bài báo này khá hay, tôi nghĩ rằng sẽ thực tế hơn nếu chỉ thêm các loài (biến kiểu) và tiên đề để mã hóa trực tiếp lý thuyết tiên đề của ZF, sau đó thực hiện bằng chứng bằng cách thu hút trực tiếp các tiên đề này. Mã hóa là nhiều hơn để chỉ ra rằng các lý thuyết có liên quan trong sức mạnh biểu cảm.
cody

2
Tôi nên nói thêm rằng có một triển khai những ý tưởng này, bởi Bruno Barras: lix.polytechnique.fr/~barras/proofs/sets/index.html
cody

9

Chuyển từ nhận xét theo đề nghị của Kaveh

Đầu tiên bạn cần chọn một trợ lý bằng chứng. Coq là những gì tôi sử dụng, nhưng có nhiều người khác . Coq dựa trên logic bậc cao (cái gọi là Giải tích các công trình quy nạp). Các trợ lý chứng minh khác dựa trên logic thứ tự đầu tiên, do đó có thể phù hợp hơn với nhu cầu của bạn (modulo các ý kiến ​​trên).

Sau đó, bạn cần phải cam kết học các trợ lý bằng chứng. Các tài liệu được liên kết là một hướng dẫn để có được nền tảng với Coq. Trở thành một chuyên gia Coq đòi hỏi nhiều năm cống hiến và thực hành, nhưng những định lý đơn giản có thể được chứng minh trong một buổi chiều. Chìa khóa để học Coq hoặc bất kỳ trợ lý chứng minh nào khác là làm bằng chứng, chẳng hạn như những bằng chứng trong bài báo được liên kết. Chỉ cần đọc bài viết sẽ giúp rất ít, bởi vì toàn bộ trải nghiệm tương tác với trợ lý bằng chứng không thể được truyền đạt tốt trên giấy.

Trong vài ngày, bạn phải có thể mã hóa các định lý đơn giản, chẳng hạn như định lý ở trên và chứng minh chúng. Đừng hy vọng rằng chúng tôi sẽ làm điều này cho bạn. Bạn sẽ không học được gì theo cách đó.

Khi bạn thành công trong việc chứng minh những định lý này, hãy đăng câu trả lời của bạn ở đây và có thể để lại một vài bình luận về kinh nghiệm của bạn.

Bạn có cho thách thức?


4
Coq là một lựa chọn hợp lý; tuy nhiên, nếu xddz5 thực sự muốn làm việc trong lý thuyết tập hợp ZF hơn là lý thuyết loại, thì có lẽ Mizar phù hợp hơn.
Timothy Chow


5

Dave Clarke gợi ý Coq, nhưng thực sự Isabelle có vẻ như là một ý tưởng tốt hơn nhiều, vì nó có thư viện A cho ZF . Isabelle cũng rất trưởng thành và bao gồm nhiều chiến thuật và phần mở rộng.

Cá nhân tôi chưa sử dụng Mizar, nhưng nó cũng có thể tốt.


2

Làm thế nào tôi có thể viết bằng chứng sau đây?

Trong Isabelle / ZF bạn có thể viết một cái gì đó như thế này

theory csthquestion imports Main

begin

theorem empty_unique:
shows "\<forall> x.\<forall>y.(\<forall>z. (z\<notin>x)) \<and> (\<forall>z.(z\<notin>y)) \<longrightarrow> x=y"
    by auto

end

Như bạn có thể thấy Isabelle chứng minh điều này một cách tự động. Tất nhiên bạn có thể viết một bằng chứng chi tiết hơn nếu bạn thực sự muốn.


2

Chính định lý này là một ví dụ hoạt động (xem ví dụ 11) trong hướng dẫn đi kèm với phần mềm DC Proof 2.0 của tôi. Tải xuống miễn phí tại trang web của tôi http://www.dcproof.com


1
Đây là một chút bán-ish cho trang web này. Bạn có thể trình bày một số thông tin theo cách thuận tay để nói theo cách phần mềm của bạn phù hợp với vấn đề không? Có lẽ một liên kết đến một video hoặc một ảnh chụp màn hình của phái sinh này đang được thực hiện?
Charles Stewart

1
Dưới đây là bằng chứng: dcproof.com/EmptySetUnique.htm Có một video tại trang web của tôi cho thấy hệ thống hoạt động như thế nào.
Dan Christensen
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.