AI for software engineering: from probable to provable