Chính xác thì logic là gì?


36

Một lời xin lỗi có thể là do hỏi một câu hỏi khác về điều kiện tiên quyết, nhưng tôi đã nhầm lẫn về điểm bắt đầu. Tôi đã bắt gặp nhiều thuật ngữ khác nhau như "Logic phương thức", "Logic tạm thời", "Logic thứ tự đầu tiên", "Logic bậc hai" và "Logic bậc cao".

Chính xác thì "Logic" nghĩa là gì trong bối cảnh này? Làm thế nào để chúng ta định nghĩa chặt chẽ từ "Logic"?

Sau khi đọc hết những trang đầu của một vài cuốn sách, tôi có thể kết luận một cách đại khái rằng "Logic là một cách để quyết định cái gì sau đó và có ý nghĩa trong việc thiết kế ngôn ngữ lập trình vì nó ra lệnh và tạo điều kiện cho việc thiết kế chương trình tự động suy luận và hiểu chương trình. Tôi muốn để hiểu về điểm thứ hai một cách công phu.

Bây giờ đến với những logic này.

Có phải tất cả các logic này, "Logic tạm thời", "Logic phương thức", "Logic bậc nhất", "Logic bậc cao" độc lập với nhau hay chúng ta cần hiểu một vài logic này để hiểu một vài logic khác trong nhóm này? Tóm lại, điều gì sẽ là điều kiện tiên quyết cho họ? (Sẽ thật tuyệt nếu tôi có thể nhận được đề xuất về một số tài liệu.)

PS: Cảm ơn rất nhiều vì lòng tốt của bạn


17
Trớ trêu rằng một câu hỏi như thế này sẽ được hỏi bởi ai đó tên là Kripke . :-)
David Richerby

1
Tôi phải nói rằng phản ứng của bạn không lạ. Tôi đã khá ngạc nhiên khi bắt gặp một định nghĩa chính thức về 'đại số'.
Thằn lằn rời rạc

2
@Discretelizard "Đại số" có lẽ còn đáng ngạc nhiên hơn nữa, vì nó hoàn toàn không liên quan gì đến thứ mà họ gọi là đại số ở trường trung học.
David Richerby

@DavidR Richby Tôi cũng vậy, "đại số tuyến tính" chỉ là một đại số.
Niklas Rosencrantz

1
@MartinRosenau Tại sao bạn nghĩ rằng đó sẽ là một rào cản để phù hợp với logic mờ vào một khái niệm chung về logic?
Derek Elkins

Câu trả lời:


39

Về cơ bản, một logic bao gồm hai điều.

  • Cú pháp là một tập hợp các quy tắc xác định những gì là và không phải là một công thức.
  • Ngữ nghĩa là một tập hợp các quy tắc xác định công thức nào là "đúng" và "sai" là gì. Đối với một nhà lý thuyết mô hình , điều này được thể hiện bằng các công thức liên quan đến các cấu trúc toán học mà chúng đúng; với một nhà lý thuyết chứng minh , sự thật tương ứng với khả năng chứng minh từ một tập tiên đề được chọn với một bộ quy tắc chứng minh (kỹ thuật) đã chọn.

Sự khác biệt giữa các logic khác nhau, đơn giản nhất là trong sự lựa chọn cú pháp và ngữ nghĩa. Hầu hết các logic là phần mở rộng của logic mệnh đề hoặc logic thứ nhất . Theo một nghĩa nào đó, bạn có thể xem các tiện ích mở rộng này là "thêm nhiều tính năng" vào logic. Ví dụ, logic thời gian xử lý các sự thật có thể thay đổi theo thời gian.

Nói chung, các tính năng này có thể được thể hiện bằng logic đơn giản hơn, với chi phí phải viết các công thức dài hơn. Ví dụ, khái niệm thời gian "  là đúng từ thời điểm này cho vĩnh cửu" có thể được diễn tả một cách bậc nhất bằng cách thêm một tham số thời gian cho tất cả các mệnh đề của bạn và nói "Đối với tất cả các lần  t , nếu t  là lớn hơn hoặc bằng thời điểm hiện tại, sau đó φ  là đúng vào thời điểm  t ." Theo một nghĩa nào đó, bạn có thể nghĩ về những logic này như thêm thư viện vào một ngôn ngữ lập trình cơ bản để bạn có thể nói mọi thứ dễ dàng hơn.φttφt

Vì hầu hết tất cả các logic đều dựa trên logic mệnh đề và thứ tự đầu tiên, tôi khuyên bạn nên tìm hiểu về những logic đó trước.


