Dealing with inconsistencies and change in requirements engineering (RE) is known to be a difficult problem. We propose a formal, integrated approach to inconsistency handling and requirements evolution with a focus on providing automated support. We define a novel representation scheme that is expressive and able to maintain several key semantic distinctions. Based on this scheme, we define a toolkit of inconsistency handling technique. We define a principled process for evolving such specifications, with minimal computational cost and user intervention. Finally, we describe the REFORM system which implements some of these techniques.