Cylindrical Algebraic Decomposition (CAD) was the first practical means for
doing real quantifier elimination (QE), and is still a major method, with many
improvements since Collins' original method. Nevertheless, its complexity is
inherently doubly exponential in the number of variables. Where applicable,
virtual term substitution (VTS) is more effective, turning a QE problem in n
variables to one in nβ1 variables in one application, and so on. Hence there
is scope for hybrid methods: doing VTS where possible then using CAD.
This paper describes such a poly-algorithmic implementation, based on the
second author's Ph.D. thesis. The version of CAD used is based on a new
implementation of Lazard's recently-justified method, with some improvements to
handle equational constraints