If formula is a function, it must take a data.frame and return
a vector.If formula is a string or list of strings, the following conventions hold:
Set names must be capitalized in the formula and the data; if they are
lowercase, they are interpreted as the negation of the set.
If formula is a string, logical 'or' is expressed as a '+',
and logical 'and' as a '*'.
If formula is a list of strings, the strings are assumed to be
the dosjuncts and are concatenated with '+'.
The formula must be in disjunctive normal form, i.e. it must be a disjunction of
conjunctions of elementary or negated elementary sets. Example:
A*b*C + a*B