the ancient term for such things is "al-muqabala" which roughly translates as "balancing" (this is from the title of the famous work by Al-Khwarizmi called: al-Kitab al-mukhtasar fi hisab al-jabr w'al-muqabala , or: the compendious book on computation by completion and balancing, the term "al-jabr" refers to transforming a + c = b to a = b - c, from which we derive our term "algebra").

note that a binary operation on a set S, such as + or * is defined as a FUNCTION (a special kind of relation R for which xRy and xRz implies y = z) from SxS to S.

so (for example) if +(a,b) = +(a,c), because + is a function we have: (a,b) = (a,c) in SxS. but equality in SxS is defined as: (x,y) = (u,v) if and only if x = u, and y = v.

applying this to x = a, y = b, u = a, v = c, we get: a = a (well...ok....) and b = c (ding!).

one can also see +c (for example) as a function from S to S: +c(a) = a+c (this kind of thing is called a "right translation", which is the same thing as a "left translation" for commutative operations, but the two ideas differ for non-commutative operations. for subgroups, translates are better known as their "other" name, cosets). since these are FUNCTIONS, it follows automatically that if a = b, +c(a) = +c(b) (functions can only have ONE image for identical domain elements).

the common phrase to describe all this is: "equals to equals are equal" if i have two things, which are the same, and i do the same thing to each one, i get the same result:

a = b (so we can use b in place of a, and vice versa, because they are EQUAL)

a+c = b+c

this illustrates the "one-way-ness" of functions, from a = b, we always have f(a) = f(b) for ANY function f (whether f "adds c" or "multiplies by c" or many other things you can imagine), we often CANNOT go the other way (not all functions are reversible).