use R ::= QQ[x,y,z];
Points := [[0,0,1],[1/2,1,1],[0,1,0]];
X := IdealAndSeparatorsOfProjectivePoints(Points);
X.points;
[[0, 0, 1], [1, 1, 1], [0, 1, 0]]
-------------------------------
X.ideal;
ideal(x*z - (1/2)*y*z, x*y - (1/2)*y*z, x^2 - (1/4)*y*z, y^2*z - y*z^2)
-------------------------------
X.separators;
[-2*x + z, x, -2*x + y]
-------------------------------
use R ::= QQ[t,x,y,z];
Pts := GenericPoints(20); -- 20 random points in projective 3-space
X := IdealAndSeparatorsOfProjectivePoints(Pts);
Len(Gens(X.Ideal)); -- number of generators in the ideal
17
-------------------------------
HilbertFn(R/X.Ideal);
H(0) = 1
H(1) = 4
H(2) = 10
H(t) = 20 for t >= 3
-------------------------------
F := X.Separators[3];
[Eval(F, P) | P in Pts];
[0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
-------------------------------
Res(R/X.Ideal); -- the resolution of the ideal
0 --> R^10(-6) --> R^24(-5) --> R^15(-4) --> R
-------------------------------
|