We present our research on defining a correct semantics for forward chaining production systems (PS) programs. A correct semantics ensures that the execution of the program will not produce incorrect answers and execution will terminate; it also ensures that the answers are consistent. We define a class of stratified PS programs, and propose an operational semantics for these programs. We define an operator TPs, which computes the operational fixpoint for the productions of the stratified PS program; the fixpoint captures the meaning of the PS program. The theory that can be derived from the productions of the PS program may be inconsistent with the constraints that are also derived from the PS program. We can then view the constraints as modifying the theory so that the modified theory PS is consistent with the constraints. However, the same answers are obtained in the operational semantics of the stratified PS program or from the modified theory E.