- #1
Citan Uzuki said:defining two atomic predicates to be equal if they consist of the same predicate symbol applied to the same constants in the same order.
Thank you for that! Your argument is very nice and simple (compared to the one I came up with earlier, which proved that it is PSPACE, but took two pages in latex). Anyway, it seems like this idea can be applied to the boolean combination of existentially-bounded L^P sentences as welll; since we can just "enumerate" all possible predicate variables as well and this will be in EXPTIME. Can you confirm that this is correct as well?
Also, what do you mean about Second-order logic; all of the logic I posted above are subclasses of First-order logic, aren't they? Or does first-order logic not consist of predicate/function variables?
And what is "constants". Should you not use "variable" instead?
Citan Uzuki said:You can enumerate all the possible predicate values as well, but it won't happen in EXPTIME. Remember that the number of possible assignments for each predicate is 2^(n^k), where k is the arity of the predicate, and you need to bound k to get it in EXPTIME. But with L^p sentences, k is unbounded.
Anyway, what happens if we extend it further to get L^P,F where this logic has function variables? Obviously this is not in EXPTIME if the previous one (L^P) is not in EXPTIME. But I assume that it is still decidable, since we can enumerate through all the possible function variables as well. Is this correct? Is the arity of the function variables bounded as well? For more detail please see the attached picture. Again, thanks so much for helping, you have clarified a lot of stuff that I misunderstood already. Thanks!
Citan Uzuki said:You are correct, k is bounded by the length of the input. What I mean is, k is not bounded by a constant, so if you permit very long predicates, you could have growth as fast as 2^(n^n), where n is the length of the input.
What I mean is, why can't predicate symbols have growth as fast as 2^(n^n), if it has arity n? Why does this only happen to predicate variable but not predicate symbol?
Moreover, if the arity of the predicates is bounded (say, you're considering only sentences from a language fixed in advance), this naive algorithm runs in EXPTIME. For a model of size n, there are 2^(n^k) possible values for a predicate of arity k, and if there are m such predicates, this means you ultimately have to test only 2^(mn^k) models. Impractical, but still EXPTIME if k is fixed.
So the first problem was reducible to SAT, that's fine. The problems 2-4 are all decidable. The 2nd problem (boolean combination of existentially-bounded sentences, with no predicate/function symbols) will definitely be in EXPTIME if k is bounded, but even if k is unbounded, it may still be in EXPTIME (just that our naiive algorithm may not run in exponential time).
How do I show that it is in EXPTIME then if k is unbounded?
As for problems 3 and 4, the naiive algorithm does not run in EXPTIME since k cannot be bounded (but somehow k can be bounded in the case of problem 2?). We do not know if they are in EXPTIME at all, but how do I show whether they are NOT in EXPTIME?
The complexity of SAT in First-order logic is NP-complete, which means that it is one of the most difficult problems to solve in computer science. It is also considered to be one of the fundamental problems in computational complexity theory.
In propositional logic, the only logical connectives used are AND, OR, and NOT, and the problem of determining whether a formula is satisfiable is solvable in polynomial time. In First-order logic, there are quantifiers and variables, which make the problem much more complex and not solvable in polynomial time.
There are certain restrictions and simplifications that can be applied to First-order logic formulas to make the problem more manageable. For example, restricting the use of quantifiers or using certain normal forms can reduce the complexity of the problem.
One example of a First-order logic formula is "∀x∃y (P(x) ∧ Q(y))", which can be read as "For all x, there exists a y such that P(x) is true and Q(y) is true". This formula uses the universal quantifier (∀) and the existential quantifier (∃) to express a statement about the relationship between two predicates, P and Q, and their respective variables, x and y.
SAT in First-order logic has many practical applications in fields such as artificial intelligence, automated reasoning, and software verification. It is also used in various industries for solving complex problems, such as scheduling and planning, resource allocation, and database query optimization.