In this paper we describe an approach to automating the construction of cognitive process models. We make two psychological assumptions: that cognition can be modeled as a production system, and that cognitive behavior involves search through some problem space. Within this framework, we employ a problem reduction approach to constructing cognitive models,in which one begins with a set of independent, overly general condition-action rules, adds appropriate conditions to each of these rules, and then recombines the more specific rules into a final model. Conditions are determined using a discrimination learning method. which requires a set of positive and negative instances for each rule. These instances are based on inferred solution paths that lead to the same answers as those observed in a human subject. We have implemented ACM, a cognitive modeling system that incorporates these methods and applied the system to error data from the domain of multi-column subtraction problems.