fn collect_eval_vars(expr: &Expr, vars: &mut BTreeSet<String>)
Collects the symbolic variables needed to concretely evaluate an expression.