/// `Some(Vec<Atom>)` if the vectors direct children expressions are all atomic, otherwise `None`.
/// * `None` if `Expr` is a `Atom`, or `Expr` does not have a domain (for example, if it is a `Bubble`).
trace!(expr=%expr, why = "expression is an matrix indexing operation", "to_aux_var() failed");
trace!(expr=%expr, why = "could not find the domain of the expression", "to_aux_var() failed");
/// Returns the new `SymbolTable`, modified to contain this auxiliary variable in the symbol table.