for example, "x" ∈ {1,2,3} (where "x" is the value of the variable "x" after an operation) could be refined to "x" ∈ {1,2}, then "x" ∈ {1}, and implemented as "x" := 1. implementations of "x" := 2 and "x" := 3 would be equally acceptable in this case, using a different route for the refinement. however, we must be careful not to refine to "x" ∈ {} (equivalent to "false") since this is unimplementable; it is impossible to select a member from the empty set.