## Languages That Capture Complexity Classes (1987)

Venue: | SIAM Journal of Computing |

Citations: | 230 - 21 self |

### BibTeX

@ARTICLE{Immerman87languagesthat,

author = {Neil Immerman},

title = {Languages That Capture Complexity Classes},

journal = {SIAM Journal of Computing},

year = {1987},

volume = {16},

pages = {760--778}

}

### Years of Citing Articles

### OpenURL

### Abstract

this paper a series of languages adequate for expressing exactly those properties checkable in a series of computational complexity classes. For example, we show that a property of graphs (respectively groups, binary strings, etc.) is in polynomial time if and only if it is expressible in the first order language of graphs (respectively groups, binary strings, etc.) together with a least fixed point operator. As another example, a property is in logspace if and only if it is expressible in first order logic together with a deterministic transitive closure operator. The roots of our approach to complexity theory go back to 1974 when Fagin showed that the NP properties are exactly those expressible in second order existential sentences. It follows that second order logic expresses exactly those properties which are in the polynomial time hierarchy. We show that adding suitable transitive closure operators to second order logic results in languages capturing polynomial space and exponential time, respectively. The existence of such natural languages for each important complexity class sheds a new light on complexity theory. These languages reaffirm the importance of the complexity classes as much more than machine dependent issues. Furthermore a whole new approach is suggested. Upper bounds (algorithms) can be produced by expressing the property of interest in one of our languages. Lower bounds may be demonstrated by showing that such expression is impossible.