/// Applies the Tseytin and transformation to series of variables, returns the new expression, symbol table and clauses
/// Applies the Tseytin not transformation to a variable, returns the new expression, symbol table and clauses
/// Applies the Tseytin or transformation to series of variables, returns the new expression, symbol table and clauses
/// Applies the Tseytin iff transformation to two variables, returns the new expression, symbol table and clauses
/// Applies the Tseytin imply transformation to two variables, returns the new expression, symbol table and clauses
/// Applies the Tseytin xor transformation to two variables, returns the new expression, symbol table and clauses
|e| matches!(e, Expr::Atomic(_, Atom::Reference(x)) if x.domain().is_some_and(|d| d.is_bool())),