2
Là một nhà khoa học máy tính, tôi cũng thấy việc xem xét kết nối với lý thuyết loại rất hữu ích cho việc học logic. Một hệ thống loại có thể được coi là một bản trình bày thay thế của một logic tương đương, thông qua sự tương ứng của Howard-Curry . Tôi đề nghị cuốn sách của Pierce để bắt đầu.
phs

1
Có nhiều cú pháp trong logic hơn là công thức, và có nhiều ngữ nghĩa hơn là sự xác định đơn thuần của sự thật.
Andrej Bauer

Một viễn cảnh chính thức gần tương ứng với quan điểm được đề cập trong câu trả lời này và cố gắng đưa ra một định nghĩa thống nhất (và được thiết kế để giải quyết các vấn đề trong khoa học máy tính) là lý thuyết về các tổ chức .
Derek Elkins

Không phải ngẫu nhiên, các tổ chức được mô tả trong một bài báo có tiêu đề Logic là gì?
Derek Elkins

@phs Wow ... Tôi không biết làm thế nào tôi đạt được điều này, nhưng đây là lần đầu tiên tôi từng nghĩ rằng Currying một chức năng có thể là một tài liệu tham khảo cho bất cứ điều gì ngoài gia vị.
Cort Ammon

21

Trong khi các lĩnh vực như khoa học máy tính, toán học và vật lý được tổ chức tương đối tốt, Logic có một lịch sử hỗn loạn. Tổ chức của nó thực sự khó hiểu nên tôi nghĩ điều quan trọng là phải đọc một số lịch sử để hiểu cấu trúc dày đặc của lĩnh vực này.

Con đường bạn nên chọn sẽ phụ thuộc vào nền tảngmục tiêu của bạn .

Logic là gì?

  1. Quan điểm truyền thống nói rằng logic là một hệ thống chính thức với ngôn ngữ chính thức (cú pháp), ngữ nghĩa (ý nghĩa bên ngoài, nghĩ về thông dịch viên của các chương trình) và một bộ quy tắc để suy ra các câu lệnh từ những người khác (nghĩ về các quy tắc của giảm các chương trình). Một logic hoàn toàn được xem như là một đối tượng toán học đơn thuần.

  2. Quan điểm hiện đại, cho biết, thông qua sự đồng hình hóa nổi tiếng Curry-Howard rằng logic là một hệ thống kiểu kết hợp (bằng chứng là các chương trình và các loại là công thức). Chính xác hơn: một hệ thống các quy tắc suy luận được hưởng định lý cắt bỏ và định lý hợp lưu / định lý Church-Rosser ngụ ý rằng hệ thống lập trình cơ bản sẽ hoạt động tốt.

  3. p,q

    • P,QP(x1,...,xn)Q(x1,...,xn)
    • Trong logic thứ tự thứ hai, biến cho các vị từ trở thành loại hàm lấy thứ tự thứ nhất. Chúng hoạt động giống như các hàm lấy các hàm bậc nhất làm đối số. Chẳng hạn, chúng ta có thể có các vị từ và định lượng trên các vị từ.
    • Lý luận tương tự cho đơn đặt hàng thứ ba, vv Các logic thứ tự cao hơn chấp nhận bất kỳ đơn đặt hàng nào. Hãy nghĩ về HaskellOCaml có chức năng lấy chức năng của chức năng của chức năng, v.v. làm đối số.
  4. Nói chung, không có sự đồng thuận về những gì một logic logic là gì. Một số triết gia sử dụng các hệ thống không có hệ thống lập trình cơ bản mạch lạc. Trên thực tế, tôi muốn nói rằng mọi lĩnh vực sử dụng Logic đều có quan niệm riêng về logic. Và hầu hết các nhà toán học có lẽ không quan tâm đến logic là gì.

Cấu trúc của trường

