# CASA Function: implDifference

Computes the Zariski closure of the difference of two algebraic sets.

### Calling Sequence:

### Parameters:

- A : algset("impl")
- An algebraic set in implicit representation.

- B : algset("impl")
- An algebraic set in implicit representation.

### Result:

- C : algset("impl")
- The Zariski closure of the difference of the two given algebraic sets.

### Description:

- The function computes the algebraic set of the Zariski closure of the difference of the given algebraic sets.
- The computation is reduced to the computation of the intersection of ideals.
- Let {q1,..,qn} be a basis for I(B), the ideal of B. It holds that I(A):I(B) = Intersection of I(A):<qi>, i=1,...,n, where <qi> is the principle ideal generated by qi. Each I(A):<qi> can be computed again by ideal intersection. Let {p1,...,pm} be a basis for intersect(I(A),<qi>) then {p1/qi,...,pm/qi} is a basis for I(A):<qi>.

### Examples:

`> ` **a1 := mkImplAlgSet([x^3+x^2*y-x,z],[x,y,z]);**

`> ` **a2 := mkImplAlgSet([x,y^2+z^2-1],[x,y,z]);**

`> ` **implDifference(a1,a2);**

`> ` **implDifference(a1,a1);**

### See Also:

[CASA]
[implUnion]
[implUnionLCM]
[implIntersect]
[implEqual]
[implEmpty]
[implSubSet]
[implIdealQuo]