Automated theorem prover