Lịch sử của Logic quá lớn nên tôi sẽ chỉ đưa ra cấu trúc của trường. Lĩnh vực logic hình thức được chia thành: sử dụng triết học, toán học và tính toán. Logic hình thức bắt đầu trong thế kỷ 19-20.

  • Bạn nên nghiên cứu logic mệnh đềlogic thứ nhất trước. Họ là những người tiêu chuẩn nhất. Chúng được tạo ra để đưa ra một tài khoản chính thức / toán học theo logic cũ của thời Hy Lạp cổ đại.

    • Lý thuyết mô hình (ngữ nghĩa), nghiên cứu các cấu trúc toán học từ quan điểm của logic
    • Lý thuyết bằng chứng (cú pháp), độc lập, nghiên cứu bằng chứng như một đối tượng toán học.
  • Logic bậc hai là một phần mở rộng của logic bậc một, là phần mở rộng của logic mệnh đề. Điều này đặc biệt thú vị bởi vì mỹ phẩm "sống" theo thứ tự thứ hai (vị ngữ trên các vị từ có cảm ứng). Tương tự, cấu trúc liên kết sống theo "thứ tự thứ ba" (vị ngữ trên các tập hợp có thể được xem như là vị ngữ).

  • Sau đó đến LEJ Brouwer đã tách logic thành hai:

    • AA¬A
    • Logic trực giác là một loại logic từ chối trung gian bị loại trừ và tất cả các luật tương đương (vì lý do kỹ thuật và triết học tôi sẽ không giải thích ở đây).
  • Trong bối cảnh khác, các nhà triết học bắt đầu quan tâm đến logic hình thức và nghĩ rằng nó có thể trả lời các câu hỏi triết học (triết học phân tích). Họ đã tạo ra các hệ thống logic độc lập của riêng họ (logic paraconsistent, logic liên quan và logic phương thức như logic phi thần, logic thời gian, logic epistemia, ...). Logic phương thức không hoạt động với sự thật nhưng với các phương thức như khả năng, sự cần thiết, thời gian, kiến ​​thức. Họ đều độc lập với các logic trên.

  • λ

  • Các nhà khoa học máy tính muốn xác minh và chứng minh sự minh bạch của các hệ thống một cách chính thức và có vẻ như logic phương thức có liên quan. Ngày nay họ sử dụng logic thời gian và logic phương thức để lý luận trên các hệ thống (xem: phương pháp chính thức, kiểm tra mô hình). Các hệ thống được mô hình hóa thông qua Lý thuyết Automata (ví dụ) và được xác minh bằng các công cụ logic. Nó đã dẫn đến Logic tạm thời tuyến tính (LTL)Logic cây tính toán (CTL) .

  • Trong cùng một động lực, các nhà khoa học máy tính muốn xác minh tính đúng đắn và chứng minh các thuộc tính về các chương trình. Vì vậy, chúng tôi đã phát minh ra logic Hoare cho các chương trình bắt buộc và nói chung hơn là Logic tách biệt .

  • Bằng cách nghiên cứu, đẳng cấu Curry-Howard, một logic mới đã xuất hiện: Logic tuyến tính hạn chế các quy tắc cấu trúc (làm suy yếu và co lại) được xem là hoạt động xóa và sao chép hoạt động trong các bằng chứng và chương trình. Sự vô hạn tiềm năng của sự thật được khám phá. Dường như logic này là một khái quát của logic cổ điển và trực giác và đưa ra một quan niệm hoàn toàn mới về Logic dựa trên tính toán và mô hình thủ tục. Nó chủ yếu được nghiên cứu bởi các nhà khoa học máy tính.

  • Logic tuyến tính cũng xuất phát từ cái mà chúng ta gọi là logic logic cấu trúc từ chối các quy tắc cấu trúc của Logic. Logic liên quan và Logic affine là những ví dụ cho các hệ thống như vậy.

Tóm tắt và lựa chọn đường dẫn

  • Bất kỳ logic nào cũng có thể là: logic mệnh đề, thứ tự đầu tiên, thứ hai, thứ ba, ..., thứ tự cao hơn (mỗi thứ tự mở rộng cái trước).

  • Chúng tôi có thể thêm hoặc xóa các quy tắc để tạo các biến thể của các hệ thống hiện có:

    • Loại bỏ giữa-trung bình: logic trực giác
    • Thêm phương thức: logic phương thức
    • Hạn chế mâu thuẫn và suy yếu: logic tuyến tính
    • Loại bỏ sự co lại: logic affine
    • Loại bỏ suy yếu: logic có liên quan
    • Xử lý phủ định khác nhau: logic paraconsistent
  • Tìm hiểu logic mệnh đề và thứ tự đầu tiên và:

    • lý thuyết mô hình, bậc hai, bậc cao hơn nếu bạn quan tâm đến toán học
    • lý thuyết bằng chứng, logic trực giác, thứ hai, logic tuyến tính nếu bạn quan tâm đến nền tảng của khoa học máy tính
    • logic phương thức, logic hoare, logic tách nếu bạn quan tâm đến việc xác minh hệ thống và chương trình
    • logic phương thức, logic phi cổ điển nói chung nếu bạn quan tâm đến triết học

Tài liệu tham khảo (Sách)

