Nitrox 1.0

Jasmin C. Blanchette1
1Technische Universität München, Germany

Architecture

Nitrox is the first-order logic version of Nitpick [BN10], a counterexample generator for Isabelle/HOL [NPW02]. The name is a combination of Nitpick and Paradox. Nitrox is little more than a TPTP FOF parser. Nitpick's backend is the relational model finder Kodkod [TJ07] developed by Emina Torlak at MIT.

Strategies

Nitpick is optimized to work with higher-order logic (HOL) and its definitional principles (e.g., (co)inductive predicates, (co)inductive datatypes, (co)recursive functions). When invoked on untyped first-order problem, few of its optimizations come into play, and the problem handed to Kodkod is essentially a first-order relational logic (FORL) rendering of the TPTP FOF problem. One exception is nested quantifiers, which Nitpick optimizes before Kodkod gets a chance to look at them [BN10]. Should Nitrox prove successful in the competition, 99% of the credit should go to Emina Torlak.

Implementation

Nitpick is part of Isabelle/HOL and is written in Standard ML. Kodkod is written in Java.

Expected Competition Performance

Since Nitpick was designed for HOL, it doesn't have any type inference à la Paradox. It also doesn't use the SAT solver incrementally, which penalizes it a bit (but not as much as the missing type inference). Kodkod itself is known to perform less well on FOF than Paradox, because it is designed and optimized for a somewhat different logic, FORL. On the other hand, Kodkod's symmetry breaking seems better calibrated than Paradox's. Hence, we expect Nitrox to end up in second place.

References

BN10
Blanchette J. C., Nipkow T. (2010), Nitpick: A Counterexample Generator for Higher-Order Logic Based on a Relational Model Finder, ITP 2010.
NPW09
Nipkow T., Paulson L. C., Wenzel M. (2009), Isabelle/HOL: A Proof Assistant for Higher-Order Logic, http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/Isabelle/doc/tutorial.pdf.
TJ07
Torlak E., Jackson D. (2010), Kodkod: A Relational Model Finder, TACAS 2007.