Substitutability is a principle in object-oriented programming. It states that, if S is a subtype of T, then objects of type T in a computer program may be replaced with objects of type S (i.e., objects of type S may be substituted for objects of type T), without altering any of the desirable properties of that program (correctness, task performed, etc.)
In Modelware the principle of substitutability also exists, but with a different definition. It states that, if M is a fidel (faithful) representation of system S, then M can replace S to answer some categories of questions about S.
The principle of substitutability in model driven engineering has to be credited to Minsky: