Model checking is actually working now.

I believe it is not as efficient as it should be. Will look into improving it at some point if it becomes necessary. Sepcifically, sending a cloned set of symbols to both the true and false recursive calls makes the number of recursive calls larger. If I do it the way the book describes, however, the tests don't pass.