Enchanting Program Specification Synthesis by Large Language Models using Static Analysis and Program Verification