Investigating Logics for Feasible Computation
The most celebrated open problem in theoretical computer science is, undoubtedly, the problem of whether P = NP. This is actually one instance of the many unresolved questions in the area of computational complexity. Many different classes of decision problems have been defined in terms of the resources needed to recognize them on various models of computation, such as deterministic or non-deterministic Turing machines, parallel machines and randomized machines. Most of the non-trivial questions concerning the inter-relationship between these classes remain unresolved. On the other hand, these classes have proved to be robustly defined, not only in that they are closed under natural transformations, but many different characterizations have independently defined the same classes. One such alternative approach is that of descriptive complexity, which seeks to define the complexity, not of computing a problem, but of describing it in a language such as the Predicate Calculus. It is particularly interesting that this approach yields a surprisingly close correspondence to computational complexity classes. This provides a natural characterization of many complexity classes that is not tied to a particular machine model of computation.