1. A computer-implemented method of determining a finite approximation of possible values for a symbolic term in a symbolic state representation of a program, the method comprising: a computer examining a set of value constraints for a pre-defined approximation of possible values associated with the symbolic term, the symbolic term comprising a symbolic sub-term comprising a variable term; as a result of not finding the pre-defined approximation of possible values in the set of value constraints, the computer determining a derived approximation of possible values for the symbolic term, the determining comprising: determining properties of the symbolic term, the properties of the symbolic term comprising a term type; assigning an initial domain to the symbolic sub-term comprising the variable term, the assigning the initial domain to the symbolic sub-term comprises walking over field maps of a representation of a given state and extracting one or more object terms appearing in the given state which match a type of the variable term; and selecting and applying one or more of a plurality of domain computation techniques according to the properties of the symbolic term comprising the term type; and the computer storing the derived approximation of possible values for the symbolic term in one or more computer-readable storage media.