Cá nhân tôi khuyên bạn nên trộn tài liệu tham khảo, nếu có thể.

  • Logic toán học (Chiswell & Hodges) : cuốn sách rất ngắn gọn và đơn giản để bắt đầu.
  • Một khóa học đầu tiên về Logic (Hedman) : hơi giống như ở trên nhưng cung cấp thêm chi tiết và tính đến khả năng tính toán.
  • Sổ tay logic thực tế và lý luận tự động (Harrison) : Nếu bạn muốn hiểu làm thế nào một số khái niệm liên quan đến logic được thực hiện trong thực tế. Định hướng nhiều hơn cho lý luận tự động.
  • Logic trong Khoa học máy tính (Huth & Ryan) : rất rõ ràng và hướng đến các nhà khoa học máy tính (xác minh các chương trình và hệ thống, logic Hoare, sử dụng thực tế logic logic phương thức, logic thời gian, kiểm tra mô hình).
  • Giới thiệu về Lý thuyết bằng chứng (Buss) : giới thiệu về lý thuyết bằng chứng. Nó sẽ tốt hơn để đọc điều này sau một số logic chung.

Tài liệu tham khảo (Wikipedia)


Chà, điều này rất ... toàn diện, tôi muốn nói. Cảm ơn đã dành thời gian để viết những dòng này!
Thằn lằn rời rạc

5
Điều này có vẻ rất toàn diện nhưng tôi thực sự sẽ không mang đến Curry-Howard như điều thứ hai bạn nói về logic cho ai đó chỉ học nó là gì. Trừ khi bạn thực sự học lý thuyết loại, Curry-Howard không phải là "định nghĩa hiện đại của logic"; nó chỉ là thứ mà một số người làm với logic.
David Richerby

2
@DavidR Richby Ok. Tôi hiểu nhưng tôi nghĩ Curry-Howard đủ quan trọng đối với các nhà khoa học máy tính (cũng bởi vì chúng tôi đang ở trong cs.stackexchange). Nó không thực sự là một định nghĩa hiện đại về logic nhưng tôi nghĩ nó dành cho một số nhà khoa học máy tính. Những gì một logic thực sự có thể là chủ quan dù sao. Tôi biết không phải lúc nào cũng nên trưng bày poster gốc cho rất nhiều thứ nhưng tôi không thực sự mong đợi một sự hiểu biết đầy đủ, thay vào đó là bức tranh toàn cảnh về các nhánh của Logic (một chút thiên vị của CS) có thể hoạt động như một tham khảo để nhận biết loại logic nào tồn tại và nơi nó được sử dụng.
Boris E.

Tôi có ấn tượng rằng logic thứ tự cao hơn trong Haskell sẽ là các toán tử loại , thay vì các hàm có thể lấy các hàm làm đầu vào.
martin

@martin Hừm ... Đó chỉ là một sự tương tự đơn giản để nắm bắt ý tưởng về cơ chế nhưng nó không nên quá nghiêm trọng. Tôi muốn mô tả ý tưởng về "thứ tự cao hơn" chứ không phải chính xác là "logic thứ tự cao hơn" (xem xét nền tảng của người đăng ban đầu).
Boris E.

0

Tất cả các logic này đang đến bên dưới Logic toán học .

Logic toán học thường được chia thành các lĩnh vực của lý thuyết tập hợp, lý thuyết mô hình, lý thuyết đệ quy và lý thuyết chứng minh. Những lĩnh vực này chia sẻ kết quả cơ bản về logic, đặc biệt là logic thứ nhất và tính xác định. Trong khoa học máy tính (đặc biệt trong Phân loại ACM) logic toán học bao gồm các chủ đề bổ sung không chi tiết trong bài viết này; xem Logic trong khoa học máy tính cho những người đó.

Hơn nữa, nếu bạn muốn biết về logic trong thuật ngữ chung , bài viết này có thể hữu ích.

Logic, ban đầu có nghĩa là "từ" hoặc "những gì được nói", nhưng có nghĩa là "suy nghĩ" hoặc "lý trí", là một chủ đề liên quan đến các quy luật chung nhất của sự thật, và hiện nay thường được tổ chức để bao gồm nghiên cứu có hệ thống của hình thức suy luận hợp lệ. Một suy luận hợp lệ là một trong đó có một mối quan hệ cụ thể của hỗ trợ logic giữa các giả định của suy luận và kết luận của nó.


4
Hmm, tôi không chắc nếu điều này rất hữu ích ở đây. Bạn có nói rằng bài viết của David làm cho bạn 'thay thế' không? Nếu không, tại sao? Hãy cố gắng mở rộng về điều đó.
Thằn lằn rời rạc

@OmG: Bạn có thể giới thiệu một danh sách các tài liệu để học hỏi không?
Sheldon Kripke
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.