What is meant by an invalidated type or a calculable type?
A primitive type can be calculable or not. It is calculable if all the information required to calculate it is known and valid. There are two types of information required: its own characteristics, and those coming from other primitive types. A primitive type can be validated or invalidated. It is validated if it was calculable and it has been calculated. It becomes invalidated when any of the information required for its recalculation is modified. A primitive type has prerequisites and/or subordinates. Its prerequisites are the other primitive types that contain part of the information it needs to be calculated, and must therefore be validated in order for it to become calculable. Its subordinates are the other primitive types of which it is a prerequisite. A type can become invalidated in two ways: either when one of its own characteristics is changed, or when at least one of its prerequisites is invalidated. It is calculable when all of its prerequisites are validated. Substances do