reduce -- turn a Groebner basis computed using threaded Groebner bases into a reduced one

Synopsis

• Usage:
reduce HashTable
• Inputs:
• H, , whose values are polynomials
• Outputs:
• , where values in H whose initial terms are divisible by others are replaced by null and the remaining values are replaced by their remainder upon division by the rest

Description

Minimalizes first, then replaces each of the values of a hash table H by its remainder on the division by the remaining values H.

If values H constitute a Groebner basis of the ideal they generate, this method returns a reduced Groebner basis.

 i1 : R = ZZ/101[a,b,c]; i2 : T = tgb( ideal "abc+c2,ab2-b3c+ac,b2",2) 3 o2 = HashTable{(((0-1)-0)-0) => -c } 2 ((0-1)-0) => -a*c 2 ((1-2)-0) => -c 2 (0-1) => a c 2 (0-2) => b*c (1-2) => -a*c 2 0 => a*b*c + c 3 2 1 => - b c + a*b + a*c 2 2 => b o2 : HashTable i3 : reduce T o3 = HashTable{(((0-1)-0)-0) => null} ((0-1)-0) => null 2 ((1-2)-0) => c (0-1) => null (0-2) => null (1-2) => a*c 0 => null 1 => null 2 2 => b o3 : HashTable

Polynomials are normalized so that the leading coefficient is 1. Note that keys of non-minimal entries are retained, and the corresponding table value is null.

Ways to use reduce :

• "reduce(HashTable)"

For the programmer

The object reduce is .