CNF compiler