It would be convenient to have a function VarsfromLogical
which out of {a+b>c,c+d==a}
outputs {a,b,c,d}
Incidentally, I use this for detecting the variables for FindInstance[expr,vars], and it might have been convenient for beginners if Mathematica would have offered also the syntax FindInstance[expr], because the vars are uniquely determined by the expr , and so there is no need to be explicit about them. Anyway, this may be achieved via the answers to the similar question Extracting variables from an expression or by some other instructive answers like Union[Cases[list, _Symbol, ∞]], Variables[Level[list, {-1}]] and p = Position[list, _Symbol, Heads -> False]; Extract[p] @ list Remains the question of why these lovely solutions are necessary at all in a FindInstance
Reduce`FreeVariables[{a + b > 0, c + d == a}]
works (from an answer to the linked question). $\endgroup$