Difference - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.
Our website is currently undergoing maintenance, which may result in occasional errors while browsing. We apologize for any inconvenience this may cause and are working swiftly to restore full functionality. Thank you for your patience.

Online Help

All Products    Maple    MapleSim


RegularChains

  

ConstructibleSetTools[Difference]

  

compute the difference of two constructible sets

  

SemiAlgebraicSetTools[Difference]

  

compute the difference of two semi-algebraic sets

 

Calling Sequence

Parameters

Description

Examples

References

Compatibility

Calling Sequence

Difference(cs1, cs2, R)

Difference(lrsas1, lrsas2, R)

Parameters

cs1, cs2

-

constructible sets

lrsas1

-

list of regular semi-algebraic systems

lrsas2

-

list of regular semi-algebraic systems

R

-

polynomial ring

Description

• 

This command computes the set-theoretic difference of two constructible sets or two semi-algebraic sets, depending on the input type.

• 

A constructible set must be encoded as an constructible_set object; see the type definition in ConstructibleSetTools.

• 

A semi-algebraic set must be encoded by a list of regular_semi_algebraic_system, see the type definition of RealTriangularize.

• 

The command Difference(cs1, cs2, R) returns a constructible set which is the set theoretic difference of two constructible sets. The polynomial ring may have characteristic zero or a prime characteristic.

• 

The command Difference(lrsas1, lrsas2, R) returns a list of regular semi-algebraic systems, encoding the set-theoretic difference of two semi-algebraic sets. The polynomial ring must have characteristic zero.

• 

The output may contain certain redundancy among the defining regular systems.

• 

This command is available once RegularChains[ConstructibleSetTools] submodule or RegularChains[SemiAlgebraicSetTools] submodule have been loaded. It can always be accessed through one of the following long forms: RegularChains:-ConstructibleSetTools:-Difference or RegularChains:-SemiAlgebraicSetTools:-Difference.

Examples

withRegularChains:

withChainTools:

withConstructibleSetTools:

withSemiAlgebraicSetTools:

First, define a polynomial ring.

RPolynomialRingx,y

Rpolynomial_ring

(1)

Use Triangularize to solve the polynomial equations given by F and G below.

F2x2+3xy+y23x3y

F2x2+3xy+y23x3y

(2)

Gxy2x

Gxy2x

(3)

decTriangularizeF,G,R,output=lazard

decregular_chain,regular_chain,regular_chain,regular_chain,regular_chain,regular_chain

(4)

mapEquations,dec,R

x2,y+1,x1,y1,x+1,y1,x,y3,x1,y+1,x,y

(5)

Now remove points which cancel the following H.

Hy3y

Hy3y

(6)

First, build the common solution set of F and G as a constructible set and also build one with H.

rcHChainH,EmptyR,R

rcHregular_chain

(7)

cs1ConstructibleSetRegularSystemrcH,R,R

cs1constructible_set

(8)

cs2ConstructibleSetmapRegularSystem,dec,R,R

cs2constructible_set

(9)

Then use Difference to find a new constructible set which encodes those points that cancel F and G, but do not cancel H.

cs3Differencecs2,cs1,R

cs3constructible_set

(10)

You can check the result using the Info command: cs2 consists of six points, and five of them cancel H.

Infocs2,R

x2,y+1,1,x1,y1,1,x+1,y1,1,x,y3,1,x1,y+1,1,x,y,1

(11)

The set cs3 consists of a single point which does not cancel H.

Infocs3,R

x,y3,1

(12)

An example on semi-algebraic set difference: to check whether or not two formula/conditions are equivalent. # Semi-algebraic Difference, verifying results

C10<a&comma;0<b&comma;0<c&comma;a<b+c&comma;b<a+c&comma;c<a+b&comma;b2+a2c20&colon;

C20<a&comma;0<b&comma;0<c&comma;a<b+c&comma;b<a+c&comma;c<a+b&comma;cb2+a2c22<ab22acc2+a2b2&colon;

S1C1&comma;C2

S10<a&comma;0<b&comma;0<c&comma;a<b+c&comma;b<a+c&comma;c<a+b&comma;a2+b2c20&comma;0<a&comma;0<b&comma;0<c&comma;a<b+c&comma;b<a+c&comma;c<a+b&comma;ca2+b2c22<ab2a2+2ac+b2c2

(13)

S2ac<0&comma;0<a&comma;0<b&comma;0<c&comma;a<b+c&comma;b<a+c&comma;c<a+b

S2ac<0&comma;0<a&comma;0<b&comma;0<c&comma;a<b+c&comma;b<a+c&comma;c<a+b

(14)

RPolynomialRinga&comma;b&comma;c&colon;

dec1mapop&comma;mapRealTriangularize&comma;S1&comma;R

dec1regular_semi_algebraic_system&comma;regular_semi_algebraic_system&comma;regular_semi_algebraic_system

(15)

dec2RealTriangularizeS2&comma;R

dec2regular_semi_algebraic_system

(16)

Verify dec1 = dec2 as set of points by Difference.

Differencedec1&comma;dec2&comma;R

(17)

Differencedec2&comma;dec1&comma;R

(18)

References

  

Chen, C.; Golubitsky, O.; Lemaire, F.; Moreno Maza, M.; and Pan, W. "Comprehensive Triangular Decomposition". Proc. CASC 2007, LNCS, Vol. 4770: 73-101. Springer, 2007.

  

Chen, C.; Davenport, J.-D.; Moreno Maza, M.; Xia, B.; and Xiao, R. "Computing with semi-algebraic sets represented by triangular decomposition". Proceedings of 2011 International Symposium on Symbolic and Algebraic Computation (ISSAC 2011), ACM Press, pp. 75--82, 2011.

Compatibility

• 

The RegularChains[SemiAlgebraicSetTools][Difference] command was introduced in Maple 16.

• 

The lrsas1 and lrsas2 parameters were introduced in Maple 16.

• 

For more information on Maple 16 changes, see Updates in Maple 16.

See Also

ConstructibleSet

ConstructibleSetTools

GeneralConstruct

Intersection

IsContained

IsEmpty

MakePairwiseDisjoint

Projection

RealTriangularize