13. A system for testing programs comprising: a digital processor; and a digital memory storing a symbolic term comprising at least an object variable symbolic sub-term, the digital memory also storing instructions configured to cause the digital processor to determine an approximate set of values for the symbolic term, wherein determining the approximate set of values comprises, examining a set of value constraints for a pre-defined approximation of possible values associated with the symbolic term, and as a result of not finding the pre-defined approximation of possible values in the set of value constraints, determining a derived possible set of values of the symbolic term according to properties of the symbolic term by 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 object variable symbolic sub-term.
13. A system for testing programs comprising: a digital processor; and a digital memory storing a symbolic term comprising at least an object variable symbolic sub-term, the digital memory also storing instructions configured to cause the digital processor to determine an approximate set of values for the symbolic term, wherein determining the approximate set of values comprises, examining a set of value constraints for a pre-defined approximation of possible values associated with the symbolic term, and as a result of not finding the pre-defined approximation of possible values in the set of value constraints, determining a derived possible set of values of the symbolic term according to properties of the symbolic term by 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 object variable symbolic sub-term. 18. The system of claim 13 , wherein determining the approximate set of values further comprises assigning an initial set of values to the symbolic term.