next up previous contents index
Next: NCSimplifyRational[ expr ], NCSimplify1Rational[ Up: NC Commands Previous: NCUnMonomial[expr]   Contents   Index

Simplification

This area is under developement so stronger commands will appear in later versions. What we mean by simplify is not in the spirit of Mathematica's Simplify. They tend to factor expressions so that the expressions become very short. We expand expressions apply rules to the expressions which incorporate special relations the entries satisfy. Then we rely on cancelation of terms. The theoretical background lies in noncommutative Gröbner basis theory, and the rules we are implementing come from papers of Helton, Stankus and Wavrik [IEEE TAC March 1998].

The commands in this section are designed to simplify polynomials in $ a$, $ b$, $ inv[S-a**b]$, $ inv[S-b**a]$, $ inv[S-a]$, $ inv[S-b]$ and a few slightly more complicated inverses.

The commands in order of strength are NCSR, NCS1R, NCS2R. Of course, for a stronger the command, more rules get applied and so the command takes longer to run.

First, NCS1R normalizes $ inv[S-a**b]$ to $ S^{-1}*inv[1-{(a**b)\over S}]$ provided $ S$ is a commutative expression (only works for numbers $ S$ in version 0.2 of NCAlgebra). The following list of rules are applied.


(0) $ inv[-1 + a] \rightarrow - inv[1-a]$
(1) $ inv[1-a]  (a-b)  inv[1-b] \rightarrow inv[1-a] - inv[1-b]$
(2) $ inv[1-ab]  inv[b] \rightarrow inv[1-ba]  a +inv[b] $
(3) $ inv[1-ab]  a  b \rightarrow inv[1-ab] - 1$
(4) $ a b  inv[1-ab] \rightarrow inv[1-ab] - 1$
(5) $ inv[c]  inv[1-cb] \rightarrow inv[1-bc]  inv[c]$
(6) $ b   inv[1-ab] \rightarrow inv[1-ba] b$

The command NCS2R increases the range of expressions to include $ inv[poly]$, but the reductions for each of these inverses is considerably less powerful than for the case of $ inv[1-ab]$.

An example: if $ expr= a ** inv[a+b]+inv[c-a] ** (a-c)+inv[c+d] ** (c+d+e)$, then the first reduction using the list of rules in NCSR gives $ a ** inv[a+b] + inv[c+d] ** e inv[a] ** (a-b) ** inv[b]$ and the second reduction gives $ inv[b]-inv[a]$ which is the output from $ NCSR[expr]$.

NCSimplify0Rational is an old attempt at simplification. We do not use it much.



Subsections
next up previous contents index
Next: NCSimplifyRational[ expr ], NCSimplify1Rational[ Up: NC Commands Previous: NCUnMonomial[expr]   Contents   Index
NCAlgebra Project 2002-09-09