Answer Set Programming With Clause Learning