compute the difference of two constructible sets - Maple 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

RegularChains[SemiAlgebraicSetTools][Difference] - compute the difference of two semi-algebraic sets

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.

R:=PolynomialRingx,y

R:=polynomial_ring

(1)

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

F:=2x2+3xy+y23x3y

F:=2x2+3xy+y23x3y

(2)

G:=xy2x

G:=xy2x

(3)

dec:=TriangularizeF,G,R,output=lazard

dec:=regular_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.

H:=y3y

H:=y3y

(6)

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

rcH:=ChainH,EmptyR,R

rcH:=regular_chain

(7)

cs1:=ConstructibleSetRegularSystemrcH,R,R

cs1:=constructible_set

(8)

cs2:=ConstructibleSetmapRegularSystem,dec,R,R

cs2:=constructible_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.

cs3:=Differencecs2,cs1,R

cs3:=constructible_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

C1:=0<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;

C2:=0<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;

S1:=C1&comma;C2

S1:=0<a&comma;0<b&comma;0<c&comma;a<b&plus;c&comma;b<a&plus;c&comma;c<a&plus;b&comma;a2&plus;b2c20&comma;0<a&comma;0<b&comma;0<c&comma;a<b&plus;c&comma;b<a&plus;c&comma;c<a&plus;b&comma;ca2&plus;b2c22<ab2a2&plus;2ac&plus;b2c2

(13)

S2:=ac<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

S2:=ac<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

(14)

R:=PolynomialRinga&comma;b&comma;c&colon;

dec1:=mapop&comma;mapRealTriangularize&comma;S1&comma;R

dec1:=regular_semi_algebraic_system&comma;regular_semi_algebraic_system&comma;regular_semi_algebraic_system

(15)

dec2:=RealTriangularizeS2&comma;R

dec2:=regular_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)

See Also

ConstructibleSet, ConstructibleSetTools, GeneralConstruct, Intersection, IsContained, IsEmpty, MakePairwiseDisjoint, Projection, RealTriangularize

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.


Download Help Document

Was this information helpful?



Please add your Comment (Optional)
E-mail Address (Optional)
What is ? This question helps us to combat spam