Tree Reasoning Solver
Expressive and efficient reasoning over finite trees
The Tree Reasoning Solver turns a major result in computational
logic into a practical reasoning engine.
Scientific contribution.
At its core is a modal fixpoint logic over finite trees, equipped
with converse modalities, nominals, full negation, and n-ary
fixpoints for expressing mutual recursion. At the level of definable
tree properties, the logic has the same expressive power as monadic
second-order logic (MSO). Yet, whereas direct reasoning in MSO has
non-elementary worst-case complexity in the size of the formula,
satisfiability for this logic is EXPTIME-complete and can be decided
in single-exponential time, 2O(n).
This yields a distinctive combination of expressive power,
succinctness, optimal worst-case complexity, and practical
effectiveness. The decision procedure is implemented using symbolic
techniques based on Binary Decision Diagrams, making sophisticated
logical reasoning effective on realistic static analysis problems.
Applications and impact.
The solver has been used in
research projects worldwide: at the University of Washington for
query intersection in Web-script analysis; at the University of
Maryland and FORTH for access-control policies and document security;
at the University of Edinburgh for XML query containment; at the
University of British Columbia for cloud-software analysis; and at
the University of Stuttgart for the analysis of BPEL data flows.
In my group, we used it to solve a problem that had remained open for more than 10 years in the programming language community. We proved the decidability of subtyping for a very rich type algebra (see our ICFP and TOPLAS papers). We also used it to introduce, for the first time, static analyses for cascading style sheets (see our WWW paper) and more generally queries over structured data.
The theoretical foundations and applications of the system were
published at PLDI, TOCL, IJCAI, AAAI, ICFP, and TOPLAS, among others.