code: private AssumptionSet updateVariableVersions(AssumptionSet assumptions, LocalEnvironment original,
  			LocalEnvironment updated) {
  
  		for (Map.Entry<WyilFile.Decl.Variable, WyalFile.VariableDeclaration> e : updated.locals.entrySet()) {
  			WyilFile.Decl.Variable var = e.getKey();
  			WyalFile.VariableDeclaration newVarVersionedName = e.getValue();
  			WyalFile.VariableDeclaration oldVarVersionedName = original.read(var);
  			if (!oldVarVersionedName.equals(newVarVersionedName)) {
  				// indicates a version change of the given variable.
  				Expr.VariableAccess oldVar = new Expr.VariableAccess(oldVarVersionedName);
  				Expr.VariableAccess newVar = new Expr.VariableAccess(newVarVersionedName);
  				assumptions = assumptions.add(new Expr.Equal(newVar, oldVar));
  			}
  		}
  		return assumptions;
  	}
docs: Bring a given assumption set which is consistent with an original environment
  up-to-date with a new environment.
  
  @param assumptions
  The assumption set associated with a given context being joined
  together.
  @param original
  The original environment associated with the given context. This
  maps from location indices to version numbers and is consistent
  with the given assumption set.
  @param updated
  The updated mapping from location indices to version numbers. In
  many cases, these will be the same as in the original environment.
  However, some versions will have been updated because they were
  modified in one or more context's being joined. In such case, the
  given assumption set must be brought up to date with the new
  version numbers.
  @return