ValuesUnderConstraints - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : ValuesUnderConstraints

Overview of the ValuesUnderConstraints Package

 

Calling Sequence

Description

References

Compatibility

Calling Sequence

ValuesUnderConstraints:-command(arguments)

command(arguments)

Description

• 

The ValuesUnderConstraints package is a collection of commands for manipulating binary relations with the main objective of supporting the implementation of algorithms operating on algebraic objects depending on parameters.

• 

Typically, such an algorithm decomposes the space of parameters into regions and associates each region with zero, one or more functions defined on that region. Each association of a parameter region with the functions defined on it can be regarded as a binary relation with that region as source, and the union of the images of these functions as target.

• 

Some algorithms operating on algebraic objects depending on parameters rely on recursive calls and/or other algorithms operating on algebraic objects depending on parameters. As a result, during the execution of such an algorithm, one may obtain several partitions of the parameter space and one may need to refine these different partitions into a single partition. This challenge occurs in polynomial algebra with the computations of comprehensive Groebner bases or comprehensive triangular decompositions. It occurs also in polyhedral geometry when counting the number of integer points of a parametric polyhedral set.

• 

The command MakeCaseDiscussion of the ValuesUnderConstraints package solves that challenge when the parameters take integer values or real values. In its current version, the package is optimized for the former case, while more optimization opportunities remain to be implemented for the latter case.

• 

The commands MergeTwoCaseDiscussions and RefineCaseDiscussion solve the same challenge, but under some assumptions which allow those commands to consume less resources (time and space).

• 

The command ValueUnderConstraints creates a value-under-constraints object, see the terminology section below.

• 

The commands Value and Constraints inspect such as object, while the commands Equations, NonNegativeInequalities, PositiveInequalities, and Inequations separate the constraints of such an object between equations, non-strict inequalities, strict inequalities and inequations.

• 

The commands Eval, Simplifier and Simplify deal with the simplification of the value of a value-under-constraints object w.r.t. its constraints.

• 

The command Symbols (resp. IntegerSymbols) returns the indeterminates (resp. indeterminates taking integer values) of such an object.

• 

The command HasInconsistentConstraints checks whether such an object is consistent or not.

• 

The command AreEqual checks whether two such objects are equal.

• 

The command ToPiecewise converts a list of such objects into a piecewise function.

Terminology

• 

Mathematically, a value-under-constraints object vc is an ordered pair (v,c) where v is a finite set, called the value of vc, and c is a set of Boolean functions defined on some set A, and called the constraints of vc.  The set c is regarded as the conjunction of these constraints.

• 

We write the domain of vc for the subset of A on which all constraints of vc are true.

• 

If the domain of vc is not empty, then We say that vc is consistent, otherwise we say that it is inconsistent.

• 

We say that a finite number of value-under-constraints objects is a case discussion whenever their domains form a partition of some set A, that is, whenever their domains are non-empty and pairwise disjoint.

• 

Let wd be a second value-under-constraints object with value w and constraints d. We say that wd refines vc whenever the domain of wd is contained in the domain of vc and the value of wd contains the value of vc.

• 

Let lvc and lwd be two lists of value-under-constraints objects. We say that lwd refines lvc whenever the following conditions hold:

1. 

for every value-under-constraints object wd in lwd there exists at least one value-under-constraints object vc in lvc that wd refines;

2. 

for every value-under-constraints object vc of lvc there exists a number of value-under-constraints objects in lwd refining vc and such that the union of their domains is equal to the domain of vc

3. 

the value of every value-under-constraints object wd in lwd is the union of the values of the value-under-constraints objects in lvc that wd refines

• 

Assume from now on that the value v of the value-under-constraints object vc consists of functions which (1) are defined on A, the set on which constraints of vc are defined, and (2) take value in a set B. Then, the value-under-constraints object vc naturally defines a binary relation from A to B as the set of all pairs (x,y) where x belongs to the domain of vc and y is the image of x by one of the functions of v.

• 

This interpretation in terms of binary relation helps understanding the concept of a value-under-constraints object. In particular, it helps understanding why the value of such an object is a set.

AreEqual

Constraints

Equations

Eval

HasInconsistentConstraints

Inequations

IntegerSymbols

MakeCaseDiscussion

MergeTwoCaseDiscussions

NonNegativeInequalities

PairCompare

PositiveInequalities

RefineCaseDiscussion

Simplifier

Simplify

Symbols

Value

ValueUnderConstraints

 

 

References

  

Rui-Juan Jing, Yuzhuo Lei, Christopher F. S. Maligec, Marc Moreno Maza: "Counting the Integer Points of Parametric Polytopes: A Maple Implementation." Proceedings of Computer Algebra in Scientific Computing - 26th International Workshop (CASC) 2024: 140-160, Lecture Notes in Computer Science, vol. 14938, Springer.

Compatibility

• 

The ValuesUnderConstraints package was introduced in Maple 2025.

• 

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

See Also

ValuesUnderConstraints[AreEqual]

ValuesUnderConstraints[Constraints]

ValuesUnderConstraints[Equations]

ValuesUnderConstraints[HasInconsistentConstraints]

ValuesUnderConstraints[Inequations]

ValuesUnderConstraints[IntegerSymbols]

ValuesUnderConstraints[MakeCaseDiscussion]

ValuesUnderConstraints[MergeTwoCaseDiscussions]

ValuesUnderConstraints[NonNegativeInequalities]

ValuesUnderConstraints[PairCompare]

ValuesUnderConstraints[PositiveInequalities]

ValuesUnderConstraints[RefineCaseDiscussion]

ValuesUnderConstraints[Simplifier]

ValuesUnderConstraints[Simplify]

ValuesUnderConstraints[Symbols]

ValuesUnderConstraints[ToPiecewise]

ValuesUnderConstraints[Value]

ValuesUnderConstraints[ValueUnderConstraints]