## Dependency Expression Evaluation

In terms of boolean logic, a dependency expression can
be expressed in disjunctive normal form (DNF), which is
a disjunction of conjunctive clauses. Each conjunctive clause
represents one possible alternative combination of dependency
atoms capable of satisfying the dependency expression.

### Delayed Evaluation of Disjunctive Dependency Choices

Disjunctive dependencies, of which virtuals are a special case,
can be satisfied by multiple choices of dependency atoms. These
choices are delayed until as late as possible in the dependency
calculation, after packages have been selected to satisfy
as many non-disjunctive dependencies as possible. As a consequence
of this delayed evaluation, there is maximal information available
which makes it possible to optimize choices such that the total
number of packages required to satisfy all dependencies is minimized.