QuantifierElimination options

Description


•

This help page describes common keyword options relevant to routines provided in the QuantifierElimination package.

•

Routines within QuantifierElimination typically make use of the polyalgorithm implemented for quantifier elimination (QE), for which all options described below are relevant. In other words, options relevant to both virtual term substitution (VTS) and cylindrical algebraic decomposition (CAD) are relevant in the context of QE.

•

CylindricalAlgebraicDecompose is an implementation of "pure" CAD outside of the context of QE, and hence only those options from the section CAD below are relevant.

•

The polyalgorithmic routines (QuantifierEliminate, InsertFormula and DeleteFormula) will in practice only use CAD for QE when maxvsdegree = 0. Hence in this situation only the CADspecific keyword options would be of relevance.



VTS/Polyalgorithmic QE


•

mode = identical( 'depth', 'breadth' )


determines how VTS selects subsequent operands for virtual substitution from the tree, or in other words how it traverses the VTS tree (default depth).

•

bounds = nonemptyset( identical( 'lower', 'upper' ) ) determines the bounds that VTS uses in test point generation (default { `lower` }).

•

hybridmode = identical( 'depth', 'breadth', 'whole' )


determines how QE uses CAD from VTS results when VTS can no longer be used for elimination due to excessive degree. depth or breadth means the polyalgorithm is used on the VTS tree depth or breadthwise, else the entire VTS tree is collapsed to one problem for CAD (default depth).

•

maxvsdegree = integer[ 0 .. 2 ]


determines the maximum degree of any polynomial factor VTS will consider using for quantifier elimination (default $2$).

•

processwitnesses = truefalse


flag that determines whether to process VTS prewitnesses into equations featuring real numbers in VTS (default true).



CAD



flag determining whether it is permissible to construct an "open CAD". An open CAD is a CAD only constructing sectors over any cell, or in other words a CAD only featuring cells of full dimension (default false).

•

liftingconstraints = Or( set, identical( 'positive' ) )


a set of lifting constraints  inequalities on real linear polynomials in one variable each that describe maximal bound(s) to build CAD geometry in, or the symbol positive, requesting CAD to only construct geometry in positive real space (default $\varnothing$).

•

propagateecs = truefalse


flag determining whether equational constraints are propagated through projection, which leads to greater efficiency in the projection process (default true).

•

variablestrategy = Or( nonemptylist( name), identical( 'brown', 'tonks', 'ndrr', 'sotd', 'greedy' ) )


determines the name of the variable strategy to use within CAD, and hence how variables are sorted before (or during) projection, OR a list of variables to completely override the variable ordering, which must be a viable variable ordering for the formula/polynomials passed in terms of which variables are present, and the quantification of a formula if applicable (default tonks). Very brief descriptions of the strategies follow, while more indepth descriptions of each of the strategies together with their origin can be found in [Ton21]. Note that while the last three strategies discussed below may require a significant time investment to decide a variable strategy, they can result in very competitive variable orderings for the purposes of cost of lifting. Hence they may overall result in a performance benefit ($n$ = number of variables).

–

brown: The "Brown heuristic" for variable ordering in CAD  prioritizes variables appearing at a lower degree in the input formula to be eliminated first in projection.

–

tonks: Like brown, but applied to equational constraints as a priority before applying to polynomials appearing from other contexts.

–

ndrr: Prioritizes the variable ordering leading to a projection set where the number of distinct real roots of the univariate projection basis is minimized. Note that this requires generation of $\mathrm{O}\left(n!\right)$ full projection sets.

–

sotd: Prioritizes the variable ordering leading to a projection set where the sum of the total degrees of polynomials across the projection bases is minimized. Note that this requires generation of $\mathrm{O}\left(n!\right)$ full projection sets.

–

greedy: Similar to sotd, but done variable by variable such that variables become successively fixed in the ordering when exploring all further possible projection bases. Similarly requires generation of $\mathrm{O}\left(n!\right)$ full projection sets, albeit fewer than for ndrr or sotd.

•

useequations = identical( 'none', 'single', 'multiple' )

•

usegroebner = truefalse


flag determining whether equational constraints are preprocessed with Gröbner bases, which incurs some initial overhead, but may lead to greater efficiency later in projection (default true).

•

cellselectionstrategy = identical( 'HL_LI', 'TC_LD_HL_LI', 'TC_LD_HL_GI, 'SR_HL_LI' )


determines the cell selection strategy used in CAD for stack construction on cells (default HL_LI). This option is only relevant when using CAD in the context of quantifier elimination, where early termination criteria apply. The value passed defines a cell selection strategy in terms of tiebreakers between metrics on cells. The segments of the symbol delimited by underscores (_) represent metrics to use as part of the strategy. The following determines what the segments mean as part of these symbols in terms of a corresponding metric:

–

LD: "least degree" (of the minimal polynomial defining the cell),

–

TC: "trivial conversion" (see [CH91]),

See [CH91] for more information.


QE (all methods)


•

output = nonemptylist( identical( 'qf', 'witnesses', 'data' ) )


a list which defines which outputs will be provided and their sequential ordering. Each distinct symbol must appear at most once. These symbols correspond to:

–

qf: quantifierfree equivalent for QE.

–

witnesses: list of witnesses that prove equivalence of the quantified formula to its quantifierfree equivalent. Only applicable when the passed formula is fully quantified with only one quantifier symbol.

–

data: a QEData object when a polyalgorithmic method was used for elimination, else a CADData object. This object can be inspected via various object methods, or passed to routines such as InsertFormula or DeleteFormula for evolutionary QE.


The default value is always $\left[\mathrm{qf}\right]$.

•

eagerness = integer[1..3]


determines how eager QE should be to terminate once a sufficient quantifierfree equivalent for QE has been deduced (default 3). A lower value of eagerness may result in production of more witnesses when witnesses are requested via the keyword option output.



References



[CH91] Hong, H. and Collins, G.E. Partial Cylindrical Algebraic Decomposition for Quantifier Elimination. Journal of Symbolic Computation, pages 299–328, 1991.


[Ton21] Tonks, Z. Polyalgorithmic Techniques in Real Quantifier Elimination. PhD Thesis, University of Bath, UK, 2021.


