Tại sao chúng ta cần ngữ nghĩa chính thức cho logic vị ngữ?


25

Hãy xem xét câu hỏi này. Tôi sẽ không chọn một câu trả lời hay nhất vì tất cả chúng đều góp phần vào sự hiểu biết của tôi về chủ đề này.

Tôi không chắc chúng ta có lợi ích gì khi chính thức xác định ngữ nghĩa của logic vị ngữ. Nhưng tôi thấy giá trị trong việc tính toán bằng chứng chính thức. Quan điểm của tôi là chúng ta sẽ không cần ngữ nghĩa chính thức để biện minh cho các quy tắc suy luận của phép tính bằng chứng.

Chúng ta có thể định nghĩa một phép tính bắt chước "quy luật tư tưởng", tức là các quy tắc suy luận đã được các nhà toán học sử dụng trong hàng trăm năm để chứng minh các định lý của họ. Một tính toán như vậy đã tồn tại: khấu trừ tự nhiên. Sau đó, chúng tôi sẽ xác định tính toán này là âm thanh và đầy đủ.

Điều này có thể được chứng minh bằng cách nhận ra rằng ngữ nghĩa chính thức của logic vị ngữ chỉ là một mô hình. Sự phù hợp của mô hình chỉ có thể được biện minh bằng trực giác. Do đó, bằng cách chỉ ra rằng suy luận tự nhiên là hợp lý và hoàn chỉnh với tham chiếu đến ngữ nghĩa chính thức không làm cho suy luận tự nhiên trở nên "đúng" hơn. Sẽ tốt như vậy nếu chúng ta trực tiếp biện minh cho các quy tắc khấu trừ tự nhiên bằng trực giác. Đường vòng sử dụng ngữ nghĩa chính thức cho chúng ta không có gì.

Sau đó, khi xác định suy luận tự nhiên là âm thanh và hoàn chỉnh, chúng ta có thể cho thấy sự đúng đắn và đầy đủ của các phép tính khác bằng cách chỉ ra rằng các bằng chứng mà chúng tạo ra có thể được dịch thành suy luận tự nhiên và ngược lại.

Những phản ánh của tôi ở trên có đúng không? Tại sao điều quan trọng là phải chứng minh tính đúng đắn và đầy đủ của phép tính bằng chứng bằng cách tham khảo ngữ nghĩa chính thức?


1
Điều này nghe có vẻ như một câu hỏi về logic (thuần túy) hơn là khoa học máy tính. Có thể tốt hơn để hỏi nó trên math.stackexchange.com .
Tsuyoshi Ito

6
Tôi sẽ tranh luận khác. Logic là một trong những thành phần cơ bản trong khoa học máy tính lý thuyết, đặc biệt là cái gọi là Lý thuyết B.
Dave Clarke

@supercooldave: Tôi đồng ý rằng logic là một thành phần cơ bản trong khoa học máy tính, nhưng tôi đã đoán rằng câu hỏi này sẽ được trả lời thỏa đáng hơn trên math.stackexchange.com chứ không phải ở đây. Đó là trước khi bạn đăng một câu trả lời, tất nhiên.
Tsuyoshi Ito

2
@Tsuyoshi: Tôi đã nghe nói rằng có nhiều nhà logic học làm việc trong các khoa khoa học máy tính hơn bất kỳ bộ phận nào khác, với các nhà logic trong các bộ phận logic là một giống hiếm tích cực.
Charles Stewart

2
@Suresh: Chúng ta đã chứng kiến ​​sự gia tăng về lý thuyết-B trong tuần qua.
Charles Stewart

Câu trả lời:


18

Một nhận xét nhỏ, và một câu trả lời nghiêm túc hơn.

Đầu tiên, không có nghĩa gì khi tuyên bố một hệ thống khấu trừ tự nhiên hoàn thành bởi fiat. Khấu trừ tự nhiên là thú vị chính xác bởi vì nó có một khái niệm nội bộ tự nhiên về tính nhất quán và / hoặc tính đầy đủ - cụ thể là, loại bỏ. Đây là một định lý tuyệt vời và IMO hoàn toàn biện minh cho những nỗ lực đưa ra ngữ nghĩa lý thuyết thuần túy (và theo sự tương ứng của CH, nó cũng biện minh cho việc sử dụng các phương thức hoạt động trong ngữ nghĩa ngôn ngữ lập trình). Nhưng điều này chính xác là thú vị bởi vì nó cung cấp một khái niệm tinh tế hơn về việc làm cho logic đúng hơn là tính nhất quán. Đi theo con đường lý thuyết có nghĩa là bạn sẽ phải làm nhiều việc hơn, nhưng đổi lại bạn sẽ nhận được kết quả mạnh mẽ hơn.

