RegularChains - Maple Programming Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Mathematics : Factorization and Solving Equations : RegularChains : SemiAlgebraicSetTools Subpackage : RegularChains/ConstructibleSetTools/Difference

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&plus;c&comma;b<a&plus;c&comma;c<a&plus;b&comma;b2&plus;a2c20&colon;

C20<a&comma;0<b&comma;0<c&comma;a<b&plus;c&comma;b<a&plus;c&comma;c<a&plus;b&comma;cb2&plus;a2c22<ab22acc2&plus;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&plus;c&comma;b<a&plus;c&comma;c<a&plus;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