          ##### 7.5.2.0. linReduce
Procedure from library `bfun.lib` (see bfun_lib).

Usage:
linReduce(f, I [,s,t,u]); f a poly, I an ideal, s,t,u optional ints

Return:
poly or list, linear reductum (over field) of f by elements from I

Purpose:
reduce a polynomial only by linear reductions (no monomial multiplications)

Note:
If s<>0, a list consisting of the reduced polynomial and the coefficient
vector of the used reductions is returned, otherwise (and by default)
only reduced polynomial is returned.
If t<>0 (and by default) all monomials are reduced (if possible),
otherwise, only leading monomials are reduced.
If u<>0 (and by default), the ideal is linearly pre-reduced, i.e.
instead of the given ideal, the output of `linReduceIdeal` is used.
If u is set to 0 and the given ideal does not equal the output of
`linReduceIdeal`, the result might not be as expected.

Display:
If `printlevel`=1, progress debug messages will be printed,
if printlevel>=2, all the debug messages will be printed.

Example:
 ```LIB "bfun.lib"; ring r = 0,(x,y),dp; ideal I = 1,y,xy; poly f = 5xy+7y+3; poly g = 7x+5y+3; linReduce(g,I); // reduces tails ==> 7x linReduce(g,I,0,0); // no reductions of tails ==> 7x+5y+3 linReduce(f,I,1); // reduces tails and shows reductions used ==> : ==> 0 ==> : ==> -5*gen(3)-7*gen(2)-3*gen(1) f = x3+y2+x2+y+x; I = x3-y3, y3-x2,x3-y2,x2-y,y2-x; list l = linReduce(f,I,1); l; ==> : ==> 5y ==> : ==> gen(5)-4*gen(4)+2*gen(3)-3*gen(2)-3*gen(1) module M = I; f - (l-(M*l)[1,1]); ==> 0 ```          User manual for Singular version 4.3.1, 2022, generated by texi2html.