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.