An implementation of the Devis Putnam algorithm for checking the satisfiability of a first-order logic formula. The program can also create a random k-CNF proposition composed of m clauses of exactly k literals, chosen from a list of n symbols.