Tuy nhiên, đôi khi logic mỗi seđóng vai trò thứ yếu. Chúng ta có thể bắt đầu với một mô hình (gia đình), và sau đó tìm cách nói chuyện tổng hợp về chúng, sử dụng logic. Sự đúng đắn và đầy đủ của logic đối với một họ mô hình cho thấy logic thực sự nắm bắt mọi thứ cả thú vị và chân thực mà bạn có thể nói về lớp mô hình. Một ví dụ cụ thể về thời điểm các mô hình thú vị hơn các lý thuyết logic xảy ra trong phân tích chương trình và kiểm tra mô hình. Ở đó, điều thường làm là đưa mô hình của bạn trở thành sự thực thi của một chương trình và logic là một phần của logic thời gian. Các đề xuất mà bạn có thể nói trong các ngôn ngữ này (cố tình) không gây hứng thú khủng khiếp - ví dụ, các cuộc hội thảo về con trỏ null không bao giờ xảy ra - nhưng thực tế là nó áp dụng cho các chương trình thực tế mang lại sự quan tâm.


15

Tôi sẽ chỉ thêm một quan điểm khác để tăng thêm các câu trả lời ở trên. Đầu tiên, những phản ánh này là đáng giá, và nhiều người đã có ý tưởng tương tự. Trong triết học, điều này đôi khi được gọi là "ngữ nghĩa lý thuyết chứng minh", hấp dẫn để làm việc bởi Nuel Belnap, Dag Prawitz, Michael Dummett và những người khác trong thập niên 60 và 70, những người tự thu hút công việc của Gentzen về sự suy diễn tự nhiên. Per Martin-Löf và Jean-Yves Girard dường như cũng đề xuất các biến thể của vị trí này trong các tác phẩm của họ. Và nói rất rộng, trong các ngôn ngữ lập trình, đây là "cách tiếp cận cú pháp để gõ âm thanh".

Vấn đề là ngay cả khi bạn chấp nhận rằng các quy tắc logic không cần một cách giải thích ngữ nghĩa riêng biệt, sẽ không thú vị / hữu ích khi nói rằng chúng tự chứng minh và để nó ở đó. Câu hỏi đặt ra là những gì một ngữ nghĩa chính thức đạt được, và liệu có thể đạt được điều tương tự với ít đường vòng hơn không. Tuy nhiên, dự án hợp nhất lý thuyết mô hình với lý thuyết bằng chứng phân tích là quan trọng nhưng vẫn chưa được giải quyết, được tích cực theo đuổi trên nhiều mặt trận khác nhau bao gồm logic phân loại, ngữ nghĩa trò chơi và "ludics" của Girard. Ví dụ, ngoài những gì Charles đã đề cập, một lợi ích định tính khác của việc có các mô hình là khả năng cung cấp các mẫu phản ứng cụ thể cho không-các vấn đề, và các câu hỏi là làm thế nào để hiểu điều này theo cách tiếp cận "trực tiếp". Đối với một câu trả lời lấy cảm hứng từ ludics, xem "Về ý nghĩa của sự hoàn thiện logic" của Michele Basaldella và Kazushige Terui.


14

Một ngữ nghĩa chính thức cung cấp một ý nghĩa trực tiếp của các thuật ngữ trong phép tính độc lập với các quy tắc chứng minh cú pháp để thao túng chúng. Nếu không có một ngữ nghĩa chính thức, làm thế nào bạn có thể nói liệu các quy tắc khấu trừ có chính xác (đúng đắn) hay liệu bạn có đủ chúng (tính đầy đủ) không?

Đã có "luật tư tưởng" được đề xuất trước khi suy diễn tự nhiên. Các tam đoạn luận của Aristotle là một trong những bộ sưu tập như vậy. Nếu chúng ta đã định nghĩa chúng là âm thanh và hoàn chỉnh thì có lẽ chúng ta vẫn đang sử dụng chúng ngày hôm nay, thay vì phát triển các kỹ thuật logic tiên tiến hơn. Vấn đề là, nếu các tam đoạn luận nắm bắt hoàn toàn các định luật về tư tưởng, tại sao chúng ta cần phải đưa ra bất kỳ logic nào nữa. Điều gì xảy ra nếu chúng thực sự không nhất quán? Có một ngữ nghĩa cùng với các tính toán chính thức chứng minh tính đúng đắn và chứng minh đầy đủ kết nối họ cung cấp một thước đo để đánh giá giá trị của hệ thống một lập luận như vậy. Nó sẽ không còn đứng trong sự cô lập.

