# reduce -- produce a reduced Gr\"obner basis from one computed by threaded Gr\"obner bases

## Synopsis

• Usage:
reduce LineageTable
• Inputs:
• H, an instance of the type LineageTable, whose values are polynomials
• Outputs:
• an instance of the type LineageTable, 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 Gr\"obner basis of the ideal they generate, this method returns a reduced Gr\"obner basis.

 i1 : R = ZZ/101[a,b,c]; i2 : allowableThreads= 2; i3 : T = tgb ideal "abc+c2,ab2-b3c+ac,b2" 3 o3 = LineageTable{(((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 o3 : LineageTable i4 : reduce T o4 = LineageTable{(((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 o4 : LineageTable

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(LineageTable)"

## For the programmer

The object reduce is .