Predecessor function