X¬Xthậm chí còn đi xa hơn khi lập luận rằng chúng ta nên chấp nhận rằng không có một logic thực sự nào và áp dụng một thái độ đa nguyên, sử dụng logic phù hợp nhất cho dịp này. Với rất nhiều logic có sẵn cho các nhà khoa học máy tính (logic tuyến tính, logic tách, logic xây dựng bậc cao, nhiều logic phương thức, tất cả trong các giống cổ điển và trực giác), áp dụng thái độ đa nguyên là điều mà hầu hết chúng ta có lẽ chưa từng có nghĩ, bởi vì logic là một công cụ để giải quyết một vấn đề cụ thể và chúng tôi cố gắng chọn một vấn đề phù hợp nhất. Một ngữ nghĩa chính thức là một cách để đánh giá sự phù hợp của logic.

Một lý do khác để có một ngữ nghĩa chính thức là có nhiều logic hơn tính toán vị ngữ. Nhiều trong số các logic này được thiết kế để lý giải về một loại hệ thống cụ thể. (Tôi đang suy nghĩ về logic phương thức). Ở đây lớp hệ thống được biết đến và logic xuất hiện sau (mặc dù, trong lịch sử, điều này cũng không đúng). Một lần nữa, âm thanh cho chúng ta biết các tiên đề của logic có nắm bắt chính xác "hành vi" của hệ thống hay không, và tính đầy đủ cho chúng ta biết liệu chúng ta có đủ các tiên đề hay không. Nếu không có một ngữ nghĩa, làm thế nào chúng ta biết liệu các quy tắc khấu trừ là đủ và không vô nghĩa?

Một ví dụ logic được xác định hoàn toàn theo cú pháp và công việc vẫn đang tiếp diễn để cung cấp cho nó một ngữ nghĩa chính thức là logic BAN để lý luận về các giao thức mã hóa. Các quy tắc suy luận logic có vẻ hợp lý, vậy tại sao cung cấp một ngữ nghĩa chính thức? Thật không may, logic BAN có thể được sử dụng để chứng minh rằng một giao thức là chính xác, nhưng các cuộc tấn công vào các giao thức đó có thể tồn tại. Do đó , các quy tắc khấu trừ là sai , ít nhất là đối với ngữ nghĩa dự kiến.


1
Bạn đã viết: "Có hay không các ngữ nghĩa được đề xuất tương ứng với khái niệm trực quan của suy luận là một vấn đề triết học." Chúng ta có thể thay thế từ "ngữ nghĩa" trong câu này bằng "quy tắc chứng minh" và nhận được câu sau: Liệu các quy tắc chứng minh được đề xuất có tương ứng với khái niệm suy luận trực quan của một người hay không là vấn đề triết học. Quan điểm của tôi ở đây là đặc điểm kỹ thuật của các quy tắc chứng minh là một hình thức xác định ngữ nghĩa.
Martin

1
Bằng cách chỉ định ngữ nghĩa chính thức và sau đó chứng minh tính đúng đắn và đầy đủ đối với ngữ nghĩa này, chúng tôi chỉ cho thấy rằng các quy tắc ngữ nghĩa và bằng chứng là nhất quán, nhưng nó không làm cho các quy tắc chứng minh trở nên "đúng" hơn, nếu chúng ta đã chứng minh chúng trực tiếp sử dụng khái niệm trực quan của bằng chứng.
Martin

Tôi không đồng ý với những gì bạn nói trong đoạn thứ hai. Nếu chúng ta đã xác định tam đoạn luận là âm thanh và hoàn chỉnh, chúng ta chắc chắn đã phát minh ra một số phép tính khác và sau đó cho thấy rằng chúng có thể chứng minh chính xác các phép thuật giống như các tam đoạn luận (nghĩa là chúng là âm thanh và hoàn chỉnh có liên quan đến tam đoạn luận). Nhưng chắc chắn, một số nhà logic học và triết học sẽ xuất hiện và lập luận rằng các tam đoạn luận là không đủ. Mới nhất, Boole và Frege sẽ mở rộng bộ quy tắc và Gentzen cũng sẽ phát minh ra ND của mình.
Martin

1
Về bình luận đầu tiên của bạn. Thật vậy, các quy tắc chứng minh xác định một logic và bản thân chúng có thể được coi là một ngữ nghĩa. Thật vậy, điều khá phổ biến trong nghiên cứu ngôn ngữ lập trình là ngữ nghĩa của ngôn ngữ lập trình được định nghĩa theo kiểu tương tự (cụ thể là, thông qua ngữ nghĩa hoạt động). Vì vậy, quan điểm của bạn là hợp lệ. Mặt khác, làm việc về ngữ nghĩa cố gắng tìm một ý nghĩa tuyệt đối, không hoạt động cho công thức trong logic, một công cụ độc lập với các phương tiện thực hiện khấu trừ.
Dave Clarke

