code: def is_simple_predicate(predicate: AbstractExpression) -> bool:
      """Checks if conditions in the predicate are on a single column and
          only contains LogicalExpression, ComparisonExpression,
          TupleValueExpression or ConstantValueExpression
  
      Args:
          predicate (AbstractExpression): predicate expression to check
  
      Returns:
          bool: True, if it is a simple predicate, else False
      """
  
      def _has_simple_expressions(expr):
          simple = type(expr) in simple_expressions
          for child in expr.children:
              simple = simple and _has_simple_expressions(child)
          return simple
  
      simple_expressions = [
          LogicalExpression,
          ComparisonExpression,
          TupleValueExpression,
          ConstantValueExpression,
      ]
  
      return _has_simple_expressions(
          predicate
      ) and contains_single_column(predicate)
  
file_path: evadb/evadb/expression/expression_utils.py
imports: from typing import List, Set
  from evadb.expression.abstract_expression import AbstractExpression, ExpressionType
  from evadb.expression.comparison_expression import ComparisonExpression
  from evadb.expression.constant_value_expression import ConstantValueExpression
  from evadb.expression.logical_expression import LogicalExpression
  from evadb.expression.tuple_value_expression import TupleValueExpression
label_desc: Use image node_id 7 for calling a global function with example usage: is_simple_predicate(predicate) and returns: unknown, simple