Old rules:

(twoPow w i) * x = x <<< ix * (twoPow w i) = x <<< itwoPow w i * twoPow w j = twoPow w (i + j)

"When you have a non confluent simp set identify the problematic left hand side and come up with a new rule to join the divergence".

New rules:

BitVec.twoPow x * y = y <<< xx * BitVec.twoPow y = x <<< y(BitVec.twoPow x) <<< y = BitVec.twoPow (x + y)