Anti-unification in Constraint Logic Programming

07/24/2019
by   Gonzague Yernaux, et al.
0

Anti-unification refers to the process of generalizing two (or more) goals into a single, more general, goal that captures some of the structure that is common to all initial goals. In general one is typically interested in computing what is often called a most specific generalization, that is a generalization that captures a maximal amount of shared structure. In this work we address the problem of anti-unification in CLP, where goals can be seen as unordered sets of atoms and/or constraints. We show that while the concept of a most specific generalization can easily be defined in this context, computing it becomes an NP-complete problem. We subsequently introduce a generalization algorithm that computes a well-defined abstraction whose computation can be bound to a polynomial execution time. Initial experiments show that even a naive implementation of our algorithm produces acceptable generalizations in an efficient way. Under consideration for acceptance in TPLP.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/01/2021

Anti-unification of Unordered Goals

Anti-unification in logic programming refers to the process of capturing...
research
07/17/2021

Anti Tai Mapping for Unordered Labeled Trees

The well-studied Tai mapping between two rooted labeled trees T_1(V_1, E...
research
10/18/2018

Complexity of computing the anti-Ramsey numbers

The anti-Ramsey numbers are a fundamental notion in graph theory, introd...
research
02/01/2023

Anti-unification and Generalization: A Survey

Anti-unification (AU), also known as generalization, is a fundamental op...
research
03/28/2014

E-Generalization Using Grammars

We extend the notion of anti-unification to cover equational theories an...
research
04/01/2014

Implementing Anti-Unification Modulo Equational Theory

We present an implementation of E-anti-unification as defined in Heinz (...

Please sign up or login with your details

Forgot password? Click here to reset