Coinductive Logic Programming and its Application to Boolean SAT