1
@Martin, câu trả lời của bạn cho câu trả lời mà mọi người đang đăng có vẻ "mềm" và "không khoa học" đối với tôi. Tất nhiên chúng ta không cần ngữ nghĩa, nếu bằng "cần" ý bạn là "về mặt lý thuyết có thể lấy lại tất cả các định lý toán học từ logic không tương đương bizzare-nhưng có thể chứng minh tương đương L." Nhưng thật tuyệt khi có người mẫu! Các mô hình có thể là các chương trình máy tính mà chúng tôi muốn xác minh, các hệ thống phân tán mà chúng tôi muốn mô phỏng hoặc sắp xếp các cấu trúc mà chúng tôi có thể chơi các trò chơi Ehrenfeucht-Fraisse để chứng minh P = FO (LFP). Câu hỏi của tôi cho bạn: bạn có thể đặt tên cho bất kỳ lợi thế khoa học máy tính nào để làm việc với logic mà không cần ngữ nghĩa không?
Aaron Sterling

8

Tôi đồng ý với siêu máy tính, nhưng có một lý do khác, thực tế hơn là muốn nhiều hơn một số quy tắc suy luận hoặc đặc trưng khác mô tả logic: một bộ quy tắc suy luận nhất định có xu hướng không tốt để trả lời loại vấn đề gặp phải khi đưa ra logic để sử dụng.

Nếu bạn có một logic được chỉ định bởi một danh sách các tiên đề và một vài quy tắc như một hệ thống Hilbert, thì thường sẽ rất khó để tìm ra cách chứng minh một định lý đã cho trong hệ thống và không có cái nhìn sâu sắc về lý thuyết, bạn sẽ không để có thể chứng minh rằng một đề xuất nhất định không thể được chứng minh trong hệ thống. Các mô hình truyền thống là tốt cho việc chứng minh các thuộc tính giữ cho toàn bộ logic bằng cảm ứng.

Bốn loại công cụ hữu ích để giải quyết các vấn đề mà hầu hết các nhà logic muốn giải quyết, được sắp xếp từ ít nhất đến hầu hết ngữ nghĩa:

  1. Các hệ thống kiểu Hilbert rất tốt để mô tả mối quan hệ hệ quả logic của logic và chúng thường tốt cho việc phân loại một số logic, chẳng hạn như logic phương thức đối thủ;
  2. Các hệ thống Tableau là tốt để chính thức hóa các thuật toán quyết định. Thông thường, nếu logic là có thể quyết định, người ta có thể tìm thấy một hệ thống tableau kết thúc như một thuật toán quyết định và nếu không, người ta có thể tìm thấy một hệ thống tableau có khả năng không kết thúc cung cấp thủ tục bán quyết định. Nếu người ta muốn thể hiện giới hạn trên về độ phức tạp của tính quyết định (nghĩa là lớp phức tạp của logic), các hệ thống tableau thường là nơi đầu tiên mà người ta nhìn.
  3. Các lý thuyết bằng chứng phân tích, chẳng hạn như suy luận tự nhiên và tính toán tuần tự của Gentzen, đưa ra các đại diện chứng minh tốt cho lý luận và đưa ra khái niệm về chứng minh phân tích, rất hữu ích để chứng minh các tính chất hữu ích như nội suy cho một lý thuyết.
  4. Các lý thuyết mô hình theo kiểu Tarski thậm chí còn tốt hơn cho lý luận về logic, bởi vì chúng gần như hoàn toàn trừu tượng khỏi các chi tiết cú pháp của logic. Trong logic phương thức và lý thuyết tập hợp, chúng tốt hơn rất nhiều trong việc cung cấp kết quả mà những nhà logic đó có xu hướng rất quan tâm đến lý thuyết chứng minh tableau và phân tích.

Vì siêu máy tính đã đề cập đến logic trực giác: không có quy tắc trung gian bị loại trừ, lý thuyết mô hình trở nên phức tạp hơn nhiều và các lý thuyết chứng minh phân tích trở nên quan trọng hơn, điển hình là ngữ nghĩa của sự lựa chọn. Các kỹ thuật đại số, chẳng hạn như lý thuyết thể loại, trở nên ưa thích để trừu tượng hóa khỏi sự phức tạp cú pháp.

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.