Одним из основных результатов pi-теории является теорема, гласящая, что если алгебра
![$A$ $A$](https://dxdy-02.korotkov.co.uk/f/5/3/d/53d147e7f3fe6e47ee05b88b166bd3f682.png)
над полем нулевой характеристики удовлетворяет хотя бы одному полиномиальному тождеству, то все ее полиномиальные тождества следуют из некоторого конечного набора полиномиальных тождеств.
В частности, все полиномиальные тождества кватернионов следуют 2ух из упомянутых lofar'ом тождеств.
Но насколько мне известно, пока не придуман более или менее универсальный алгоритм, позволяющий адекватно редуцировать многочлен по модулю известных тождеств.
Что касается прямой проверки:
Как известно, в алгебрах над полем характеристики
![$0$ $0$](https://dxdy-03.korotkov.co.uk/f/2/9/6/29632a9bf827ce0200454dd32fc3be8282.png)
любое тождество эквивалентно некоторому полилинейному ( например
![$x^2=0$ $x^2=0$](https://dxdy-01.korotkov.co.uk/f/0/e/4/0e4a46ca25ee3dbe36ab71487c9acb1482.png)
эквивалентно
![$x_1x_2 + x_2x_1 = 0$ $x_1x_2 + x_2x_1 = 0$](https://dxdy-01.korotkov.co.uk/f/4/3/1/431f482ce07a58e08529d6a34e8f77e782.png)
),
а полилинейные тождества можно проверять поочередно подставляя вместо переменных элементы базиса.
Проблема в том, что если буква входит в тождество со степенью
![$n$ $n$](https://dxdy-02.korotkov.co.uk/f/5/5/a/55a049b8f161ae7cfeb0197d75aff96782.png)
, то после линеаризации она даст
![$n!$ $n!$](https://dxdy-02.korotkov.co.uk/f/5/0/c/50c0357224674ab662b8ea5e5ca3eb8a82.png)
слагаемых. ( При реализации проверяющего алгоритма хранить сами слагаемые необязательно, достаточно помечать переменные как симметризованные ).
Т.е. проблема вычисления в фиксированном объеме памяти разрешима, но перебор может занять весьма долгое время
Другая хитрость использует то, что полиномиальные тождества кватернионов в точностью совпадают с полиномиальными тождествами матриц порядка 2. А при проверке матричного тождества с помощью подстановки в него обобщенных матриц, вместо одной из матриц можно подставлять диагональную.
Например, при проверке кватернионного тождества
достаточно вместо
![$b$ $b$](https://dxdy-01.korotkov.co.uk/f/4/b/d/4bdc8d9bcfb35e1c9bfb51fc69687dfc82.png)
поставить
матрицу ![$\sum_{i,j=1}^2b_{ij}e_{ij}$ $\sum_{i,j=1}^2b_{ij}e_{ij}$](https://dxdy-04.korotkov.co.uk/f/3/3/7/337e01ff6180c641ee597910a8db258082.png)
, вместо
![$a$ $a$](https://dxdy-01.korotkov.co.uk/f/4/4/b/44bc9d542a92714cac84e01cbbb7fd6182.png)
--
диагональную матрицу
![$a_{11}e_{11}+a_{22}e_{22}$ $a_{11}e_{11}+a_{22}e_{22}$](https://dxdy-04.korotkov.co.uk/f/3/f/b/3fbddf152002d9b41916c442b041752282.png)
, а вместо
![$d_i$ $d_i$](https://dxdy-03.korotkov.co.uk/f/6/7/2/672a7aeac9254219b9609330a12e55e582.png)
, т.к. они входят в тождество линейно, поочередно подставлять матричные единички
![$e_{kl}$ $e_{kl}$](https://dxdy-03.korotkov.co.uk/f/e/a/7/ea7561a038680fff96b446f8c28e234a82.png)
.