A *fold expanded constraint* is formed from a constraint C and
a *fold-operator*
which can either be && or ||.

A fold expanded constraint is a pack expansion ([temp.variadic]).

A fold expanded constraint whose *fold-operator* is &&
is satisfied if it is a valid pack expansion and
if or if for each i where in increasing order,
C is satisfied
when replacing each pack expansion parameter
with the corresponding element.

No substitution takes place for any i greater than
the smallest i for which the constraint is not satisfied.

A fold expanded constraint whose *fold-operator* is ||
is satisfied if it is a valid pack expansion,
, and if for i where in increasing order,
there is a smallest i for which C is satisfied
when replacing each pack expansion parameter
with the corresponding element.

No substitution takes place for any i greater than
the smallest i for which the constraint is satisfied.

Two fold expanded constraints are *compatible for subsumption*
if their respective constraints both contain
an equivalent unexpanded pack ([temp.over.link]).