Dominance constraints for finite tree structures are widely used in
several areas of computational linguistics including syntax,
semantics, and discourse. In this paper, we investigate algorithmic
and complexity questions for dominance constraints and their
first-order theory. We present two NP algorithms for solving dominance
constraints, which have been implemented in the concurrent constraint
programming language Oz. The main result of this paper is that the
satisfiability problem of dominance constraints is NP-complete.
Despite this intractability result, the more sophisticated of our
algorithms performs well in an application to scope
underspecification. We also show that the existential fragment of the
first-order theory of dominance constraints is NP-complete and that
the full first-order theory has non-elementary complexity.