# Singular

#### D.7.1.35 relative_orbit_variety

Procedure from library `finvar.lib` (see finvar_lib).

Usage:
relative_orbit_variety(I,F,s);
I: an <ideal> invariant under the action of a group,
F: a 1xm <matrix> defining the invariant ring of this group,
s: a <string> giving a name for a new ring

Return:
The procedure ends with a new ring named s.
It contains a Groebner basis
(type <ideal>, named G) for the ideal defining the
relative orbit variety with respect to I in the new ring.

Theory:
A Groebner basis of the ideal of algebraic relations of the invariant ring generators is calculated, then one of the basis elements plus the ideal generators. The variables of the original ring are eliminated and the polynomials that are left define the relative orbit variety with respect to I.

Note:
This procedure is now replaced by rel_orbit_variety (see rel_orbit_variety), which uses a different elemination order that should usually allow faster computations.

Example:
 ```LIB "finvar.lib"; ring R=0,(x,y,z),dp; matrix F[1][3]=x+y+z,xy+xz+yz,xyz; ideal I=x2+y2+z2-1,x2y+y2z+z2x-2x-2y-2z,xy2+yz2+zx2-2x-2y-2z; string newring="E"; relative_orbit_variety(I,F,newring); print(G); ==> 27*y(3)^6-513*y(3)^4+33849*y(3)^2-784, ==> 1475*y(2)+9*y(3)^4-264*y(3)^2+736, ==> 8260*y(1)+9*y(3)^5-87*y(3)^3+5515*y(3) basering; ==> // coefficients: QQ ==> // number of vars : 3 ==> // block 1 : ordering lp ==> // : names y(1) y(2) y(3) ==> // block 2 : ordering C ```