ValuesUnderConstraints/Constraints - 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/Constraints

ValuesUnderConstraints

  

Constraints

  

return the constraints of a value-under-constraints object

 

Calling Sequence

Parameters

Description

Examples

References

Compatibility

Calling Sequence

Constraints(vc)

Parameters

vc

-

ValueUnderConstraints

Description

• 

The command Constraints(vc) returns as a list the constraints of vc 

Assumptions

• 

The constraints of a value-under-constraints object are interpreted as the conjunction of predicates, where each predicate is a binary relation over the ring of polynomials with variables in Symbols(vc) and with rational number coefficients.

• 

The binary relations currently supported are of the form a = b, a <> b, a > b and a >= b, where a and b are polynomials with variables in Symbols(vc) and with rational number coefficients.

Normalization of constraints

• 

The constraints a = b, a <> b, a > b and a >= b are automatically simplified so that b is always zero. As a consequence a is called the defining polynomial of the constraint. Moreover, inequalities of the form a > 0 and a >= 0 are called positive and non-negative, respectively.

• 

We list below some of the transformations that are applied to the constraints of a value-under-constraints object, when this object is created.

• 

If the variables of a defining polynomial a all belong to IntegerSymbols(vc) then we say that a is integer-valued; if this the case and if the inequality a > 0 is a constraint of the value-under-constraints object vc, then this inequality is automatically replaced by an equivalent non-negative inequality.

• 

If a <> 0 and a >= 0 are constraints of vc, then they are automatically replaced by a > 0. Similarly, if a <> 0 and -a >= 0 are constraints of vc, then they automatically replaced by -a > 0.

• 

If a is an integer-valued polynomial, then a = 0 is replaced by the conjunction of a >= 0 and -a >= 0. If a >= 0 and -a >= 0 are constraints of vc, and a is not an integer-valued polynomial, then these constraints are replaced by a = 0.

• 

If a is an integer-valued polynomial, and both a > 0 and 1 -a >= 0 appear both in vc when it is defined, then these two constraints are replaced by a - 1 = 0, that is, a = 1.

• 

If a is an integer-valued polynomial, and both a > 0 and 2 -a > 0 appear both in vc when it is defined, then these two constraints are replaced by a - 1 = 0, that is, a = 1.

• 

An important consequence of these transformations is that, if every defining polynomial is integer-valued, then every constraint is either a non-negative inequality or an inequation.

Examples

withValuesUnderConstraints&colon;

Create a value-under-constraints objects with no integer-valued symbol

vc1ValueUnderConstraints1&comma;a&comma;b&comma;c&comma;d&comma;a&comma;b&comma;c&comma;d&comma;

vc1value 1 when a=0&comma;d0&comma;0<c&comma;0b

(1)

Print its value, its constraints, its symbols and its integer-valued symbols

Valuevc1&semi;Constraintsvc1&semi;Symbolsvc1&semi;IntegerSymbolsvc1

1

a=0&comma;d0&comma;0<c&comma;0b

a&comma;b&comma;c&comma;d

(2)

Create another value-under-constraints objects where all symbols are integer-valued

vc2ValueUnderConstraints2&comma;a&comma;b&comma;c&comma;d&comma;a&comma;b&comma;c&comma;d&comma;a&comma;b&comma;c&comma;d

vc2value 2 when a=0&comma;d0&comma;0b&comma;0c1

(3)

Print its value, its constraints, its symbols and its integer-valued symbols

Valuevc2&semi;Constraintsvc2&semi;Symbolsvc2&semi;IntegerSymbolsvc2

2

a=0&comma;d0&comma;0b&comma;0c1

a&comma;b&comma;c&comma;d

a&comma;b&comma;c&comma;d

(4)

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[Constraints] command was introduced in Maple 2025.

• 

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

See Also

ValuesUnderConstraints[Constraints]

ValuesUnderConstraints[Equations]

ValuesUnderConstraints[HasInconsistentConstraints]

ValuesUnderConstraints[Inequations]

ValuesUnderConstraints[IntegerSymbols]

ValuesUnderConstraints[NonNegativeInequalities]

ValuesUnderConstraints[PositiveInequalities]

ValuesUnderConstraints[Symbols]

ValuesUnderConstraints[Value]

ValuesUnderConstraints[ValueUnderConstraints]