Logic thứ hai đơn điệu cho người giả


13

Tôi là một lập trình viên có hiểu biết về automata, nhưng không logic.

Tôi đọc trong giấy tờ rằng hai người có liên quan rất chặt chẽ. Automata hữu hạn xác định (DFA), Automata cây và Automata đẩy xuống rõ ràng đều có liên quan đến logic thứ hai đơn (MSO). Mặc dù, tôi hiểu automata và mọi người (trong các bài báo) đã cố gắng giải thích mối quan hệ với MSO với tôi, họ luôn giả định một nền tảng vững chắc về logic và sự hiểu biết về MSO.

Khi tôi xem sách và các khóa học về logic, chúng hầu như chỉ xử lý logic thứ tự đầu tiên, có vẻ khá đơn giản và chỉ bao gồm một vài khái niệm: biến, hoặc, không, ngụ ý, cho tất cả, tồn tại, v.v.

Ai đó có thể giải thích hoặc chỉ cho tôi một tài nguyên có thể giải thích:

  1. Logic bậc hai trái ngược với logic bậc một là gì?
  2. Monadic vs non monadic logic là gì?
  3. Tại sao điều quan trọng đối với logic thứ hai là đơn điệu để có thể quyết định HOẶC tại sao đây là câu hỏi sai?
  4. Tại sao logic thứ hai đơn nguyên có thể quyết định?
  5. Mối quan hệ với ít nhất DFA?

Nếu nó là một tài nguyên thì sẽ tốt nếu nó giả sử rằng tôi là một lập trình viên chứ không phải là một nhà logic học. Điều này có nghĩa là tôi muốn hiểu cách tôi sẽ triển khai nó dưới dạng mã, bởi vì cho đến lúc đó toán học cảm thấy như phép màu đối với tôi;)

Cảm ơn bạn cho bất kỳ giúp bạn có thể cho tôi. Tôi thực sự sẽ đánh giá cao nó.


"Tại sao điều quan trọng đối với logic thứ hai là đơn điệu để có thể quyết định HOẶC tại sao đây là câu hỏi sai?" nếu bạn cho phép định lượng qua một vị từ nhị phân, ví dụ thì bạn ngay lập tức nắm lấy sức mạnh của Logic thứ tự đầu tiên với một vị từ nhị phân duy nhất không thể xác định được (ngay cả khi không có chức năng của arity> 0 và không có sự bình đẳng) [Kalmar, Suranyi, 1950]M[...M(x,y)...]
Vor

Câu trả lời:


9
  1. Logic bậc hai trái ngược với logic bậc một là gì?
  2. Monadic vs non monadic logic là gì?

Logic bậc hai đơn âm là logic bậc một cộng với lượng hóa qua các tập hợp. Vì vậy, cũng như có thể nói rằng tồn tại một yếu tố miền với một số thuộc tính ( ), bạn cũng có thể nói rằng tồn tại một tập hợp các thành phần miền với một số thuộc tính. Vì vậy, ví dụ, chúng ta có thể định nghĩa 3 màu của đồ thị bằng cách nóix

RGB[x(xRxGxB)¬x((xRxG)(xGxB)(xBxR))xy(E(x,y)¬((xRyR)(xGyG)(xByB)))].

Trong các từ, có màu đỏ, xanh lá cây và xanh dương sao cho

  • mỗi đỉnh có một màu
  • và không có đỉnh có hai màu
  • và, nếu có một cạnh giữa hai đỉnh, hai đỉnh đó không có cùng màu.

Logic bậc hai chung cho phép không chỉ định lượng qua các tập hợp mà còn qua các quan hệ tùy ý trên miền. Hãy nhớ lại rằng một mối quan hệ là một tập hợp -tuples trên miền, đối với một số  . Các tập hợp chỉ là quan hệ đơn phương: và -tuple chỉ là một thành phần của miền.k k = 1 1kkk=11

  1. Tại sao điều quan trọng đối với logic thứ hai là đơn điệu để có thể quyết định HOẶC tại sao đây là câu hỏi sai?

  2. Tại sao logic thứ hai đơn nguyên có thể quyết định?

Thành thật mà nói, tôi không nhớ các vấn đề quyết định. Một điểm quan trọng là logic thứ hai đầy đủ cho phép bạn định lượng để tồn tại một thứ tự tuyến tính của miền

Rxyz[(R(x,y)R(y,x))((R(x,y)R(y,x))x=y)((R(x,y)R(y,z))R(x,z))].

Đó là, có tồn tại một mối quan hệ nhị phân đó là tổng, antisymmetric và bắc cầu, ví dụ, là một trật tự tuyến tính trên miền  . Điều đó hoàn toàn cung cấp cho bạn một thứ tự tuyến tính trên  cho bất kỳ nào  và bạn có thể sử dụng các mối quan hệ trên  cho đủ lớn  để mô phỏng băng máy Turing. Nhưng, với SO đơn nguyên, bạn không thể làm bất kỳ điều gì trong số này.D n n D n nDDnnDnn

(Tôi đoán rằng, nếu tên miền của bạn là vô hạn, có lẽ bạn cần xác định thêm rằng thứ tự tuyến tính là rời rạc và có một phần tử tối thiểu; sau đó bạn biết rằng nó có một phân đoạn ban đầu tương đồng với các số tự nhiên, và đó phải là đủ.)

