A Three-Valued Semantics for Typed Logic Programming

João Barbosa
(Faculty of Science of the University of Porto)
Mário Florido
(Faculty of Science of the University of Porto)
Vítor Santos Costa
(Faculty of Science of the University of Porto)

Types in logic programming have focused on conservative approximations of program semantics by regular types, on one hand, and on type systems based on a prescriptive semantics defined for typed programs, on the other. In this paper, we define a new semantics for logic programming, where programs evaluate to true, false, and to a new semantic value called wrong, corresponding to a run-time type error. We then have a type language with a separated semantics of types. Finally, we define a type system for logic programming and prove that it is semantically sound with respect to a semantic relation between programs and types where, if a program has a type, then its semantics is not wrong. Our work follows Milner's approach for typed functional languages where the semantics of programs is independent from the semantic of types, and the type system is proved to be sound with respect to a relation between both semantics.

In Bart Bogaerts, Esra Erdem, Paul Fodor, Andrea Formisano, Giovambattista Ianni, Daniela Inclezan, German Vidal, Alicia Villanueva, Marina De Vos and Fangkai Yang: Proceedings 35th International Conference on Logic Programming (Technical Communications) (ICLP 2019), Las Cruces, NM, USA, September 20-25, 2019, Electronic Proceedings in Theoretical Computer Science 306, pp. 36–51.
Published: 19th September 2019.

ArXived at: https://dx.doi.org/10.4204/EPTCS.306.10 bibtex PDF
References in reconstructed bibtex, XML and HTML format (approximated).
Comments and questions to: eptcs@eptcs.org
For website issues: webmaster@eptcs.org