##
**Solution 11591:** Correcting the Circular Definition Error on the TI-89 Family, TI-92 Family, and Voyage™ 200 Graphing Calculators.

### What is the Circular Definition error on the TI-89 family, TI-92 family, and Voyage 200 graphing calculators?

A change was made in the __TI-89__, __TI-89 Titanium__, __TI-92 Plus__ and __Voyage 200__ operating systems to detect function and program calls that have expressions of symbolic variable argument names that are the same as those used to define the function or program. The error *Circular definition* will occur if that is detected.

Unexpected results can occur when a function or program is called with some form of the same variable name that was used when defining the argument in the function or program definition.

For example, on the home screen:

define f(x)=ln(ln(x)+x) (Done)

f(x+1) simplifies to ln(ln(x+1)+x+2) (unexpected result!)

To avoid this, functions and programs should be defined with argument variable names that WILL NOT be used as arguments during subsequent function or program calls. Please avoid choosing variable names like x,y,z,a,b,c,... for argument names when defining a function or program. These common variable names are frequently used and could easily be included as an argument in a function or program call. Instead, choose variable names like xx, xtemp, yy, ytemp, zz,... for argument names when defining a function or program. Then use x,y,z,a,b,c,... when the function or program is called. This minimizes any chance that the function or program called has an argument name that could produce an unexpected result.

For example, on the home screen:

define f(xx)=ln(ln(xx)+xx) (Done)

f(x+1) simplifies to ln(ln(x+1)+x+1) (expected result)

One common area where the simplification problem can occur is in the study of composition of functions. For example, simplifying f(g(x)) with defined functions f(x) and g(x) to see the composition of f composed on g. When the functions f(xx) and g(yy) are defined, the simplification of f(g(x)) will then give expected results.

For example, on the home screen:

define f(xx)=xx^2 (Done)

define g(xtemp)=xtemp+1 (Done)

define h(yy)= yy^(1/2)+1 (Done)

f(g(x)) simplifies to (x+1)^2 (expected result)

h(f(x)) simplifies to abs(x)+1 (expected result)

If the arguments in a function or program call are not symbolic, then all simplification will work as expected. Composition of functions is also commonly studied when graphing y2(y1(x)). Because the graphing application on these calculators is completely numeric, all composition of functions in graphing work as expected. However, the graphing functions y1(x),y2(x),..., y99(x) enforce the use of x as the argument variable name. Therefore, if these system graphing functions are used to study composition of functions symbolically on the home screen, unexpected results can occur.

A software change was made to detect function and program calls that have expressions of symbolic variable argument names that are the same as those used to define the function or program. The error *Circular definition* will occur if that is detected.

To determine whether their version includes the newer software,

On the home screen enter, define f(x)=x^2 (done).

Then enter f(x+1).

If an error *Circular definition* is given then it has the newer software.

If a simplified result of (x+1)^2 is given, then it has the older software.

Please see the TI-89 family, TI-92 family and Voyage 200 __guidebooks__ for additional information.