  Principled reasoning about the identifiability of causal effects from
non-experimental data is an important application of graphical causal models.
This paper focuses on effects that are identifiable by covariate adjustment, a
commonly used estimation approach. We present an algorithmic framework for
efficiently testing, constructing, and enumerating $m$-separators in ancestral
graphs (AGs), a class of graphical causal models that can represent uncertainty
about the presence of latent confounders. Furthermore, we prove a reduction
from causal effect identification by covariate adjustment to $m$-separation in
a subgraph for directed acyclic graphs (DAGs) and maximal ancestral graphs
(MAGs). Jointly, these results yield constructive criteria that characterize
all adjustment sets as well as all minimal and minimum adjustment sets for
identification of a desired causal effect with multivariate exposures and
outcomes in the presence of latent confounding. Our results extend several
existing solutions for special cases of these problems. Our efficient
algorithms allowed us to empirically quantify the identifiability gap between
covariate adjustment and the do-calculus in random DAGs and MAGs, covering a
wide range of scenarios. Implementations of our algorithms are provided in the
R package dagitty.
