RISC JKU

Term Graph Anti-Unification

This is a Java implementation of the algorithm described in:

See also

Part of the Library of Unification and Anti-Unification Algorithms.

Input Syntax:
Term graph 1:
Term graph 2:
Rigidity function:       Minimum alignment length:
Split rule: Enable the split rule.
Commutative rules: Enable the commutative rules.
Commutative symbols: Specify commutative symbols. You can also use the multiset notation at the input graphs (e.g., x1 = f{{x1,x2}} implicitely defines f as commutative).
Normalize the output graphs: Normalization is a uniform renaming of all the variables such that duplicates can be removed easily.
Iterate all possibilities: Box checked: compute all generalizations. Box unchecked: stop after the first generalization was found.
Output format:

    

This software is released under the GNU Lesser General Public License ("LGPL"). For presentation purpose, the Java source code has been translated into JavaScript by the GWT compiler.
Some examples (click on them to prepared the input form):

  • x=f(x,y), y=a;
    y=f(x,y), x=a
  • x=f(x,y), y=f(x,y);
    y=f(x,y), x=f(x,y)
  • x0 = f(x1,x2,x3,x0,x3,x2,x3), x1 = g(x1,x2), x2 = b, x3 = a;
    y0 = f(y1,y0,y3), y1 = g(y1,y2), y2 = b, y3 = a


Author: Alexander Baumgartner FWF Der Wissenschaftsfond
Project: GALA: Generalization ALgorithms and Applications