Selective Unification in (Constraint) Logic Programming

[EN] Concolic testing is a well-known validation technique for imperative and object oriented programs. In a previous paper, we have introduced an adaptation of this technique to logic programming. At the heart of our framework lies a specific procedure that we call "selective unification&a...

Descripción completa

Detalles Bibliográficos
Autores: Mesnard, Fred, Payet, Etienne, Vidal, Germán|||0000-0002-1857-6951
Tipo de recurso: artículo
Fecha de publicación:2020
País:España
Institución:Universitat Politècnica de València (UPV)
Repositorio:RiuNet. Repositorio Institucional de la Universitat Politécnica de Valéncia
Idioma:inglés
OAI Identifier:oai:riunet.upv.es:10251/168537
Acceso en línea:https://riunet.upv.es/handle/10251/168537
Access Level:acceso abierto
Palabra clave:Logic programming
Constraint logic programming
Concolic testing
Unification
LENGUAJES Y SISTEMAS INFORMATICOS
Descripción
Sumario:[EN] Concolic testing is a well-known validation technique for imperative and object oriented programs. In a previous paper, we have introduced an adaptation of this technique to logic programming. At the heart of our framework lies a specific procedure that we call "selective unification". It is used to generate appropriate run-time goals by considering all possible ways an atom can unify with the heads of some program clauses. In this paper, we show that the existing algorithm for selective unification is not complete in the presence of non-linear atoms. We then prove soundness and completeness for a restricted version of the problem where some atoms are required to be linear. We also consider concolic testing in the context of constraint logic programming and extend the notion of selective unification accordingly.