Experience with Heuristics, Benchmarks & Standards for Cylindrical Algebraic Decomposition Matthew England∗ , and James H. Davenport† , ∗ Coventry University Faculty of Engineering, Environment and Computing, Coventry, CV1 2JH, U.K. Email: Matthew.England@coventry.ac.uk † University of Bath Department of Computer Science, Bath, BA2 7AY, U.K. Email: J.H.Davenport@bath.ac.uk Abstract—In the paper which inspired the SC2 project, we note that the solve procedures in Computer Algebra Sys- [E. Ábráham, Building Bridges between Symbolic Computation and tems are really meta-algorithms: algorithms to select specific Satisfiability Checking, Proc. ISSAC ’15, pp. 1–6, ACM, 2015] the procedures to use based on problem parameters. Although author identified the use of sophisticated heuristics as a technique the individual procedures are usually well documented within that the Satisfiability Checking community excels in and from the scientific literature we are not aware of any publications which it is likely the Symbolic Computation community could describing these meta-algorithms. learn and prosper. To start this learning process we summarise our experience with heuristic development for the computer Another topic where Symbolic Computation might benefit algebra algorithm Cylindrical Algebraic Decomposition. We also from experience in Satisfiability Checking is standards and propose and discuss standards and benchmarks as another area benchmarks. Competitions based on these form an integral where Symbolic Computation could prosper from Satisfiability part of the Satisfiability Checking community, and may have Checking expertise, noting that these have been identified as initial actions for the new SC2 community in the CSA project, contributed to the remarkable progress made in practical al- as described in [E. Ábráham et al., SC2 : Satisfiability Checking gorithms. The lack of a comparable focus for the Symbolic meets Symbolic Computation (Project Paper), Intelligent Computer Computation community was acknowledged in [2]. However, Mathematics (LNCS 9761), pp. 28–43, Springer, 2015]. recent experiments have suggested the benchmarks for non- linear real arithmetic are insufficient and the development of I. I NTRODUCTION new standards and benchmarks for the joint community has been identified as a key SC2 project action in [2, Section 3.3]. This article is inspired by the SC2 project1 , a new initiative to forge a joint community from the existing fields of Symbolic In the present paper we outline our experience of these Computation and Satisfiability Checking. For further details issues for a single Symbolic Computation algorithm, Cylindri- on the project we refer the reader to: cal Algebraic Decomposition (CAD). The aim of the paper is to instigate the learning process from the Satisfiability Check- • [2] which introduced the two fields, describes some ing community by illustrating the current use of heuristics, of the challenges and opportunities from working benchmarks and standards in (at least one area of) Symbolic together, and outlines planned project actions; and Computation and posing some questions. We start with a summary of the necessary background on CAD in Section II, • [1] the accompanying paper to an invited talk at then survey work with heuristics in CAD in Section III and ISSAC 2015 which inspired the creation of the new our experience with standards and benchmarks in Section IV. project and community. We finish with conclusions and questions in Section V. Within [1] the author outlines the strengths and weaknesses of the two communities, writing in the introduction: II. C YLINDRICAL ALGEBRAIC DECOMPOSITION “Symbolic Computation is strong in providing pow- A. Definition erful procedures for sets (conjunctions) of arithmetic A Cylindrical Algebraic Decomposition (CAD) is a decom- constraints, but it does not exploit the achievements position of Rn into cells (connected subsets). By algebraic in SMT solving for efficiently handling logical frag- we mean semi-algebraic: i.e. each cell can be described with ments, using heuristics and learning to speed-up the a finite sequence of polynomial constraints. Finally, the cells search for satisfying solutions.” are arranged cylindrically, meaning the projections of any By heuristic the we mean a practical method to make a choice pair, with respect to the variable ordering in which the CAD which is not guaranteed to be optimal. Although Computer was created, are either equal or disjoint. We assume variables Algebra Systems prize correctness and exact solutions there labelled according to their ordering (so the projections con- is still much scope for the use of heuristics and statistical sidered are (x1 , . . . , x` ) → (x1 , . . . , xk ) for k < `) with the methods in symbolic computation algorithms: both for tuning highest ordered variable present said to be the main variable. how individual algorithm are run and for selecting a particular Hence CADs can be represented in a tree like format branching algorithm to use in the first place. In regards to the latter point, on the semi-algebraic conditions involving increasing main variable, as in the example below (with the branching from √ 1 http://www.sc-square.org/ right to left; all indicating the positive root; and the tuples Copyright c by the paper’s authors. Copying permitted for private and academic purposes. In: E. Ábrahám, J. Davenport, P. Fontaine, (eds.): Proceedings of the 1st Workshop on Satisfiability Checking and Symbolic Computation (SC2 ), Timisoara, Romania, 02-07-2016, published at http://ceur-ws.org on the left sample points of the cells). build CADs of increasing dimension. First a CAD of R1 is  built by splitting on the real roots of the univariate polynomials   (−2, 0) x < −1 (those in x1 only). Next, a CAD of R2 is built by repeating the process over each cell in R1 with the bivariate polynomials     in (x1 , x2 ) evaluated at a sample point of the cell in R1 ; and   (−1, −1) y<0   the process is repeated until a CAD of Rn is produced. We   (−1, 0) y =0 x = −1       call the cells where a polynomial vanishes sections and those  (−1, 1) 0