Detecting Persistence Bugs From Non-Volatile Memory Programs By Inferring Likely-Correctness Conditions