On termination of meta-programs
Alexander Serebrenik, Danny De Schreye

TL;DR
This paper presents a methodology for analyzing the termination of practical meta-interpreters in logic programming, combining orderings and acceptability conditions to ensure correctness.
Contribution
It introduces a novel approach linking termination proofs of interpreted programs and meta-interpreters, covering complex features like negation and task variation.
Findings
The methodology correctly analyzes termination of various meta-interpreters.
It establishes a relationship between orderings for interpreted and meta-interpreted programs.
Applicable to meta-interpreters with negation, proof trees, tracers, and reasoners.
Abstract
The term {\em meta-programming} refers to the ability of writing programs that have other programs as data and exploit their semantics. The aim of this paper is presenting a methodology allowing us to perform a correct termination analysis for a broad class of practical meta-interpreters, including negation and performing different tasks during the execution. It is based on combining the power of general orderings, used in proving termination of term-rewrite systems and programs, and on the well-known acceptability condition, used in proving termination of logic programs. The methodology establishes a relationship between the ordering needed to prove termination of the interpreted program and the ordering needed to prove termination of the meta-interpreter together with this interpreted program. If such a relationship is established, termination of one of those implies termination…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
