What is the name of the optimization that removes self eliminating multiplication-division statements? I have a compiler optimization which should be quite common, but I can not find a name for it, nor a reference that describes it. 

Given an integer x, not known at optimization time, a known constant c and the following program

x_1 = x * c
x_2 = x_1 / c
print(x_2)


It's pretty clear that the code can be optimized to

print(x)


What is the name of this optimization? Is there a paper/book describing it?

Thanks!
It's probably most easily described as a two-step process. First a step of Copy Propagation to get 

x_2=x*c/c
print(x_2)


followed by a step of Constant folding to remove the unecessary operations.