Modeling is the process of constructing a model of a target system that is suitable for a given task. Typically, in the hierarchy from more-abstract to lessabstract models, the model of choice is the one that is just detailed enough to account for the properties and perspectives of interest for the task at hand. The main goal of the work described here was to design and implement a knowledge representation framework that allows a computer program to reason about physical systems and candidate models (ordinary differential equations, specifically) in such a way as to find the right model at the right abstraction level as quickly as possible. A key observation about the modeling process is the following. Not only is the resulting model the least complex of all possible ones, but also the reasoning during model construction takes place at the highest possi61e level at any time. Because of this, the knowledge representation framework was designed to allow easy formulation of knowledge and meta knowledge relative to various abstraction levels. Candidate models are constructed via simple, powerful domain rules. The customized knowledge representation framework is then used to generate new knowledge about the physical system and new knowledge about the candidate model. A candidate model is valid if the facts about the system that is to be modeled are consistent with the facts about the candidate model. Any inconsistency is a reason to discard the candidate model. The implemented framework is the core of PRET, a program -- currently under development -- that automates the modeling process.