# Singular

##### 7.7.8.0. lpNF
Procedure from library `freegb.lib` (see freegb_lib).

Usage:
lpNF(p,G); f letterplace polynomial, ideal I

Return:
poly

Purpose:
computation of the normalform of p with respect to G

Assume:
p is a Letterplace polynomial, G is a set Letterplace polynomials, being a Letterplace Groebner basis (no check for this will be done)

Note:
Strategy: take the smallest monomial wrt ordering for reduction
For homogenous ideals the shift does not matter
For non-homogenous ideals the first shift will be the smallest monomial

Example:
 ```LIB "freegb.lib"; ring r = 0,(x,y,z),dp; int d =5; // degree def R = makeLetterplaceRing(d); setring R; ideal I = y(1)*x(2)*y(3) - z(1)*y(2)*z(3), x(1)*y(2)*x(3) - z(1)*x(2)*y(3), z(1)*x(2)*z(3) - y(1)*z(2)*x(3), x(1)*x(2)*x(3) + y(1)*y(2)*y(3) + z(1)*z(2)*z(3) + x(1)*y(2)*z(3); ideal J = letplaceGBasis(I); // compute a Letterplace Groebner basis poly p = y(1)*x(2)*y(3)*z(4)*y(5) - y(1)*z(2)*z(3)*y(4) + z(1)*y(2)*z(3); poly q = z(1)*x(2)*z(3)*y(4)*z(5) - y(1)*z(2)*x(3)*y(4)*z(5); lpNF(p,J); ==> z(1)*y(2)*z(3)*z(4)*y(5)-y(1)*z(2)*z(3)*y(4)+z(1)*y(2)*z(3) lpNF(q,J); ==> 0 ```