Theory and Practice of Logic Programming vol:13 issue:Special Issue 4-5 pages:691-704
International Conference on Logic Programming edition:29 location:Istanbul, Turkey date:24 - 29 August 2013
FO(·)IDP3 extends first-order logic with inductive definitions, partial functions, types and aggregates. Its model generator IDP3 first grounds the theory and then uses search to find the models. The grounder uses Lifted Unit Propagation (LUP) to reduce the size of the groundings of problem specifications in IDP3. LUP is in general very effective, but performs poorly on definitions of predicates whose two-valued interpretation can be computed from data in the input structure. To solve this problem, a preprocessing step is introduced that converts such definitions to Prolog code and uses XSB Prolog to compute their interpretation. The interpretation of these predicates is then added to the input structure and their definitions are removed from the theory; the further processing is then done by the standard IDP3 system. Experimental results show the effectiveness of our method.