- Logic bậc hai trái ngược với logic bậc một là gì?
- 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ói∃x…
∃R∃G∃B[∀x(x∈R∨x∈G∨x∈B)∧¬∃x((x∈R∧x∈G)∨(x∈G∧x∈B)∨(x∈B∧x∈R))∧∀x∀y(E(x,y)→¬((x∈R∧y∈R)∨(x∈G∧y∈G)∨(x∈B∧y∈B)))].
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
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?
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
∃R∀x∀y∀z[(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 φ∃ R1... ∃ RkφRTôiφ
- 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, Lọ , 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)iai∈XiXi<jij
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,∃X∪c