## Groebner basis

For using the program, please download groebner.jar and groebner.bat. In order to run it needs JDK 1.3 or 1.4 (Java Development Kit). JDK can be downloaded here. Sources are here. Please be sure that JDK is installed and java is in CLASSPATH (to check it, type "java" at command prompt. There must be a screen, displaying command line parameters for java). Then you can try to run groebner by typing "groebner" at command prompt in the directory where you downloaded files.

### Features

The program works with algebras given by letters and relations. It is possible to mark some letters as "central", i.e. commuting with every other letter. Features are:
• Computation of groebner basis. It is possible to define order on monomials using weights of letters, so that all monomials containing letter with high weight will be greater then monomials not containing this letter.
• Search of central elements.
• Computation in algebras.(Calculator)

### Example

First make a setting file (projections.in). It should be like:
```[Alphabet]
p1 p2       //Projections
central weight -1
tau         //central element
[Generators]
p1 p2[Relations]
"p1^2-p1"
"p2^2-p2"
```

It is an algebra of two idempotents without relations. We added letter tau because in future we will find central element and assign it to tau. It has weight -1 because we need to consider our algebra over its center so every word containing p1 or p2 will be greater then word, containing only tau's. Now compute groebner basis:

```groebner groebner projections.in projections.out
```
We see that original relations already formed groebner basis. Then try to find central element and assign it to tau:
```groebner center projections.out projections.out tau
```
After it, recompute groebner basis:
```groebner groebner projections.out projections.out
```
It can be seen that our algebra is four dimensional over its center generated by tau (projections.out). We can do some calculations by using calculator mode:
```groebner calculator projections.out
```

### More sofisticated example

Consider the problem:
For which numbers m algebra generated by three idempotents x,y,z and sum m is non-zero?
Prepare the following input file (D4.in):
```[alphabet]
x y z
weight -1 central
m
[relations]
"x^2-x"
"y^2-y"
"z^2-z"
"x+y+z-m"
```
Then use groebner:
```groebner groebner D4.in D4.out
```
Look at D4.out One of relations is "9m - 45/2m^2 + 20m^3 - 15/2m^4 + m^5". It means if algbera is non-zero, then 9m - 45/2m^2 + 20m^3 - 15/2m^4 + m^5=0. We can factor this polynomial and get:
1/2*m*(m-1)*(m-2)*(m-3)*(2*m-3)
It means that possible values of m are 0, 1, 3/2, 2, 3, which is well known.