# In Praise of Impredicativity: A Contribution to the Formalisation of Meta-Programming

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

## Key facts

- Cited by 1 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 16 Jul 2018.

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

- [An asymptotic analysis of probabilistic logic programming, with implications for expressing projective families of distributions](https://mlsanity.com/paper/2102.08777/) (2021)

## Abstract (arXiv)

Processing programs as data is one of the successes of functional and logic programming. Higher-order functions, as program-processing programs are called in functional programming, and meta-programs, as they are called in logic programming, are widespread declarative programming techniques. In logic programming, there is a gap between the meta-programming practice and its theory: The formalisations of meta-programming do not explicitly address its impredicativity and are not fully adequate. This article aims at overcoming this unsatisfactory situation by discussing the relevance of impredicativity to meta-programming, by revisiting former formalisations of meta-programming and by defining Reflective Predicate Logic, a conservative extension of first-order logic, which provides a simple formalisation of meta-programming.
