# Predicate Logic as a Modelling Language: The IDP System

arXiv: https://arxiv.org/abs/1401.6312 · HTML: https://mlsanity.com/paper/1401.6312/

## Key facts

- Cited by 8 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 24 Jan 2014.

## Built on by (most cited first, 8 of 8)

- [On the Foundations of Grounding in Answer Set Programming](https://mlsanity.com/paper/2108.04769/) (2021)
- [Fixpoint Semantics for Recursive SHACL](https://mlsanity.com/paper/2109.08285/) (2021)
- [Tackling the DM Challenges with cDMN: A Tight Integration of DMN and Constraint Reasoning](https://mlsanity.com/paper/2110.02610/) (2021)
- [Interactive configurator with FO(.) and IDP-Z3](https://mlsanity.com/paper/2202.00343/) (2022)
- [FOLASP: FO(.) as Input Language for Answer Ser Solvers](https://mlsanity.com/paper/2108.04020/) (2021)
- [Natural language understanding for logical games](https://mlsanity.com/paper/2110.00558/) (2021)
- [Answer Set Programming Made Easy](https://mlsanity.com/paper/2111.06366/) (2021)
- [EZSMT Version 3, Matured](https://mlsanity.com/paper/2607.13344/) (2026)

## Abstract (arXiv)

With the technology of the time, Kowalski's seminal 1974 paper em Predicate Logic as a Programming Language was a breakthrough for the use of logic in computer science. It introduced two fundamental ideas: on the declarative side, the use of the Horn clause logic fragment of classical logic, which was soon extended with negation as failure, on the procedural side the procedural interpretation which made it possible to write algorithms in the formalism. Since then, strong progress was made both on the declarative understanding of the logic programming formalism and in automated reasoning technologies, particularly in SAT solving, Constraint Programming and Answer Set Programming. This has paved the way for the development of an extension of logic programming that embodies a more pure view of logic as a modelling language and its role for problem solving. In this paper, we present the idp language and system. The language is essentially classical logic extended with one of logic programmings most important contributions to knowledge representation: the representation of complex definitions as rule sets under well-founded semantics. The system is a knowledge base system: a system in which complex declarative information is stored in a knowledge base which can be used to solve different computational problems by applying multiple forms of inference. In this view, theories are declarative modellings, bags of information, descriptions of possible states of affairs. They are neither procedures nor descriptions of computational problems. As such, the idp language and system preserve the fundamental idea of a declarative reading of logic programs, while they break with the fundamental idea of the procedural interpretation of logic programs.
