diff -r f353fe3c2b92 -r 6c38df1d294a src/HOL/TPTP/CASC/SysDesc_Nitpick.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/HOL/TPTP/CASC/SysDesc_Nitpick.html Tue May 21 11:01:14 2013 +0200 @@ -0,0 +1,82 @@ +
+Nitpick employs Kodkod to find a finite model of the negated conjecture. The +translation from HOL to Kodkod's first-order relational logic (FORL) is +parameterized by the cardinalities of the atomic types occurring in it. Nitpick +enumerates the possible cardinalities for each atomic type, exploiting +monotonicity to prune the search space [BK11]. If a +formula has a finite counterexample, the tool eventually finds it, unless it +runs out of resources. + +
+SAT solvers are particularly sensitive to the encoding of problems, so special +care is needed when translating HOL formulas. +As a rule, HOL scalars are mapped to FORL singletons and functions are mapped to +FORL relations accompanied by a constraint. More specifically, +an n-ary first-order function (curried or not) can be coded as an +(n + 1)-ary relation accompanied by a constraint. However, if the return +type is the type of Booleans, the function is more efficiently coded as an +unconstrained n-ary relation. +Higher-order quantification and functions bring complications of their own. A +function from σ to τ cannot be directly passed as an argument in FORL; +Nitpick's workaround is to pass |σ| arguments of type τ that encode a +function table. + +
+Nitpick, like most of Isabelle/HOL, is written in Standard ML. Unlike Isabelle +itself, which adheres to the LCF small-kernel discipline, Nitpick does not +certify its results and must be trusted. +
+Nitpick is available as part of Isabelle/HOL for all major platforms under a +BSD-style license from +
+ http://www.cl.cam.ac.uk/research/hvg/Isabelle+ +
+ +