Abstract Correction of OBJ-like Programs