predicate_to_function
simulator