Program Analysis with Witness Generation