cnf_generator