regarding atoms and free_symbols: `>>> help(Expr.free_symbols)` will help