Trên các đầu vào hữu hạn, đoạn tồn tại của các công thức SO - có dạng , trong đó là các ký hiệu quan hệ và  là bậc nhất - xác định chính xác NP . Logic bậc hai đầy đủ xác định chính xác hệ thống phân cấp đa thức. Điều này chính xác là do khả năng mã hóa máy Turing và thực tế là việc định lượng một bộ sưu tập quan hệ cố định mang lại cho bạn một số lượng lớn các công cụ để chơi.R i φR1Giáo dụcRkφRTôiφ

  1. Mối quan hệ với ít nhất DFA?

Chúng ta có thể biểu diễn các chuỗi trên một số bảng chữ cái hữu hạn  bằng các cấu trúc quan hệ. Từ vựng có ký hiệu quan hệ nhị phân  sẽ được hiểu là một thứ tự tuyến tính và ký hiệu quan hệ  cho mỗi ký tự . Mỗi phần tử của miền là một ký tự trong chuỗi, thứ tự tuyến tính cho bạn biết thứ tự các ký tự xuất hiện và các mối quan hệ  cho bạn biết ký tự nào xuất hiện ở mỗi vị trí.R một một Σ R mộtΣRmộtmộtΣRmột

Bây giờ, giả sử chúng ta có một DFA với  trạng thái và bây giờ hãy giả sử rằng chúng ta đang xử lý các chuỗi hữu hạn. Chúng ta có thể viết một công thức tương tự như công thức ba màu ở trên nói rằng DFA của chúng ta chấp nhận chuỗi được mã hóa bởi đầu vào của nó. Nó nói rằng có các tập hợp (của các thành phần miền, tức là các vị trí trong chuỗi) , sao cho sẽ là tập hợp các vị trí trong chuỗi mà máy tự động ở trạng thái  . Vì vậy, khẳng định rằng:Q 1 , góc , Q k Q i ikQ1,Giáo dục,QkQTôiTôi

  • mỗi vị trí  nằm trong chính xác một trong ;jQ1,,Qk
  • vị trí đầu tiên là trong  (giả sử đây là trạng thái bắt đầu);Q1
  • nếu vị trí thứ ở thì vị trí  ở bất kỳ trạng thái nào, chức năng chuyển đổi của automaton nói rằng nó phải như vậy;jQi(j+1)
  • vị trí cuối cùng là trong một trạng thái chấp nhận.

Nếu công thức này là đúng, automaton phải chấp nhận chuỗi; nếu nó sai, máy tự động phải từ chối. Đối với NFA, chúng tôi chỉ nói rằng mỗi vị trí ở ít nhất một trạng thái và trạng thái cuối cùng ở ít nhất một trạng thái chấp nhận. Đối với các đầu vào vô hạn, chúng ta có thể mã hóa, ví dụ, điều kiện Büchi bằng cách nói "cho tất cả các vị trí  trong đầu vào, nếu  ở trạng thái chấp nhận, có một số sao cho  cũng ở trạng thái chấp nhận.jjj>jj

Ngay bây giờ, tôi không nhớ lại bằng chứng về điều ngược lại (rằng mọi thứ có thể xác định trong MSO đều có thể được nhận ra bởi một máy tự động thích hợp). Nếu tôi có thời gian, tôi sẽ tìm nó và đăng một bản phác thảo.

Ngược lại , chúng ta có thể biểu diễn ý nghĩa của các công thức MSO bằng cách tự động hóa trạng thái hữu hạn theo quy tắc, sau khi xây dựng automata. Để thực hiện điều này, chúng tôi tăng thêm bảng chữ cái của automaton, bằng cách thêm các thành phần mà chỉ ra giá trị của các biến vị trí miễn phí và các biến bộ . Nếu chúng ta đọc một chuỗi dọc theo máy tự động, chúng ta sẽ tìm thấy chính xác một để chỉ ra một tư thế nhất định và các vị trí trong bộ được đánh dấu tương tự.iX1iX

Các công thức cơ bản là cho "vị trí có ký hiệu ", cho " là một phần tử của " và cho "vị trí nằm trước vị trí ". Các công thức này có thể được biểu diễn bằng automata trạng thái hữu hạn đơn giản sau (trên bảng chữ cái tăng cường phù hợp với công thức):Ra(i)iaiXiXi<jij

máy tự động cơ bản

Công thức phức tạp hơn được xây dựng bằng cách sử dụng từ nối Boolean và quantifiers hiện sinh . Ý nghĩa dự định của các toán tử này dễ dàng được dịch sang các ngôn ngữ như liên kết toán tử ngôn ngữ , bổ sung và phép chiếu , đây là thao tác loại bỏ thành phần tương ứng khỏi bảng chữ cái tăng thêm. Đối với công đoàn, chúng ta phải chú ý đến bảng chữ cái tăng cường trong trường hợp hai phần của công thức không đồng ý về tập hợp các biến miễn phí. Phép chiếu rất đơn giản, nhưng nó sẽ thay đổi một máy tự động xác định thành một thứ không xác định.,¬i,Xc


Đã thêm đề xuất của tôi cho converse. Trong khi chờ phê duyệt bởi @DavidR Richby
Hendrik

Cảm ơn bạn đã phản hồi tuyệt vời. Tôi vẫn đang xử lý tất cả những điều này và làm việc với nó, tìm kiếm các thuật ngữ, suy nghĩ làm thế nào tôi sẽ thực hiện điều này, v.v. Trong lúc đó tôi nghĩ số 3 là câu hỏi sai. Có lẽ nó nên là lý do tại sao mối quan hệ giữa automata và logic rất quan trọng, mà nó được đề cập trong rất nhiều bài viết?
Walter Schulze
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.