A property of a function, variable, or expression whereby the expression can be replaced by its (evaluated) value without affecting the behavior of the program.