VI. A. Does the variable index depending upon the chosen func- tion index decouple the function type from the unassigned functions? Tag the function indices which fail for all functions. If no decoupling, go to V.B. B. Assign the chosen variable type to the chosen function type. Give the function type a position in the function ordering immediately after all of the presently unassigned functions. C. Make the index output set assignments which produced the decoupling. Flag the function index as a decoupling index. Go to II.C. The decoupling algorithm performs an exhaustive search over all combinations of directions of index incrementing. Additionally, when- ever an output assignment is made, all remaining function and variable types are untagged and the algorithm restarted on the remaining unassigned function and variable types. Generally, an exhaustive search of this type would be extremely long. In the case of the decoupling algorithm, the search will be relatively short since the FVIM will usually have only a few function and variable types and there are usually only one or two function indices. For some of the function index directions it may be possible to reject certain variable types at the outset. Remember that the aim of decoupling is to manipulate the choice of solution procedure so that variables which would otherwise have to be torn do not have to be torn. Suppose that the function index ii is incremented in ascending order. Suppose, also, that the variable type x is being examined to determine if it can be used to decouple a function type from the others. If x has