# Singular          #### D.4.20.1 nonMonomials

Procedure from library `pointid.lib` (see pointid_lib).

Usage:
nonMonomials(id); id = <list of vectors> or <list of lists> or <module> or <matrix>.
Let A= {a1,...,as} be a set of points in K^n, ai:=(ai1,...,ain), then A can be given as
- a list of vectors (the ai are vectors) or
- a list of lists (the ai are lists of numbers) or
- a module s.t. the ai are generators or
- a matrix s.t. the ai are columns

Assume:
basering must have ordering rp, i.e., be of the form 0,x(1..n),rp; (the first entry of a point belongs to the lex-smallest variable, etc.)

Return:
ideal, the non-monomials of the vanishing ideal I(A) of A

Purpose:
compute the set of non-monomials Mon(x(1),...,x(n)) \ {LM(f)|f in I(A)} of the vanishing ideal I(A) of the given set of points A in K^n, where K[x(1),...,x(n)] is equipped with the lexicographical ordering induced by x(1)<...<x(n) by using the algorithm of Cerlienco-Mureddu

Example:
 ```LIB "pointid.lib"; ring R1 = 0,x(1..3),rp; vector a1 = [4,0,0]; vector a2 = [2,1,4]; vector a3 = [2,4,0]; vector a4 = [3,0,1]; vector a5 = [2,1,3]; vector a6 = [1,3,4]; vector a7 = [2,4,3]; vector a8 = [2,4,2]; vector a9 = [1,0,2]; list A = a1,a2,a3,a4,a5,a6,a7,a8,a9; nonMonomials(A); ==> _=1 ==> _=x(1) ==> _=x(2) ==> _=x(1)^2 ==> _=x(3) ==> _=x(1)^3 ==> _=x(2)*x(3) ==> _=x(3)^2 ==> _=x(1)*x(2) matrix MAT = 4,0,0,2,1,4,2,4,0,3,0,1,2,1,3,1,3,4,2,4,3,2,4,2,1,0,2; MAT = transpose(MAT); print(MAT); ==> 4,2,2,3,2,1,2,2,1, ==> 0,1,4,0,1,3,4,4,0, ==> 0,4,0,1,3,4,3,2,2 nonMonomials(MAT); ==> _=1 ==> _=x(1) ==> _=x(2) ==> _=x(1)^2 ==> _=x(3) ==> _=x(1)^3 ==> _=x(2)*x(3) ==> _=x(3)^2 ==> _=x(1)*x(2) module MOD = gen(3),gen(2)-2*gen(3),2*gen(1)+2*gen(3),2*gen(2)-2*gen(3),gen(1)+3*gen(3),gen(1)+gen(2)+3*gen(3),gen(1)+gen(2)+gen(3); print(MOD); ==> 0,0, 2,0, 1,1,1, ==> 0,1, 0,2, 0,1,1, ==> 1,-2,2,-2,3,3,1 nonMonomials(MOD); ==> _=1 ==> _=x(2) ==> _=x(1) ==> _=x(2)^2 ==> _=x(1)^2 ==> _=x(1)*x(2) ==> _=x(3) ring R2 = 0,x(1..2),rp; list l1 = 0,0; list l2 = 0,1; list l3 = 2,0; list l4 = 0,2; list l5 = 1,0; list l6 = 1,1; list L = l1,l2,l3,l4,l5,l6; nonMonomials(L); ==> _=1 ==> _=x(2) ==> _=x(1) ==> _=x(2)^2 ==> _=x(1)^2 ==> _=x(1)*x(2) ```

### Misc 