Gröbner Basis algorithm