A non-heuristic program for proving elementary logical theorems