Quantifier Elimination in Maple 2023
|
Description
|
|
•
|
The QuantifierElimination package has been added in Maple 2023. This package offers a new set of routines for quantifier elimination over the reals (QE). This package is the first package included with Maple to offer Virtual Term Substitution (VTS) as an algorithm for QE. Furthermore it offers a new implementation of Cylindrical Algebraic Decomposition (CAD) being the first implementation using the Lazard projection with equational constraints as part of CAD both for QE and standalone CADs to explore real algebraic geometry. Lastly, a new poly-algorithm offers a new way to use VTS in conjunction with CAD for QE including in incremental contexts.
|
>
|
with(QuantifierElimination);
|
| (1) |
>
|
expr := exists( x, forall( y, exists( z, And(4*x^2 + x*y^2 - z + 1/4 = 0, 2*x + y^2*z + 1/2 = 0, x^2*z - 1/2*x - y^2 = 0 ) ) ) );
|
| (2) |
>
|
QuantifierEliminate(expr);
|
•
|
You can opt to include with the result witnesses that prove equivalence of quantifier-free formulae to a quantified expression:
|
>
|
expr := exists([v__1, v__2, v__3, v__4, v__5, v__6, v__7, v__8],And(v__7 < 0,0 < v__8,0 < v__4,v__2*v__6+v__3*v__8 = v__4,v__1*v__5+v__3*v__7 = v__4,v__6 = 1,v__5 = 1, 0 < v__1));
|
| (4) |
>
|
(qf, witnesses) := QuantifierEliminate( expr, 'output = [ qf, witnesses]' );
|
| (5) |
>
|
map(evalb,eval(op(2,expr),witnesses[1][2..-1]));
|
| (6) |
>
|
expr := exists(c,forall([b, a],Implies(Or(And(a-d = 0,b-c = 0),And(a-c = 0,b-1 = 0)),a^2-b = 0)));
|
| (7) |
>
|
PartialCylindricalAlgebraicDecompose(expr);
|
| (9) |
>
|
uqf := GetUnquantifiedFormula( expr );
|
| (10) |
>
|
C := CylindricalAlgebraicDecompose( GetUnquantifiedFormula( expr ), 'variablestrategy' = [ d, c, b, a ] );
|
| (11) |
>
|
leaves := GetLeafCells( C )[ 1 .. 5 ];
|
| (12) |
| (13) |
>
|
GetFullDescription(cell);
|
| (14) |
| (15) |
>
|
SignOfPolynomialOnCell( C, c-a, cell );
|
>
|
SignOfPolynomialOnCell( C, d-1, cell );
|
|
|