QuantifierElimination
InsertFormula
incrementally produce the QE result corresponding to insertion of a Tarski formula into the input formula from a previous QE computation
Calling Sequence
Parameters
Description
Examples
Compatibility
InsertFormula( data, operation, atpos, newformula, relift = r, opts )
data
-
QEData or CADData object from a previous QE computation
operation
operation with which to insert the new formula with - either And or Or
atpos
the atomic position of the formula from data at which to insert the new formula - a positive integer, or a list of positive integers
newformula
new formula to be inserted at atomic position atpos via operation
r
(optional) truefalse; flag determining whether to relift the CAD tree where pure evolutionary CAD is used (default false)
opts
all keyword options applicable to poly-algorithmic QE (described in QuantifierElimination options)
"Evolutionary" method offering incrementality within QuantifierElimination.
Performs QE on the input expression associated with data, but modified via the parameters described above. Minimizes recomputation by using existing data structures from data.
QEData and CADData objects can be obtained by requesting data via the output keyword option for all QuantifierElimination routines offering quantifier elimination. CADData is returned when the quantifier elimination was provided by PartialCylindricalAlgebraicDecompose.
InsertFormula is a routine offering generic incrementality including insertion of formulae at generic atomic positions. This means that arbitrary formulae can be added within a targeted subformula of a formula originally used for elimination.
The atomic position atpos provided must be a positive integer, or a list of such which describes the path through the unquantified part of the prenex formula previously used for elimination which is associated to data. The atomic position provided must be a viable atomic position for the inserting formula in light of the previously used formula. This means QE of similar formulae can better be explored without traversing the entire elimination process from scratch.
Atomic positions start their indexing from 1 and not 0.
If using InsertFormula starting from CADData, then if newformula introduces new free variables to the formula, the CAD will be relifted regardless of the value of r, which may be slow. One should begin with a core formula that covers all free variables, if possible.
with⁡QuantifierElimination:with⁡QuantifierTools:
expr≔forall⁡x,0<x⇒0<x2
expr≔∀⁡x,0<x⇒0<x2
expr≔ConvertToPrenexForm⁡expr
expr≔∀⁡x,0≤−x∨−x2<0
Perform QE on this formula. We will then investigate the variance of the first operand of the Or, i.e. varying the assumptions of the Implies in terms of the quantifier free equivalent of the entire formula.
qf,w,data≔QuantifierEliminate⁡expr,output=qf,witnesses,data
qf,w,data≔true,,QEData for⁢∀⁡x,x≤0∨−x2<0
Produce the QE result corresponding to replacing x≤0 with x<0. In terms of the original formula with Implies, this will be equivalent to replacing 0<x with 0≤x. We will do this in two steps - with a deletion then an insertion to achieve the replacement.
qf,w,data≔DeleteFormula⁡data,1,output=qf,witnesses,data
qf,w,data≔false,false,x=0,QEData for⁢∀⁡x,−x2<0
Reinstate the disjunction lost as part of the last call but with x<0. Do this via an insertion.
q,w,data≔InsertFormula⁡data,Or,1,x<0,output=qf,witnesses,data
q,w,data≔false,false,x=0,QEData for⁢∀⁡x,x<0∨−x2<0
Overall we see the formula is now false due to the edge case introduced by x=0, which is included as part of the new assumption replacing the old 0<x.
The QuantifierElimination:-InsertFormula command was introduced in Maple 2023.
For more information on Maple 2023 changes, see Updates in Maple 2023.
See Also
DeleteFormula
PartialCylindricalAlgebraicDecompose
QuantifierEliminate
Download Help Document