// these simplification methods rely on the assumption that child nodes of the current node have already been simplified // (in other words simplification should be applied in a bottom-up fashion) public static ISymbolicExpressionTree Simplify(ISymbolicExpressionTree tree) { return(tree.MakeNodes().Simplify(HashFunction).ToTree()); }