## Research

My primary research area is computational complexity. The central problem in
computational complexity is to understand which computational problems can be
solved efficiently, and to develop the most efficient, least costly algorithms
for such problems. Efficiency and cost is measured in terms of three
computational resources: time, space and randomness. The goal is to understand
how much of these resources are required to solve important computational
problems, and to understand the relationships and tradeoffs between the
resources. The most famous problem in the area, the P versus NP problem, is the
driving force behind much of my research.

One important direction aimed at ultimately resolving the P versus NP question
is propositional proof complexity. The central problem in proof complexity is to
understand which tautologies have efficient proofs in standard proof systems.
There are two aspects to this endeavor: (1) developing new algorithms and proof
systems for propositional tautology/satisfiability testing, and (2) proving
lower bounds for standard proof systems. These endeavors are related not only to
worst-case complexity, but also to the study and analysis of standard heuristics
for NP-hard problems. Proof complexity has other rich connections to complexity
theory and cryptography, as well as applications to theorem proving and
artificial intelligence.

List of Publications