Writing a truth oracle in Lisp
This post assumes some familiarity with typed functional programming, Lisp, and formal logic. Today we will attempt to write a truth oracle in Lisp. By "truth oracle," I mean a program that can determine whether arbitrary mathematical statements are true or false. This might sound impossible, due to first-order logic being undecidable, but let's try anyway. Before that, though, we need to go…