In this example situation, "the cost" is the initial request, and "the price is 12.99" is the initial assumption:
> Find the cost when the price is 12.99.
Let 'C' stand for "COST"
(Find C)
Let 'P' stand for "PRICE"
P = 12.99
P = 12.99
In "Simple Change" follow-up questions, information is requested based on new assumptions. The new assumptions come from changing existing variable assignment(s). The requested information could be the same as initially asked for...
... or different information altogether:
The simplest Simple Change is changing a single quantity. Here, the same information is requested but using a different value for the price:
That kind of Simple Change is really the same as introducing a contradiction involving a single variable. Related variables would automatically be undefined and redefined if necessary and wherever possible. As long as everything needed to answer the follow-up question can be derived, there is no need to specify anything more than the changed quantity.
Consistency
However, if answering the follow-up question requires defining values related to (but not dependent on) the change, those independent quantities may have to be redefined...
> Area is length times width.
Let 'A' stand for "AREA"
Let 'L' stand for "LENGTH"
Let 'W' stand for "WIDTH"
So...
A = L W
Anything else?
> Find the area when the length is 7, and the width is 3.
(Find A)
L = 7
L = 7
W = 3
W = 3
A = L W
A = 21
21 is THE AREA.
Anything else?
> If the length were 10, what would the area be?
L = 10
L = 10
Undefining 'A' ...
Undefining 'W' ...
(Find A)
Anything else?
The follow-up dialogue needs to provide more information about the new situation for the answer to be determined:
Given the free-form nature of input, the program can not predetermine which (if any) variables should retain their values when one or more quantities are changed. This actually allows follow-up questions to impose different conditions than the original question:
Although the program can not predetermine which variables should retain their values, the user could use the "lock" command to turn one or more variables into symbolic constants, preventing them from being automatically undefined:
e.g. !lock W
If the length were 10, what would the area be?
Regardless of how many quantities get changed, these are still "simple" changes since the relationships between quantities (i.e. the stored equations) are unchanged. Only changes to the stored equations are considered "complex changes".