"Values for Symbols" discussed how you can use transformation rules of the form

to replace symbols by values. The notion of transformation rules in
Mathematica is, however, quite general. You can set up transformation rules not only for symbols, but for any
Mathematica expression.
Probably the most powerful aspect of transformation rules in
Mathematica is that they can involve not only literal expressions, but also
patterns. A pattern is an expression such as

which contains a blank (underscore). The blank can stand for any expression. Thus, a transformation rule for

specifies how the function

with
any argument should be transformed. Notice that, in contrast, a transformation rule for

without a blank, specifies only how the literal expression

should be transformed, and does not, for example, say anything about the transformation of

.
When you give a function definition such as

, all you are doing is telling
Mathematica to automatically apply the transformation rule

whenever possible.
"Patterns" and
"Transformation Rules and Definitions" will explain in detail how to set up patterns and transformation rules for any kind of expression. Suffice it to say here that in
Mathematica all expressions have a definite symbolic structure; transformation rules allow you to transform parts of that structure.