Contextual refinement types