fixed hashCode for SymbolicConstraint; refactored hashCode caching