# Computing Stable Models of Normal Logic Programs Without Grounding

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

## Key facts

- Cited by 9 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 1 Sep 2017.

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

- [CASPR: A Commonsense Reasoning-based Conversational Socialbot](https://mlsanity.com/paper/2110.05387/) (2021)
- [SymBa: Symbolic Backward Chaining for Structured Natural Language Reasoning](https://mlsanity.com/paper/2402.12806/) (2024)
- [Modeling and Reasoning in Event Calculus using Goal-Directed Constraint Answer Set Programming](https://mlsanity.com/paper/2106.14566/) (2021)
- [An ASP-based Approach to Answering Natural Language Questions for Texts](https://mlsanity.com/paper/2112.11241/) (2021)
- [Specifying and Exploiting Non-Monotonic Domain-Specific Declarative Heuristics in Answer Set Programming](https://mlsanity.com/paper/2209.09066/) (2022)
- [grASP: A Graph Based ASP-Solver and Justification System](https://mlsanity.com/paper/2104.01190/) (2021)
- [Towards Dynamic Consistency Checking in Goal-directed Predicate Answer Set Programming](https://mlsanity.com/paper/2110.12053/) (2021)
- [Automated legal reasoning with discretion to act using s(LAW)](https://mlsanity.com/paper/2401.14511/) (2024)
- [Fast Inference for Probabilistic Answer Set Programs via the Residual Program](https://mlsanity.com/paper/2408.07524/) (2024)

## Abstract (arXiv)

We present a method for computing stable models of normal logic programs, i.e., logic programs extended with negation, in the presence of predicates with arbitrary terms. Such programs need not have a finite grounding, so traditional methods do not apply. Our method relies on the use of a non-Herbrand universe, as well as coinduction, constructive negation and a number of other novel techniques. Using our method, a normal logic program with predicates can be executed directly under the stable model semantics without requiring it to be grounded either before or during execution and without requiring that its variables range over a finite domain. As a result, our method is quite general and supports the use of terms as arguments, including lists and complex data structures. A prototype implementation and non-trivial applications have been developed to demonstrate the feasibility of our method.
