Equational-Inequational Conditional Term Rewriting Systems (EI-CTRS) are a natural formalism for expressing data type and function specifications. EI-CTRS are sets of oriented conditional equations (rules) (eg.a=b Λ c ≠ d ::lhs → rhs), whose antecedents are conjunctions of equations and inequations. The EI-CTRS formalism extends existing equational languages such as OBJ2, by allowing within the rules the direct use of the = (or ≠) relation being defined. Using = and ≠ in rules clearly enhances the expressive power of the formalism, but it poses termination and semantic problems in executing a specification. We define a conditional rewriting mechanism, called EI-rewriting, which assumes two terms to be equal if they can be rewritten to a common term and inequal otherwise. We show that ground EI-rewriting is sound and complete, and can hence be used to correctly execute specifications expressed as EI-CTRS which satisfy a sufficient completeness-like property We give syntactic conditions and procedures to check that a specification in the formalism denotes a well-defined total function. We illustrate that useful and meaningful specifications can be constructed using EI-CTRS.