Separation logic for high-level synthesis