# CoCoA:DivAlg

## DivAlg

division algorithm

### Description

This function performs the division algorithm on X with respect to L.

It returns a record with two fields: Quotients holding a list of

polynomials, and Remainder holding the remainder of X upon division by L.

#### Example

```  Use R ::= Q[x,y,z];
F := x^2y+xy^2+y^2;
L := [xy-1,y^2-1];
DivAlg(F,[xy-1,y^2-1]);
Record[Quotients = [x + y, 1], Remainder = x + y + 1]
-------------------------------
D := It;
D.Quotients;
[x + y, 1]
-------------------------------
D.Remainder;
x + y + 1
-------------------------------
ScalarProduct(D.Quotients,L) + D.Remainder = F;
TRUE
-------------------------------
V := Vector(x^2+y^2+z^2,xyz);
L := [Vector(x,y),Vector(y,z),Vector(z,x)];
DivAlg(V,L);
Record[Quotients = [0, -z^2, yz], Remainder = Vector(x^2 + y^2 + z^2, z^3)]
-------------------------------
```

### Syntax

```DivAlg(X:POLY,L:LIST of POLY):RECORD
DivAlg(X:VECTOR,L:LIST of VECTOR):RECORD
```

```   <type>polynomial</type>
<type>record</type>
<type>vector</type>
```