Dynamically discovering likely program invariants to support program evolution | Synapse