This subsection concerns a command NCCollectOnVariables, abbreviated NCCV, which is implementable (indeed, it is implemented in NCAlgebra). A technical description is given in the appendix. Often human intervention can be coupled with NCCV to discover decompositions.
In addition to being an option for the NCProcess commands, it can be called as a stand-alone command. It is used in a session where knowns and unknowns have been declared.
NCCollectOnVariables is a command which ``collects'' maximal products of knowns and products of knowns out of expressions. Since it collects on monomials which are products of knowns, it typically presents important combinations of knowns in its output.
For example, if in a computer session where A and B are set to be knowns and X, Y and Z are set to be unknowns, then, when NCCollectOnVariables is applied to X A B Z + Y A B Z + A X + A Y, it returns (X + Y) A B Z + A (X + Y). Therefore, X A B Z + Y A B Z + A X + A Y, depends on a motivated unknown X + Y and an unknown Z.
As another example, if we are in a computer session and A, , , , , , and are set to be knowns and all of the other variables are set to be unknowns, then when the command NCCollectOnVariables is applied to
In the problem which this expression comes from (see §), the transpose of is (see Appendix §). Therefore, the above expression motivates the introduction of motivated unknowns and .
As these examples show, NCCollectOnVariables is an extremely important option for NCProcess.