The paradigm of contractual specification provides a transparent way of specifying objectoriented systems. In this paradigm, system consistency is specified using so-called invariants. Runtime validation of invariants is a complex problem. Existing validation methods require either exhausting validation of an invariant for all objects of the corresponding class or the use of restrictive type systems. In this paper a non-exhaustive method of invariant validation is proposed. It is proved that the method is sound and an implementation of this method is discussed. It is shown also how to extract context free languages corresponding to OCL-invariants. P. Kosiuczenko / On the Validation of Invariants at Runtime P. Kosiuczenko / On the Validation of Invariants at Runtime 185 which an invariant is evaluated can be treated as a root of such a network. If an invariant is violated by a method execution, then the corresponding network of objects is modified. We use extracted languages to navigate backwards from the modified places to the roots of invariants' networks.Since OCL is a very extensive language, we restrict our consideration to some core primitives and we prove our results for the restricted form of this language. Nevertheless, our results can be applied to a wide variety of invariants. Such invariants can include multiple variables, object-as well as class attributes, the allInstances feature and also recursively defined functions. The presented method allows us to identify invariants which have to be evaluated before and after method execution, and to identify objects for which the evaluation should be performed. It should be noted that our method does not depend on a particular definition of visible system states and therefore can be used with different definitions. The interesting thing is that we do not have to refer to all objects existing in the pre-state, but only to the roots of modified networks. Those roots can be defined by OCL-terms. We briefly discuss the issue of implementation, though it goes beyond the scope of this paper.This paper is organized as follows. The next section includes a short discussion of related work. In section 3, we discuss the problem of invariant validation, sketch our solution ideas and present two examples. In section 4, we show how to extract context free languages from OCL-terms and investigate the relation between such languages and OCL-terms. We also prove that terms formalizing words are well typed. In section 5, we prove that the problem of invariant validity can be reduced to the problem of preservation of object networks determined by languages corresponding to invariants; we show also how to express such languages using OCL-terms. In section 6, we show how the developed methods can be applied to the examples introduced in section 3. In section 7, we briefly discuss the issue of implementation. Section 8 concludes this paper.